Проверка загрузки сервера с помощью PHP и принятие соответствующих действий - PullRequest
1 голос
/ 01 мая 2010

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

Мой вопрос: если сервер перегружен, могу ли я как-то обнаружить это в PHP, что, в свою очередь, позволило бы мне решить, хочу ли я выполнить функцию генерации хеша или нет?

Возможно, в определенном сценарии это не идеальный вариант использования, но мне интересен этот подход в целом.

1 Ответ

3 голосов
/ 01 мая 2010

Если вы работаете в Linux, вы можете получить средние значения загрузки процессора, прочитав файл /proc/loadavg, который содержит 3 числа, разделенные пробелами. Вы также можете вызвать команду uptime из php exec('uptime') и проанализировать ее вывод, который также содержит средние значения загрузки (среди прочего).

Как интерпретировать средние значения нагрузки - обычно я принимаю 1.0 * cores как максимальную здоровую нагрузку. Так что если у вас 4 ядра, то значение выше 4.0 будет означать, что процессор выполняет тяжелые вычисления и лучше подождать.

...