Мне нужна помощь в оптимизации моего файла конфигурации my.cnf. У меня есть два сервера, подключенных напрямую через сеть LAN (1 Гбит / с). Первый сервер - это веб-сервер Apache, а второй - сервер MySQL.
Проблема в том, что сервер MySQL использует много ЦП, и мой веб-сайт становится очень медленным.
У меня около 2500 одновременных пользователей.
http://www.textdump.com/v/?k=NTc1Ng==
Спасибо большое за помощь!
у меня всегда есть mysqltuner
получите информацию для меня и предложите - это Perl-скрипт, который вы можете найти на github.
Прямая ссылка на страницу проекта mysqltuner: http://blog.mysqltuner.com/
Я второй mysqltuner!
Возможно, вы захотите начать с использования одного из примеров файлов конфигурации в / usr / share / mysql. Есть несколько вариантов на выбор в зависимости от доступных системных ресурсов. Интегрируйте любые уже настроенные параметры из вашего существующего my.cnf в пример конфигурации.
Отключите механизмы хранения, которые вы также не используете:
skip-bdb
skip-ndbcluster
skip-federated
skip-innodb
На этом этапе перезапустите mysql и дайте ему поработать несколько часов; чтобы иметь репрезентативные значения производительности. Затем, как было рекомендовано ранее, загрузите и запустите mysqltuner.
Помимо этого, вы можете захотеть настроить отображение производительности mysql в Munin или другом решении для построения графиков. Трудно понять, существуют ли какие-либо аномалии или долгосрочные тенденции в производительности mysql без чего-либо подобного.
При таком высоком уровне параллелизма вам действительно следует изучить что-то вроде memcached. При правильной реализации он может сильно снизить нагрузку на серверы баз данных за счет кэширования (в ОЗУ) часто используемых битов контента.
Вы также можете рассмотреть возможность создания одного или двух подчиненных серверов mysql. Идея заключается в том, что все чтения вашей базы данных будут направлены на ведомые устройства, а записи - на ведущее устройство. Конечно, ваша способность делать это в некоторой степени зависит от кода приложения и его поддержки для кластерных систем баз данных.
Я бы посмотрел на Jet Profiler для MySQL - Он покажет вам, какие запросы используют больше всего ЦП (среди прочего), и предложит улучшения.