- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева

Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Всем привет, есть сервер, он выполняет много мелких задач, сейчас процесс устроен таким образом, что как только LA падает ниже определенного значения, ему добавляются новые задачки...
Проблема в том, что после того как сервер выполнил пачку задач, существует временной лаг, пока LA снизится до нужного значения и в это время фактически теряется производительность, ведь задачи не идут, потому что скрипт думает что LA еще высокий.
Можно ли как то чаще обновлять LA ?
Ну и заодно вопрос, какой оптимальны LA для максимальной производительности?
Сейчас поставил 20 на 8 потоков, вроде бы нормально...
Заранее спасибо!
LA это не только процессор.
НО, если уж сильно грубо говоря:
LA1 = 100% нагрузка одного ядра.
LA2 = 100% нагрузка двух ядер и т.д.
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...
Ну так смотрите первую цифру LA, она быстрее всех обновляется.
Мне в своё время всё разъяснила статья на хабре. https://habr.com/ru/post/216827/
Из опыта: первая цифра не должна быть больше количества ядер.
f0b0s, она может быть многократно выше, все индивидуально, смотря как на это реагируют конкретные скрипты.
LoadAverage - количество процессов, ожидающих выполнения в единицу времени. Измеряется за минуту, 5 минут и 15 минут (обычно). Прямого отношения к нагрузке эта штука вообще не имеет, лишь косвенное. Мне известны специфические серверы с LoadAverage 200+ единиц, при этом работающие вполне нормально. Просто софт там такой запущен... Временной лаг в данном случае минута максимум. Если это много- оцеивайте нагрузку по другим показателям.
НО, если уж сильно грубо говоря:
LA1 = 100% нагрузка одного ядра.
LA2 = 100% нагрузка двух ядер и т.д.
Это уж перебор как грубо, нельзя такое вообще публиковать. После мифы по сети ходят, а их ноги из таких постов.
Все индивидуально под каждый проект.
cat /proc/loadavg
средняя загрузка за минуту (первая цифра) обновляется примерно раз в 5 секунд
Причин высокого LA может быть много разных и сложно посоветовать какой-то хороший и правильный не понимая как работает приложение.
Для postgresql-серверов я стараюсь удерживать его в границах количества выделенных под инстанс ядер (скачки Core x 2 допустимы)
Для CPU-intensive (когда всё упирается в процессор) LA > количества ядер обычно говорит о перегруженности
Для веб-серверов php-fpm я стараюсь не допускать LA большего, чем количество ядер x2
Про io-intensive - всё оч сложно.
Для комбинированной нагрузки тоже всё сложно.
Вообще можно попробовать сделать интегральную метрику - брать LA за минуту и количество процессов-воркеров.
Например, если процессов-воркеров стало мало - можно начинать добавлять задачи (но при условии что можно спрогнозировать как именно воркеры нагружают ядро).
Не совсем понимаю зачем эти костыли. Возьмите модель fan-out / fan-in. Берете сервер очередей (например, NATS), с одной стороны producerы - пишут в очередь, с другой стороны consumerы читают, и выполняют работу. Масштабируется легко. Можно определять размер очереди и переставать пушить, чтобы не завалить сам сервер очередей.
Не совсем понимаю зачем эти костыли. Возьмите модель fan-out / fan-in. Берете сервер очередей (например, NATS), с одной стороны producerы - пишут в очередь, с другой стороны consumerы читают, и выполняют работу. Масштабируется легко. Можно определять размер очереди и переставать пушить, чтобы не завалить сам сервер очередей.
Я исходный вопрос воспринимаю как вопрос о том как динамически управлять размером пула консьюмеров для максимальной утилизации железа.
Но у автора топика может быть иная вселенная.