Я хотел бы знать все ключевые моменты, с помощью которых можно точно настроить производительность MySQL на сервере Linux через my.cnf или другие методы, библиотеки и инструменты. Советы, уловки и сомнительные вещи тоже приветствуются.
Поскольку важна архитектура целевого сервера, вы можете обернуть свои ответы вокруг этого примера целевой архитектуры:
1 ГБ ОЗУ (без ecc)
Dual Xeon 2,2 ГГц
Файловая система ext3 или reiserfs (приветствуем предложения)
7200 об / мин HDD
Пару установок Wordpress минимум 5-10 запросов в секунду.
Довольно распространенная установка, если вы спросите меня, здесь ничего особенного.
Таким образом, я хотел бы получить ваше мнение о том, как настроить установку MySQL на таком целевом сервере до точки, когда вы действительно не сможете многое сделать с точки зрения MySQL Server для повышения производительности.
Вы все еще можете многое сделать в одном только MySQL, чтобы повысить производительность в этой настройке. Я использую MySQL primer на своих серверах для точной настройки всех параметров, связанных с памятью (вы можете получить его из Вот).
Также файловая система важна, но не критична для MySQL, я использовал ее как в reiserfs, так и в ext3 (попробуйте добавить noatime,nodiratime
в /etc/fstab
при использовании ext3) с почти идентичными результатами.
Также очень важно, сколько памяти у вас доступно, конечно, чем больше, тем лучше!
Моя рекомендация: придерживайтесь сценария сервера, в котором вам удобно, затем запустите свой mysql и начните тонкую настройку с помощью праймера, ваш сценарий 5-10 запросов в секунду выглядит довольно легким и даст вам много возможностей для улучшения.
Здесь невозможно ответить на этот вопрос. Слишком многому нужно научиться. Вы можете начать с подробного прочтения руководства по MySQL. Тогда иди купи пару книг на Настройка MySQL и дальше Настройка производительности Linux. Они не могут (не могут) дать вам ответы, которые вы ищете - они покажут вам, как настройки влияют на поведение и как измерить результирующее влияние на приложение. Универсального решения проблемы не существует, хотя и Linux, и MySQL имеют хорошие настройки по умолчанию "из коробки".
Как только вы полностью поймете все в этих книгах, вы сможете приступить к внесению изменений в свою систему. Вам нужно будет собирать статистику и просматривать каждое изменение, чтобы измерить его эффективность, но вам также необходимо понимать проблемы локальных минимумов при поиске целей.
Вы можете найти mysqltuner полезным, но вы должны быть в состоянии оценить влияние его рекомендаций (особенно в отношении рекомендаций с колебаниями) и измерить их влияние на вашу систему.
Самый эффективный способ настроить MySQL - это оптимизировать ваши запросы. Вы должны включить журнал медленных запросов, чтобы получить список медленных запросов. Если все ваши запросы выполняются быстрее 1 секунды (минимальная граница для стандартного MySQL), вам следует установить Percona Server или MariaDB, у них есть патч для микросхемы. Вы также можете попробовать mysqlreport, это очень удобный инструмент. Использовать это руководство интерпретировать его результаты и принимать дальнейшие решения.