Мой сервер (Ubuntu 10.04 Lucid LAMP Stack) на линоде (оперативная память 1024 МБ, хранилище 40 ГБ, передача 400 ГБ) загружается ужасно медленно. Мой сайт (WordPress) относительно невелик (1,5 гигабайта mysql) и просматривает около 2 тыс. Страниц в день. Я видел парней, которые запускали сайт с 10-кратным трафиком, который у меня есть, с оперативной памятью 512 Мб и 20 гигабайтами памяти + передача 200 ГБ. Я действительно не знаю, что делаю не так, я установил iotop и увидел результаты, и он говорит мне, что mysql использует большую часть процессора. У меня установлена система кеширования. Ниже приведены снимки за последние 24 часа. Если вы можете сказать мне несколько предложений, это было бы действительно находчиво.
См. Обновление ниже
Update:
Solved: Thank you all for your recommendations. I did instal mysqltuner and was able to see at depth what some of the problems were. I found out that the reason for the spike in io rate and swap was a wordpress plugin. The plugin was basically "processing" every minute and after I disabled it, things looked way better. Pic below
Если вы думаете, что это из-за MySQL, я бы проверил следующее:
Посмотрев на графики, я бы также проверил, можете ли вы соотнести пиковые периоды с вашим access.log. Возможно, вы увидите из журнала, являются ли эти запросы законными веб-запросами.
Глядя на ваши графики, это выглядит очень периодическим. У вас нет заданий cron или "запланированных задач" внутри Wordpress? Работает раз в секунду, как часы, судя по всему.
Для анализа вашего Wordpress вы можете установить X-Debug чтобы выполнить профилирование и увидеть, где находится узкое место (здесь будут показаны длинные запросы PHP / MySQL, которые послужат отличным началом).
Вы также можете включить журнал медленных запросов MySQL, как предложил Оливер
РЕДАКТИРОВАТЬ: Также похоже, что вы получаете огромное количество трафика в определенное время, это могут быть сканеры (например, Google) или кто-то, атакующий ваш сервер (или даже просто люди, которые в определенное время любят заходить на ваш сайт больше ...) . Вы должны смотреть свои журналы доступа в эти часы пик.
Вы можете просмотреть все системные cronjobs с помощью следующей команды (запускать как root):
for user in $(cut -f1 -d: /etc/passwd); do echo $user; crontab -u $user -l; done
Глядя на загрузку сети, я предполагаю, что наблюдается всплеск активности - со стороны ваших пользователей / клиентов или где-то еще? Может, на что посмотреть.
Кроме того - как организована ваша база данных MySQL - 1,5 ГБ в некоторых случаях может быть большой базой данных ... Индексы и сценарии оптимизации на месте?
Я пытаюсь угадать обычные причины подобных проблем, конечно, есть ли в вашей установке что-нибудь необычное, что могло бы вызвать эту нагрузку? Плагины Wordpress, вакансии Cron и т. Д.?
Я должен сказать, что вполне возможно, что это просто проблема, не связанная с Wordpress - автоматическое обновление заданий cron и т. Д.?