s4f 18.03.2011 11:21
Есть вопрос! — [Решено] Высокий load average
Дано:Centos5.5
model name : Intel(R) Xeon(R) CPU X3210 @ 2.13GHz
cpu MHz : 2133.382
cache size : 4096 KB
MemTotal: 8053524 kB
MemFree: 1045784 kB
На сервере стоит:
isp-панель;
около 20 сайтов, два из которых крупные интернет магазины на битриксе;
5 почтовых доменов, общее количество ящиков пару сотен с greylist, spamassasin и без imap
Прочитал что загрузка должна колибаться до 2-4, так ли это?
Дополнение 1
top:
Дополнение 2
Apache Server Status for $IP
Server Version: Apache/2.2.3 (CentOS)
Server Built: Aug 30 2010 12:28:40
Current Time: Friday, 18-Mar-2011 13:24:25 MSK
Restart Time: Friday, 18-Mar-2011 13:24:18 MSK
Parent Server Generation: 0
Server uptime: 7 seconds
4 requests currently being processed, 5 idle workers
WW_C_W___.......................................................
................................................................
................................................................
................................................................
Scoreboard Key:
"_" Waiting for Connection, "S" Starting up, "R" Reading Request,
"W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
"C" Closing connection, "L" Logging, "G" Gracefully finishing,
"I" Idle cleanup of worker, "." Open slot with no current process
PID Key:
11276 in state: W , 11277 in state: W , 11278 in state: _
11279 in state: C , 11280 in state: _ , 11281 in state: W
11282 in state: _ , 11283 in state: _ , 11290 in state: _
To obtain a full report with current status information you need to use the ExtendedStatus On directive.
SSL/TLS Session Cache Status:
cache type: SHMCB, shared memory: 512000 bytes, current sessions: 0
sub-caches: 32, indexes per sub-cache: 133
index usage: 0%, cache usage: 0%
total sessions stored since starting: 0
total sessions expired since starting: 0
total (pre-expiry) sessions scrolled out of the cache: 0
total retrieves since starting: 0 hit, 0 miss
total removes since starting: 0 hit, 0 miss
Apache/2.2.3 (CentOS) Server at $IP Port 80
cooler 18.03.2011 11:27 #
+ -1 -
bitrix...
На сервере стоит:
isp-панель;
около 20 сайтов, два из которых крупные интернет магазины на битриксе;
5 почтовых доменов, общее количество ящиков пару сотен с greylist, spamassasin и без imap
isp-панель;
около 20 сайтов, два из которых крупные интернет магазины на битриксе;
5 почтовых доменов, общее количество ящиков пару сотен с greylist, spamassasin и без imap
могу предположить, что природа нагрузки не известна? тогда рекомендую понаставить утилит http://welinux.ru/post/5159/ и понаблюдать, что чаще бывает вверху.
без этих данных можно услышать только негативную оценку применяемых "панелек"
эм... еслиб были еще какиенить графики.... http.. или трафик хотяб..
Посмотрите расписание резервного копирования в панели, я думаю пики нагрузки совпадут со временем запуска этих заданий. В принципе пока суетиться особого смысла нет. Лично я считаю, что:
LA <= CPU cores - отлично
LA <= CPU cores * 2 - нормально
LA > CPU cores * 2 - пора смотреть что там происходит
Но это субъективный взгляд на окружающую реальность.
Ну и "по фотографии" диагноз поставить крайне сложно. Если на глаз тормозов нет, то можно смело забить.
LA <= CPU cores - отлично
LA <= CPU cores * 2 - нормально
LA > CPU cores * 2 - пора смотреть что там происходит
Но это субъективный взгляд на окружающую реальность.
Ну и "по фотографии" диагноз поставить крайне сложно. Если на глаз тормозов нет, то можно смело забить.
тормозов нет, пики совпадают с резервным копированием панели. вот за это:
огромное спасибо.
теперь понятно, как должна выглядеть нагрузка
LA <= CPU cores - отлично
LA <= CPU cores * 2 - нормально
LA > CPU cores * 2 - пора смотреть что там происходит
LA <= CPU cores * 2 - нормально
LA > CPU cores * 2 - пора смотреть что там происходит
огромное спасибо.
теперь понятно, как должна выглядеть нагрузка
На LA можешь смело забить. А вот User нагрузка под 100% это беда... имхо... что-то тут не так... Поставь Atop и посмотри что у тебя происходит с диском, хотя проблемы могут и из другого места рости...
user 100% это значит что на дисковых операциях комп проводит 0 процентов времени и можно на диски не смотреть пока. К тому же гиг свободной памяти означает что можно закешировать еще дохрена страниц и забыть про диск.
И еще сервак сильно свопится, смотреть в сторону оптимизации mysql и уменьшения воркеров. Можно помониторить запросы к мускулу, у битрикса бывают клевые join'ы ^_^
Я бы посмотрел какие сайты так грузят систему (по выводу apache mod_status можно прикинуть что происходит). По нагрузке на проц и по потребляемой памяти цифры у апача довольно странные.
И судя по занимаемой памяти настройки mysql оставляют желать лучшего.
И судя по занимаемой памяти настройки mysql оставляют желать лучшего.
на обоих сайтах около 20к товаров, с картинками, описаниями и т.п.
добавил mod_status
добавил mod_status
на обоих сайтах около 20к товаров, с картинками, описаниями и т.п.
Это никак не должно влиять на нагрузку, создаваемую апачем. Если влияет, то программистов надо сажать на кол. В битриксе такого нет. Да и 20К товаров - это не так много.
добавил mod_status
Включите расширенный (extended) вывод и собственными глазками ищите чем заняты процессы апача (хотя бы адреса, на которые идут запросы). В статике что-то сказать будет сложно.
Ещё могу посоветовать php-apc поставить, изменить suexec на mpm-itk(на сайте isp есть инструкция). И ulimit -u тоже можно, у меня на сервере было, что из-за этого load avg был под 60 :)
В общем я пока ничего криминального не вижу.
То что httpd занимают всё доступное им процессорное время, это так и должно быть, не солить же процессор.
Я бы ещё всякие лишние модули в апаче поотключал, память сэкономить и процессора чутка.
Ну и для успокоения совести посмотреть по логам что там творится, и почему такие скачки нагрузки. Есть пара вариантов:
То что httpd занимают всё доступное им процессорное время, это так и должно быть, не солить же процессор.
Я бы ещё всякие лишние модули в апаче поотключал, память сэкономить и процессора чутка.
Ну и для успокоения совести посмотреть по логам что там творится, и почему такие скачки нагрузки. Есть пара вариантов:
Да блин, привык в IM Ctrl+Enter перенос строки
В общем варианты следующие, поскольку график нагрузки носит непериодический характер:
1. Какие то действия в панели управления(типа распаковки архивов), они достаточно неплохо сервер могут нагрузить
2. Какие то внутренние действия на сайтах(типа сброса кэширования или OPTIMIZE таблиц в бд)
В общем варианты следующие, поскольку график нагрузки носит непериодический характер:
1. Какие то действия в панели управления(типа распаковки архивов), они достаточно неплохо сервер могут нагрузить
2. Какие то внутренние действия на сайтах(типа сброса кэширования или OPTIMIZE таблиц в бд)
Ну и для успокоения совести посмотреть по логам что там творится, и почему такие скачки нагрузки. Есть пара вариантов:
ТС выше писал, что пики соответствуют запускам резервного копирования.
изменить suexec на mpm-itk(на сайте isp есть инструкция)
Точно, если заменить почку на легкое, то пациент однозначно выздоровеет! (:
Предполагаю предлагалось заменить mpm-prefork на mpm-itk, но я не вижу ни одной причины это делать в данном случае.
И ulimit -u тоже можно, у меня на сервере было, что из-за этого load avg был под 60 :)
Что можно ulimit -u? Заменить на mpm-itk? ))
Ну ты видимо просто не в курсе, что ISP Manager по умолчанию юзает suexec для работы
Не знаю, может ты точек не видишь, но это как бе отдельное предложение.
Что можно ulimit -u? Заменить на mpm-itk? ))
Не знаю, может ты точек не видишь, но это как бе отдельное предложение.
Ну ты видимо просто не в курсе, что ISP Manager по умолчанию юзает suexec для работы
Ох... Да куда мне с одной почкой (: Меня просто малость смутило, что модуль (suexec) и mpm (itk) это совсем разные вещи. По глупости наверное.
Не знаю, может ты точек не видишь, но это как бе отдельное предложение.
Ну тогда понятно. Значит ulimit можно! Не понятно что можно, но точно можно (:
У меня периодически тоже вырастает load на серваке, хотя по iostat огромного чтения/записи не заметно, через iotop и htop, apache mod_status тоже никто не выделяется из процессов.
Помогает только остановка apache+mysql, пауза в пару минут и потом опять запуск, ну или полный ребут.
В итоге грешу на медленную скорость доступа к данным на винтах. Погуглив, выяснил что у винчестеро есть параметр IOPS - число операций ввода-вывода в секунду. Например система хочет прочитать 1000 блоков по 10 байт, и все они раскиданы по винту. И чтобы их прочитать - головка 1000 раз будет скакать туда-сюда, в результате время на чтение уйдёт много, а прочитается всего 10 килобайт!
Соответственно, IOPS эту скорость и отражает.
В результате по этому параметру на серваках заметно видно преимущество SAS-винчестеров с 10k и 15k RPM - при примерно равных скоростях линейного чтения параметр IOPS у 15k RPM примерно в 5 раз больше чем у 7,2k RPM (статистику брал отсюда http://www.thecabal.org/2010/05/the-disks-the-thing-exchange-2010-storage-essays-part-2/ )
Только вот как посмотреть кол-во ожидающих операций для винчестера (не общий объем данных в ожидании чтения/записи в мегабайтах, а именно кол-во отдельных операций чтения/записи блоков данных в ожидании) - так и не смог найти. Если кто подскажет - буду премного благодарен!
Помогает только остановка apache+mysql, пауза в пару минут и потом опять запуск, ну или полный ребут.
В итоге грешу на медленную скорость доступа к данным на винтах. Погуглив, выяснил что у винчестеро есть параметр IOPS - число операций ввода-вывода в секунду. Например система хочет прочитать 1000 блоков по 10 байт, и все они раскиданы по винту. И чтобы их прочитать - головка 1000 раз будет скакать туда-сюда, в результате время на чтение уйдёт много, а прочитается всего 10 килобайт!
Соответственно, IOPS эту скорость и отражает.
В результате по этому параметру на серваках заметно видно преимущество SAS-винчестеров с 10k и 15k RPM - при примерно равных скоростях линейного чтения параметр IOPS у 15k RPM примерно в 5 раз больше чем у 7,2k RPM (статистику брал отсюда http://www.thecabal.org/2010/05/the-disks-the-thing-exchange-2010-storage-essays-part-2/ )
Только вот как посмотреть кол-во ожидающих операций для винчестера (не общий объем данных в ожидании чтения/записи в мегабайтах, а именно кол-во отдельных операций чтения/записи блоков данных в ожидании) - так и не смог найти. Если кто подскажет - буду премного благодарен!