У меня есть сценарий PHP, который позволяет мне иметь социальную сеть и тому подобное.
Обычно проблем нет, мой сервер — это VPS с:
Проблема в том, что обычно сервер может выдерживать нагрузку на процессор 30-40% около 30 одновременно работающих пользователей. Но иногда я не знаю, по какой причине, нагрузка все время остается очень высокой, до 98-100%. Даже если пользователи выходят из системы, а на сайте даже 3-4 человека, загрузка сервера остается на уровне 98-100%, пока я не перезагружу сервер.
Итак, я заметил, используя Топ команда через SSH, которая создает созданный процесс в PHP с пользователем как владельцем веб-пространства (созданного через cPanel) и как команда, PHP. Нагрузка для этого процесса составляет от 20% до 27%.
Дело в том, что больше этих PHP-процессов создается больше времени.
Например, через 30 минут появляется другой процесс PHP с теми же характеристиками, что и у первого процесса. И оба вместе занимают 50-60% загрузки процессора. Проходит больше времени, создается больше процессов, максимум до 4 процессов, подобных этому. (Потому что у моего процессора 4 ядра?).
Если я убью эти процессы через убить [pid] через 1-2 минуты сервер возвращается к 3% даже при 10-15 одновременных пользователях.
В чем проблема? Это строго php-файл или как? Я даже пытался делать события на веб-сайте, чтобы проверить, какие действия запускаются этими процессами PHP (даже бесполезными). Потому что, если я их убью, сайт продолжит работать очень хорошо!
В чем может быть проблема?
Есть экран загрузки процессора:
Спасибо вам всем.
Если процесс выполняет много операций ввода-вывода, таких как вызовы базы данных и т. Д., Это может значительно увеличить нагрузку на процессор. В вашем случае вы уверены в процессе, который является причиной этой высокой нагрузки. Заметив, что нагрузка увеличивается с течением времени, вы должны внимательно посмотреть на PHP-скрипт на предмет утечек памяти, большого количества сессий, множества вложенных циклов с промежуточным вводом-выводом и попытаться определить причину этого. удачи
Других решений пока нет …