Недавно я перешел на линод с управляемого / автомасштабируемого хоста.
МОЙ сайт работает очень медленно - большую часть времени не отвечает. Я использовал план передачи 512 МБ, 20 ГБ, 200 ГБ, но обновился, подумав, что может потребоваться больше. Теперь у меня 712мб, хранилище 300 гигов, пересылка 300 гигов.
Мой сайт занимает 1,5 ГБ в MySQL и получает около 3 тыс. Просмотров страниц в день. Я установил iotop и получил картинку ниже. Я видел, что mysql много съедает.
Есть ли у вас какие-либо рекомендации относительно того, что я могу сделать, чтобы мой сайт продолжал работать?
Я очень новичок в управлении сервером.
Огромное спасибо.
Судя по вашим выводам, проблема с медлительностью может быть связана с частым использованием подкачки. Как правило, вы никогда не хотите, чтобы вашему серверу когда-либо приходилось использовать какое-либо (или много) пространство подкачки, поскольку оно намного медленнее, чем ОЗУ. Если MySQL / Apache или что-то еще, что вы запускаете на сервере, настроено неправильно, это может очень легко съесть больше памяти, чем должно вызывать использование свопа.
В качестве быстрой проверки вы можете использовать top
и просмотрите процесс по использованию памяти (нажмите M
), который должен быстро показать вам, какое приложение (а) использует больше всего памяти. Для MySQL вы можете использовать MySQLTuner сценарий, чтобы быстро сказать вам, использует ли ваша конфигурация слишком много памяти или нет. Для Apache вы, вероятно, можете уменьшить MaxClients
действительно низкий (менее 10), пока вы не выясните использование памяти более подробно.
Другая возможность, помимо использования подкачки, заключается в том, что ваши запросы MySQL используют все или большую часть ваших 1,5 ГБ данных. Поскольку у вас есть только ~ 500 МБ, это приводит к тому, что запросы очень сильно попадают на диск, что как раз и показывает ваша статистика. Самым простым решением было бы получить больше памяти, чтобы вы могли хранить в памяти весь рабочий набор (это может быть менее 1,5 ГБ). Другие возможности включают в себя проверку того, что кэш запросов MySQL настроен и работает (при условии, что ваши запросы кэшируются), или оптимизация вашего приложения и запросов для минимизации использования всей базы данных.
Вы упомянули, что теперь у вас есть 712 МБ ОЗУ для вашего сервера, но вывод free
предполагает, что у вас всего 512 МБ. В любом случае число «подкачки» значительно больше нуля, что означает, что вы выиграете от большего объема оперативной памяти.