Pull to refresh

Comments 58

Почерпнул кое-что новое. Не обращал раньше никогда внимание на значения в графе CPU(s).
man ps говорит, что Вы ошибаетесь в ограничении состояния процесса всего лишь тремя:

PROCESS STATE CODES
Here are the different values that the s, stat and state output specifiers (header «STAT» or «S») will display to describe the state of a process.
D Uninterruptible sleep (usually IO)
R Running or runnable (on run queue)
S Interruptible sleep (waiting for an event to complete)
T Stopped, either by a job control signal or because it is being traced.
W paging (not valid since the 2.6.xx kernel)
X dead (should never be seen)
Z Defunct («zombie») process, terminated but not reaped by its parent.
Я как-то тоже читал этот мануал и строка «X dead (should never be seen)» меня изрядно повеселила.
Все верно, спасибо за дополнение. Изначально не хотел сильно отягощать статью, а просто рассказать, как трактовать load average новичку и дать начальные направления, куда двигаться для разрешения проблем. :)
Да вы её и не отягощили. Вполне можно было бы рассказать и о iostat, strace, iperf. :) А то, только увлекся чтением, как бац и конец.
А не было ли статей с описанием хороших средств наблюдения за СУБД (MySQL)?
Странно, но поиск по innotop не дал результатов на хабре :)
Вобще вот тут много интересного по производительности mysql www.mysqlperformanceblog.com/
консольная утилита по текущим запросам: mytop
утилиты по оптимизации mysql (анализ конфигурации и рекомендации к модификациям):
tuning-primer.sh
mysqltuner.pl

в конфиге mysql вывод медленных запросов:
long_query_time = 1 #время в секундах, когда запрос считается медленным
Большое спасибо за «ps axfu»! С нетерпенем жду продолжение про iostat и sar
UFO just landed and posted this here
у меня VDS, параметра %st невижу, linux debian

ой, это не все было:

top — 16:09:49 up 8 days, 15:26, 1 user, load average: 0.04, 0.05, 0.01
Tasks: 18 total, 2 running, 16 sleeping, 0 stopped, 0 zombie
Cpu(s): 1.7% us, 0.0% sy, 0.0% ni, 98.3% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 98304k total, 98304k used, 0k free, 0k buffers
Swap: 0k total, 0k used, 0k free, 0k cached

что я делаю не так?
htop гораздо лучше и приятнее глазу показывает нагрузку ЦПУ (по ядрам и процессорам), используемую, свободную и закешированную память + сортировка по дереву процессов и используемым ресурсам (в top все это есть, но не так наглядно)
А он умеет как atop показывать нагрузку на сеть и диск по каждому процессу?
нет :)
это разные вещи :)
htop больше подойдет для поиска загрузки определенного процесса, а atop — для всей системы в целом
Тогда не интересно :)
atop еще умеет суммировать загрузку по программе (например взять все apache вместе)
ну я использую htop, когда надо пробежаться по процессам или посмотреть через strace чем же он занимаеться :)
Итак, проще говоря, числа отражают число блокирующих процессов в очереди на исполнение в определенный временной интервал, а именно 1 минута, 5 минут и 15 минут, соответственно.


Очень неточное предложение. Запутывает.

На самом деле «блокирующих» тут абсолютно лишнее слово. Лучше просто сказать «стоящих в очереди на исполнение».

И не «в определенный временной интервал», а «среднее значение за определенный интервал». То что вы сказали, это соовсем другая цифра.
Если у вас Linux, то можно попробовать понажимать в top на разные кнопочки:

z, x — сделают топ цветным;

c — заставит отображать полное имя процессов;

1 — покажет все процессоры с загрузкой по каждому;

Shift+G и, затем 1-4 позволят переключить на другой экран top'a, где можно подробнее рассмотреть использование памяти/посмотреть кто ушел в своп;

Shift <, Shift > изменить колонку сортировки (удобнее смотреть на цветном top'e)

а во фрях чтобы увидеть нагрузку процессоров надо заюзать top -P, для полного имени top -a, а цветного топа не видать:)
Вот за это — отдельное спасибо! Знал только про > и <.
ну вообще если нажать h то можно увидеть хелп)
Определение «отражают число блокирующих процессов в очереди» не совсем корректное, т.к. процессы все же не блокируют что-то, а ожидают своей очереди на выполенение.

Так же, определение «Высокие значения показателей load average» абсолютно не раскрыто. Сколько в числах? 1? 2? Может 3?

Общепринятое мнение, что значения в la не должны быть больше единицы. Однако, стоит учитывать особенности аппаратной части системы, а именно колличество процессоров. Например, в случае, если система располагает ресурсами 4-х процессоров(ядер), то значения la <= 4 считаются нормальными.

Вот ссылочка, на вполне вменяемое определение la:
http://www.teamquest.com/resources/gunther/display/5/index.htm
Расширяя обсуждение в «Общем обзоре стандартных средств наблюдений за системой»...

В комментарии, сподвигшем меня на написания данной заметки, как раз было сказано, что параметр load average в общем случае не должен превышать число ядер процессора; я лишь постарался несколько развить мысль. ;)

Спасибо за ссылку!
Не за что. :)

Только вот не "… превышать число ядер процессора...", а «не превышать общее количество процессоров(ядер)».

Удачи!
Двух, вроде бы. В высоконагруженных системах конкурентность процессов — максимум два виртуальных CPU, nо есть, скажем на однопроцессорной системе с hyper-threading виртуально 2 CPU, т.е. с LoadAverage 4 такой комп уже начинает виснуть.
Рекомендую ещё утиль iotop — то же что и обычный top по CPU, но только по диску. Доступно на относительно свежих ядрах. Есть в ребозиториях debian/ubuntu.
На FreeBSD аналогичное делается top -m io
еще во фрях можно обратить внимание на gstat
Когда задался вопросом — что же такое load average -первое, что я сделал — man top :) Там не плохо описанно ;)
Немного по терминологии. Мне не понятно почему процесс блокирующий. Он что-то блокирует, или его ЗАблокировали, недодав ресурсов?
Собственно в данном случае — он просто ждет процессорного времени.
Да, мне тоже кажется что он не блокирующий, а заблокированный.
Статья полезная, вместе с коментами неплохая подборка получилась
Спасибо.
Действительно, вся ценность именно в комментариях! Размещая заметку, сообщество профессионалов дополняет ее, правит, делится опытом, и в итоге получается отличный качественный материал по теме.
Кстати, поясните кто-нибудь, за что отвечает параметр Nice?
Приоритет процесса.
Хм… а чем отличается от колонки PR слева от NI?
Например, программа может быть запущенна с повышенным приоритетом ( nice -5 ). Глобально в системе приоритет программы будет выставлен как минимальный (20) + «маржа» nice. Системная программа ktheadd запущенна с дефолтным приоритетом 20 + nice(-5), в результате приоритет 15.
Есть еще очень неплохая утилита atop — складывает статитсику за прошлые 30 дней и можно посмотреть детали за вчера к примеру в тот период времени, когда сервер бутнулся или упал. Очень помогает для разруливания екстраординарных случаев на сервере. Также еще и загрузку винта по процессам показывает.
Прелесть в atop — то что она показывает, disk load + загрузку интерфейсов.
Хотелось бы еще узнать что это за звери 0.0% ni, 98.3% id, 0.0% hi, 0.0% si чиста из детского любопытства.
Спасибо за топик! Так доходчиво наконец то понял, что это за Load average :)
P.S. я не ITишник :)
%ni — процент использования процессорного времени процессами с измененным приоритетом nice (я выше спрашивал зачем он)
%id — простой процессора (ну тут все ясно)
%hi — процент времени, которое процессор тратит на обработку прерываний на уровне железа (IRQ)
%si — то же, что и %hi, только для софт-прерываний
vmstat 1 1000
1 — каждую сек, 1000 — показать 1000 раз

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 0 0 875344 540236 358920 0 0 71 29 586 876 12 16 71 2
1 0 0 875352 540236 358920 0 0 0 0 1505 2045 10 14 76 0
1 0 0 875352 540244 358912 0 0 0 24 1670 2458 13 15 72 0
0 0 0 875352 540244 358920 0 0 0 0 1532 1957 11 15 75 0
Боже мой, Хабр снова тот!

Спасибо, пожалуйста, продолжайте такие практические статьи. Хоть из озвученного было все известно, у меня чувство, что дальше можно узнать много нового.
Блин, давно искал статью где понятно описываются эти числа.
Продолжение будет?
Что бы Вы хотели в продолжении? :)
>Дальнейшую отладку можно производить вооружившись iostat, systat (FreeBSD), strace, iperf, но это уже тема другой статьи.

Ну вот как раз по ним и пойти (;
процесор свободный, а load average — 55( практически не работает в общем)
что делать?
Обратиться к системному администратору.
какой аптайм просто ребут мягкий пробовали? как быстро возвращается к такому состоянию?
И вам привет, все секреты в блокировках сидели.
Раз la — количество команд чего-то ожидающих — туда и надо было копать.
Есть шанс что вернуться картинки? Очень хочется иногда на такую статью дать ссылку.
Только сейчас увидел Ваш комментарий.
Sign up to leave a comment.

Articles