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

Как лучше всего определить, как / где возникает задержка сервера?

Я управляю небольшой социальной сетью, и последние несколько дней у нее периодически возникают задержки сервера. Сайт заблокирует загрузку страницы, и через несколько мгновений та же страница загрузится без проблем.

Как лучше всего определять задержку сервера и как ее устранить?

Моя коробка ..

Запуск на MongrelDB с mySQL через Ruby on Rails

Все динамические изображения и база данных размещаются через S3

High CPU Med (32 bit)
5 ECU, 1.7GB RAM
350GB Non-persistent storage 

Трафик составляет примерно 60 просмотров страниц в день.

Вы следите за нагрузкой на сервер?

Есть инструменты производительности для RoR, которые могут измерить производительность вашего сервера при запуске сценариев RoR, но я не могу вспомнить название насквозь. Однако найти его не составит большого труда. Тот, о котором я думаю, обсуждался в подкасте Ruby on Rails.

Вы проверяете журналы на наличие ошибок?

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

Можете ли вы следить за сервером, чтобы узнать, что говорит топ, что происходит во время одного из этих лагов?

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

Существуют тестовые инструменты для измерения производительности. Возможно, вам стоит заглянуть в одну из этих служб, чтобы протестировать свой сервер и профилировать код RoR / базы данных.

Вы также можете подумать об установке какого-либо программного обеспечения для мониторинга серверов, такого как Nagios, чтобы предупреждать вас, когда / если ресурс заканчивается, или если есть условие предупреждения, которое нужно проверить.