В последнее время мой сайт стал немного и внезапно медленнее загружать страницы. У меня возникла проблема: была создана резервная копия, которая превысила доступное место на томе DigitalOcean, что привело к остановке сайта. С тех пор мне было трудно восстановить работу сайта. Эти события могут быть связаны по времени. В настоящее время сайт, кажется, находится в стабильном состоянии, но работает медленнее, чем я привык.
Я мог бы рассказать подробнее о том, что произошло, но предпочитаю задать более общий вопрос. Какие существуют методы диагностики причины замедления? Мой Droplet в среднем использует 20% процессорного времени, так что, похоже, ресурсов достаточно (4 ГБ оперативной памяти / 2 AMD vCPU / 80 ГБ дискового пространства, около 15 тысяч просмотров страниц в день).
Спасибо! Если бы у вас не хватало памяти, значения в кэше были бы малы, а при интенсивной подкачке столбцы si и so были бы велики. Но в данном случае это не так.
Мы видим значительный пик в bi и bo, что обычно указывает на активность диска. Интересно, не происходит ли где-то сборка, восстановление или сканирование чего-либо.
Попробуйте запустить ps auxrc
каждые пять секунд в течение минуты или около того, чтобы попытаться поймать активный процесс в момент его работы.
Существуют и другие утилиты, которые могут быть еще не установлены: возможно, стоит поискать «Как мониторить ввод-вывод диска в системе Linux» или что-то подобное.
Стоит отметить, что если у вас есть сомнения в целостности вашей системы, самым быстрым решением может стать её восстановление из резервной копии. Но обязательно имейте копию резервной копии в другом месте, а лучше две, на случай аварии. И, в идеале, выполните установку на новом экземпляре, оставив существующий в рабочем состоянии, пока новый не заработает корректно.
Более интересно то, что у вас много процессов sidekiq, но я вижу аннотацию «0 из 5 занято» — у вас их больше пяти. Также у вас, похоже, много потоков unicorn.
Я предлагаю создать новую тему здесь, приложив вывод htop, включая ваш конфигурационный файл yml, чтобы показать, меняли ли вы количество процессов unicorn. Спросите, выглядит ли этот набор процессов разумным.
Ага, я должен был проверить свой htop: очень похоже.
Ещё одна совсем другая идея для первоначального наблюдения «замедления» — активировать мини-профайлер с помощью Alt-P, затем открыть типичную большую страницу на вашем форуме и посмотреть, какие запросы выполняются и сколько времени они занимают, кликнув на цифру времени, которая появляется в правом верхнем углу.
Мне удалось выполнить apt upgrade и пересборку. Эта проблема: Pups error on rebuild 🐕 мешала мне пересобирать систему в течение некоторого времени.
После пересборки всё кажется улучшенным. Однако мне не нравится полагаться на ощущения; в данном случае я предпочёл бы иметь аналитику и измеримые данные. Спасибо за советы @Ed_S, они пригодятся для дальнейшего мониторинга.
Интересует, возможно ли собрать часть этих данных профилирования и отображать «здоровье» экземпляра через админ-панель. Возможно, это идея для будущего плагина или функции ядра?