Формула все-таки верна та, которая приведена у меня. Т.к.:
Цитата:
Но формула "Try number of CPU's*2 for thread_concurrency" хорошо работает лишь тогда, когда треды не лочатся на дисковом вводе/выводе. Поэтому, возникает ситуация, что запросы некому обработать, ибо все треды работают с диском
И еще:
Цитата:
Если у вас много памяти и много таблиц, то для увеличения производительности, при запуске сервера рекомендуется использовать следующие формулы, учитывающие специфику работы mysql под различные ОС:
» Для FreeBSD: thread_concurrency = (кол-во процессоров)*(кол-во ядер в одном процессоре)
» Для Linux: thread_concurrency = (кол-во процессоров)*(кол-во ядер в одном процессоре)*3
Почему на Linux можно давать можно и нужно давать больше потоков, чем на FreeBSD? Это связано с тем, что Linux умеет распределять и управлять потоками между ядрами, а FreeBSD не умеет, зато FreeBSD умеет эффективно распределять процессы, чего, в свою очередь, не умеет Linux.
И самое главное, по сути пруфлинк:
http://www.dbbenchmark.com/wordpress/benchmarks/