Назад | Перейти на главную страницу

VPS работает медленно, несмотря на нехватку памяти и использования ЦП

в последнее время веб-сайт, размещенный на VPS, временами становится очень труднодоступным, и я пытаюсь понять, почему. Я заметил следующие вещи:

Учитывая эти наблюдения, что я должен попытаться проверить / отладить, чтобы найти решение?

Спасибо!

Это могло быть вызвано множеством разных проблем. По какой-то причине может показаться, что ваш процесс ожидает чего-то, что требует времени для завершения. Сомнительно, что это IO, поскольку вы увидите более высокие средние нагрузки. Вопрос в том, какой. Вот несколько вещей, которые можно попробовать, если VPS - это Linux:

  • iostat из пакета sysstat диагностирует, является ли это проблемой ввода-вывода

  • Запустите strace -fp of process, выполняя медленный запрос. Ctrl-c strace, когда закончите. Наблюдайте за системными вызовами во время медленного запроса. Скорее всего, он остановится на одном, а затем продолжится. strace сбрасывает тонны информации, поэтому вы можете использовать -o. Он также может сбрасывать много информации из других подключений, если они параллельны и обрабатываются одним и тем же процессом в другом потоке или тому подобное.

  • Увеличьте ведение журнала в приложении / базе данных и попытайтесь сузить проблему

Я предполагаю, что вы выполняете обратный поиск источника соединений либо в вашем коде, либо в журнале. Если это будет сделано синхронно, каждое соединение будет ждать ответа от DNS-сервера и сократит время ответа.

Другая возможность заключается в том, что вы используете mysql и myisam в качестве типа хранилища с большим количеством одновременных операций записи. Myisam выполняет блокировку на уровне таблицы (или, по крайней мере, раньше). Вся таблица будет заблокирована для записи до тех пор, пока запись не будет завершена с ее запросом / записью. Каждое соединение должно будет по очереди ждать записи в базу данных.