Pull to refresh

Comments 25

Спасибо за подробный разбор
UFO just landed and posted this here

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


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

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

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

UFO just landed and posted this here
Спасибо!

Дополню — в 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. Но статья респект автору.
«Изменения в последнем официальном релизе (p13) слишком многочисленны, чтобы их перечислять (или даже вспомнить)...» — Линус


В цитатник!

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

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

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

Sign up to leave a comment.