Как стать автором
Обновить

Комментарии 25

the best story what i have ever read about LA.
Спасибо за подробный разбор
НЛО прилетело и опубликовало эту надпись здесь

Как жаль, что не могу я плюсовать
статью… Отдал бы все плюсы на свете...


Огромное Спасибо Переводчику!

Я за тебя плюсанул

Кто то в mail.ru не выдержал видимо, постоянно спрашивая у всех про LA и не получая ответа )))
Я спросил у google.com «Где мой load average?»
Гугл мне ответил «VPS хостинг недорого»
Я спросил у yandex.ru «Где мой load avarage?»
У яндекса ответил мне лишь автопоэт.
Спасибо за проделанную работу! Меня бы не хватило на разбор десятков тысяч коммитов/писем/расслок )
Это перевод
Матиас не очень то умный…
«Мы меняем диск на более медленный и система становится быстрее. Это не логично.»
WTF???
Мы меняем диск и у нас ботлнек с процессора уезжает на диск. И старая метрика это прекрасно показывала.
А новая не показывает ничего вообще.
Т.е. по вашему это логично видеть LA 0.5 и ощущать дикие тормоза? (например из-за большой нагрузки на HDD)
Конечно. Этот прямым текстом говорит: есть проблема, но она не в процессоре.
А что вам сейчас то в линуксе скажет LA 10, например? Вы и без анализа LA увидите что всё тормозит.

Логично. По крайней мере если рядом нет столь же доступной метрики средней нагрузки на процессор.

iotop / iostat ответят про диски
НЛО прилетело и опубликовало эту надпись здесь
Спасибо!

Дополню — в FreeBSD два планировщика (и алгоритма расчета нагрузки): BSD4.4 scheduler (старый, без поддержки HT и пр., но его (вроде) все еще можно использовать в кастомно собранном ядре) и новый — ULE scheduler (с 5-ой версии). Так вот, в новой версии счетчик выглядит так:

int tdq_sysload; /* For loadavg, !ITHD load. */

Коммент к функцкии, увеличивающей это счетчик:

* Load is maintained for all threads RUNNING and ON_RUNQ.

И действительно, можно найти проверку:

KASSERT((TD_CAN_RUN(td) || TD_IS_RUNNING(td))

Теперь нужно разобраться и понять что это за два состояния.

TD_IS_RUNNING поток в состоянии TDS_RUNNING, т.е. поток запущенный в данный момент на каком-либо ядре.

TD_CAN_RUN — поток в состоянии TDS_CAN_RUN. Не вдаваясь в подробности — это поток готовый к выполнению.

Из чего следует что правка в ядре линукса в 1993 году обошла FreeBSD стороной и он считает только загрузку процессора.
Спасибо автору! Труд проделан колоссальный. Мог бы плюсовать, поставил бы плюс!
ПФФ.
то есть в линуксе невозможно сделать что-то типа полноценного виндового диспетчера задач (хотя бы подобие) на пользовательском уровне без вмешательства в код ОС? В винде уже 10 лет все работает и считается раздельно…
Можно конечно, просто для этого есть другие инструменты. В статье указана часть из них
LA demystified но таки хотя бы примеры привели что можно детально посмотреть что происходит (происходило) в системе используя старый добрый sysstat sar. Но статья респект автору.
Есть подозрение, что на русском это называется «Экспоненциальное скользящее среднее».
Константы из кода ядра есть части сглаживающего коэффициента:
en.wikipedia.org/wiki/Moving_average#Application_to_measuring_computer_performance
«Изменения в последнем официальном релизе (p13) слишком многочисленны, чтобы их перечислять (или даже вспомнить)...» — Линус


В цитатник!

Собстевенно, вся суть статьи:

"Вместо того, чтобы заниматься отладкой средних значений нагрузки, я обычно переключаюсь на другие метрики. Об этом мы поговорим ближе к концу статьи, в главе «Более подходящие метрики». "

именно так, все так делают

Зарегистрируйтесь на Хабре, чтобы оставить комментарий