У нас странная проблема с «Средняя загрузка» на сервере, мы попытались решить проблему, но не повезло, и теперь мы пытаемся найти справку.Unexplainable Load Average CentOS Linux php-fpm
У нас есть VPS CentOS Linux 2.6.18-274.18.1.el5 x86_64 GNU/Linux с двумя физическими ядрами, 2 ГБ оперативной памяти, этот сервер работает только php-fpm. 5.3.10 никаких других служб, работающих на нем.
php, используя Redis через TCP (~ 1000 запросов в секунду), сервер Redis может легко сделать 60000 запросов в секунду и иметь LA 0.01.
Симптомы:
Случайные шипы LA от 16 до 40 лет без каких-либо видимых причин. Несмотря на это, загрузка процессора составляет ~ 40%, ~ 10% от использования системы и памяти - меньше половины.
Cpu0 : 36.7%us, 11.9%sy, 0.0%ni, 44.2%id, 0.0%wa, 0.0%hi, 7.2%si, 0.0%st
Cpu1 : 39.8%us, 10.0%sy, 0.0%ni, 26.2%id, 0.0%wa, 10.0%hi, 14.0%si, 0.0%st
Mem: 2058776k total, 1241500k used, 817276k free, 160172k buffers
Swap: 1048568k total, 0k used, 1048568k free, 876888k cached
Спайки не связаны с сетевой деятельностью или заданиями cron. Количество запросов на php за секунду составляет ~ 70.
PHP slow log показывает нам, что многие скрипты не получают, чтобы они запускались даже через 5 секунд! PHP Slow журнал (5с):
[pool www] pid 7016
script_filename = /var/www/myapp/index.php
[0x000000001820d230] session_start() /var/www/myapp/index.php:10
10 первых строк index.php:
<?php
$starttime=microtime(TRUE);
srand();
ob_start();
error_reporting(E_ALL);
ini_set('display_errors',1);
session_start();
Sessions, расположенных на перегородке памяти ... нет проблем с IO.
конфигурации PHP-FPM:
listen.backlog = 18192
pm = dynamic
pm.max_children = 256
pm.start_servers = 48
pm.min_spare_servers = 16
pm.max_spare_servers = 64
pm.max_requests = 512
Пожалуйста, если кто-нибудь есть какие-либо предложения, как снизить LA, и задержки.
Обычно выполнение скриптов занимает около 100 мс Макс, но когда LA является пиками выполнения сценариев принимать 5second или даже больше. -rwxrwxrwx 1 корень root 27M Mar 1 05:11 /var/log/php-fpm/www-slow.log Как мы видим, медленный минимум 27Mb с одной недели, это не нормальное состояние. – DooVDe
Итак, ваш вопрос не имеет ничего общего с средней загрузкой, это «почему этот сценарий внезапно занимает так много времени для выполнения». Что вы сделали, чтобы попытаться отладить этот вопрос? – Perry
Мы попробовали strace, apd на сервере клонирования разработки, мы переключились с php-fpm на Apache, мы отлаживали скрипт и ничего не нашли. То, что я пытаюсь сказать, я понятия не имею, где искать. Весь конец медленного журнала с помощью socket_write, socket_read или session_start. Может быть, что-то не так с конфигурацией TCP/IP? – DooVDe