За последние сутки созданная Вашим аккаунтом нагрузка составила X процессорных минут, что делать?

Это достаточно типичная ситуация, с которой сталкиваются многие пользователи хостинга. Как проконтролировать откуда возникает подобная нагрузка и как справиться с ситуацией? Проконтролировать подобное поведение можно достаточно легко.
Достаточно просто собрать статистику по тому, сколько времени генерируется каждая из работающих на вашем сайте страниц. Как это легко и просто сделать — читайте ниже.Мы рассматриваем наиболее частую и типичную ситуацию — это php хостинг, подразумевая, что скорее всего нагрузка создается именно php скриптами.
Сначала в корне веб-сервера необходимо создать файл figvam.ru.cpu.php со следующим содержимым:

<?
// Нужно добавить в .htaccess следующую строчку:
// php_value auto_prepend_file «/полный путь к корню сайта/figvam.ru.cpu.php»
$figvam_ru_start_timer = microtime(1);
register_shutdown_function(‘figvam_ru_shutdown_function’,$figvam_ru_start_timer);
function figvam_ru_shutdown_function($figvam_ru_start_timer){
$figvam_ru_end_timer = microtime(1);
$page_generation_time = $figvam_ru_end_timer — $figvam_ru_start_timer;
$peak_memory = memory_get_peak_usage();
file_put_contents($_SERVER[‘DOCUMENT_ROOT’].’/figvam.ru.cpu.log’,strftime(«%d.%m.%Y %H:%M:%S»).»\t».$_SERVER[‘REQUEST_URI’].»\t».$page_generation_time.»\t».$peak_memory.»\n»,FILE_APPEND);
}

Как уже написано в комментарии выше, нужно добавить в .htaccess самой первой строчкой следующую строку:

php_value auto_prepend_file «/полный путь к корню сайта/figvam.ru.cpu.php»

После этого в корне после обращения к любому php скрипту появится файл figvam.ru.cpu.log, в который будет писаться информация по времени работы каждого запущенного на вашем сайте скрипта. Кроме того для каждого скрипта будет писаться максимальное (пиковое) значение потребление памяти.

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

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

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

Если материал был вам полезен (или наоборот), буду рад любым комментариям.

Добавить комментарий

Ваш e-mail не будет опубликован.