Частота обновления load averange

12
Playray
На сайте с 06.09.2008
Offline
113
1945

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

Проблема в том, что после того как сервер выполнил пачку задач, существует временной лаг, пока LA снизится до нужного значения и в это время фактически теряется производительность, ведь задачи не идут, потому что скрипт думает что LA еще высокий.

Можно ли как то чаще обновлять LA ?

Ну и заодно вопрос, какой оптимальны LA для максимальной производительности?

Сейчас поставил 20 на 8 потоков, вроде бы нормально...

Заранее спасибо!

LEOnidUKG
На сайте с 25.11.2006
Offline
1554
#1

LA это не только процессор.

НО, если уж сильно грубо говоря:

LA1 = 100% нагрузка одного ядра.

LA2 = 100% нагрузка двух ядер и т.д.

✅ Трастовых площадок под размещение статей и ссылок. Опыт 12 лет! ( https://searchengines.guru/ru/forum/675690 ) ⭐ Купить вечные трастовые ссылки для сайта ( https://getmanylinks.ru/?srh ) ⭐ Ускорение ваших сайтов (WP, Opencart и др.) + Настройка сервера ( https://searchengines.guru/ru/forum/997205 )
Playray
На сайте с 06.09.2008
Offline
113
#2
LEOnidUKG:
LA это не только процессор.

НО, если уж сильно грубо говоря:
LA1 = 100% нагрузка одного ядра.
LA2 = 100% нагрузка двух ядер и т.д.

Я понимаю принцип, что LA это очередь задач к процессору...

Но вопрос в частоте измерения, вот например, при LA=8 мы добавляем еще задачу, и в логах я вижу, что добавились задачи все с одним значением LA, я сначала думал что у htop на экране LA обновляется не в реальном времени, но получается что и для скриптов нет моментального LA, а только значения которое обновляется например раз в секунду?

Еще заметил, что когда LA упал и htop показывает что нагрузка на проц упала, другие ресурсы тоже не заняты, просто LA выходит обновляется с лагом, поэтому и спрашиваю, есть варианты ускорения обновления LA?

Если говорить про то какой LA про какой LA оптимальнее, то заметил что например обычные сайты с LA 10-15 на 4х ядрах открываются практически как обычно, но если LA будет 30, то тормаза будут в 30 раз сильнее, а не в 2-3...

foxi
На сайте с 02.03.2011
Offline
877
#3

Ну так смотрите первую цифру LA, она быстрее всех обновляется.

Антибот защита для сайта (https://antibot.cloud/ru.html#searchengines) (защита от кражи контента и спама) | ВебМастерские микроблоги (https://wmsn.biz/#searchengines) | Фокси SEO форум (https://foxi.biz/#searchengines)
F0
На сайте с 15.04.2010
Offline
72
#4

Мне в своё время всё разъяснила статья на хабре. https://habr.com/ru/post/216827/

Из опыта: первая цифра не должна быть больше количества ядер.

foxi
На сайте с 02.03.2011
Offline
877
#5

f0b0s, она может быть многократно выше, все индивидуально, смотря как на это реагируют конкретные скрипты.

lonelywoolf
На сайте с 23.12.2013
Offline
151
#6

LoadAverage - количество процессов, ожидающих выполнения в единицу времени. Измеряется за минуту, 5 минут и 15 минут (обычно). Прямого отношения к нагрузке эта штука вообще не имеет, лишь косвенное. Мне известны специфические серверы с LoadAverage 200+ единиц, при этом работающие вполне нормально. Просто софт там такой запущен... Временной лаг в данном случае минута максимум. Если это много- оцеивайте нагрузку по другим показателям.

Платный и бесплатный хостинг с защитой от DDoS (http://aquinas.su)
WapGraf
На сайте с 30.09.2009
Offline
455
#7
LEOnidUKG:
НО, если уж сильно грубо говоря:
LA1 = 100% нагрузка одного ядра.
LA2 = 100% нагрузка двух ядер и т.д.

Это уж перебор как грубо, нельзя такое вообще публиковать. После мифы по сети ходят, а их ноги из таких постов.

Все индивидуально под каждый проект.

EuroHoster.org ( https://eurohoster.org/link.php?id=42 ) - территория быстрых серверов. Скидка 70% на VPS и 10% на выделенные серверы в Нидерландах (https://eurohoster.org/index.php?rp=/announcements/330/Скидки.html)
B
На сайте с 21.10.2010
Offline
94
#8

cat /proc/loadavg

средняя загрузка за минуту (первая цифра) обновляется примерно раз в 5 секунд

Причин высокого LA может быть много разных и сложно посоветовать какой-то хороший и правильный не понимая как работает приложение.

Для postgresql-серверов я стараюсь удерживать его в границах количества выделенных под инстанс ядер (скачки Core x 2 допустимы)

Для CPU-intensive (когда всё упирается в процессор) LA > количества ядер обычно говорит о перегруженности

Для веб-серверов php-fpm я стараюсь не допускать LA большего, чем количество ядер x2

Про io-intensive - всё оч сложно.

Для комбинированной нагрузки тоже всё сложно.

Вообще можно попробовать сделать интегральную метрику - брать LA за минуту и количество процессов-воркеров.

Например, если процессов-воркеров стало мало - можно начинать добавлять задачи (но при условии что можно спрогнозировать как именно воркеры нагружают ядро).

Дела должны делаться
D
На сайте с 18.12.2015
Offline
142
#9

Не совсем понимаю зачем эти костыли. Возьмите модель fan-out / fan-in. Берете сервер очередей (например, NATS), с одной стороны producerы - пишут в очередь, с другой стороны consumerы читают, и выполняют работу. Масштабируется легко. Можно определять размер очереди и переставать пушить, чтобы не завалить сам сервер очередей.

Разработка и поддержка высоконагруженных проектов.
B
На сайте с 21.10.2010
Offline
94
#10

Не совсем понимаю зачем эти костыли. Возьмите модель fan-out / fan-in. Берете сервер очередей (например, NATS), с одной стороны producerы - пишут в очередь, с другой стороны consumerы читают, и выполняют работу. Масштабируется легко. Можно определять размер очереди и переставать пушить, чтобы не завалить сам сервер очередей.

Я исходный вопрос воспринимаю как вопрос о том как динамически управлять размером пула консьюмеров для максимальной утилизации железа.

Но у автора топика может быть иная вселенная.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий