2012-03-01 2 views
1

У нас странная проблема с «Средняя загрузка» на сервере, мы попытались решить проблему, но не повезло, и теперь мы пытаемся найти справку.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, и задержки.

ответ

1

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

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

+0

Обычно выполнение скриптов занимает около 100 мс Макс, но когда LA является пиками выполнения сценариев принимать 5second или даже больше. -rwxrwxrwx 1 корень root 27M Mar 1 05:11 /var/log/php-fpm/www-slow.log Как мы видим, медленный минимум 27Mb с одной недели, это не нормальное состояние. – DooVDe

+0

Итак, ваш вопрос не имеет ничего общего с средней загрузкой, это «почему этот сценарий внезапно занимает так много времени для выполнения». Что вы сделали, чтобы попытаться отладить этот вопрос? – Perry

+0

Мы попробовали strace, apd на сервере клонирования разработки, мы переключились с php-fpm на Apache, мы отлаживали скрипт и ничего не нашли. То, что я пытаюсь сказать, я понятия не имею, где искать. Весь конец медленного журнала с помощью socket_write, socket_read или session_start. Может быть, что-то не так с конфигурацией TCP/IP? – DooVDe

Смежные вопросы