Re: Тест nginx -- сколько сообщений в log syslog без потерь?

Gena Makhomed gmm на csdoc.com
Вт Фев 13 03:31:44 UTC 2024


On 12.02.2024 12:30, Anatoliy Melnik via nginx-ru wrote:

> Из его собщения от 5 февраля однозначно следует, что он
> уже пытался настроить запись логов напрямую в файл но не смог
> получить рабочего решения при 200-250 тысячах подключений в секунду
> и необходимости делать ротацию лога каждые 30 секунд. И даже предлагает
> мне самому попробовать и убедиться, что это не работает и что таким
> образом запись и ротацию логов в файл самим nginx при такой большой
> нагрузке и при таком интервале ротации - настроить невозможно,

> Я предлагал попробовать и поделиться, лично я попробовал, получил результат -- пишет, работает, возможно. И сделал это ДО того, как сюда обратился...
> НО меня сей результат не удовлетворил.

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

Насколько мне известно, переоткрытие лог-файлов по сигналу USR1
происходит практически мгновенно и не требует перезапуска
рабочих процессов nginx, поэтому - не может приводить ни к каким
проблемам на любом количестве соединений при ротации лог-файлов
nginx раз в 30 секунд.

Тем более, что директива access_log позволяет настроить
процесс записи логов наиболее оптимальным способом, ключив
буферизацию, и при необходимости - компрессию логов на лету.

access_log path [buffer=size] [gzip[=level] [flush=time]

Поэтому - я просто не понимаю, какие у Вас могли там возникнуть
проблемы, если делать ротацию логов nginx раз в 30 секунд на любом
количестве подключений - от количества подключений это вообще никак
не зависит, потому что новые рабочие процессы nginx при этом
не создаются и страрые рабочие процессы nginx не завершаются.

кстати, и logrotate делает ротацию логов nginx таким же способом:

# cat /etc/logrotate.d/nginx

if [ -f /var/run/nginx.pid ]; then
         kill -USR1 `cat /var/run/nginx.pid`
fi


> Да, да (понимаю) -- чем он меня "не удовлетворил"??
> --- можете фантазировать сколько угодно.

Могу, но не хочу. Поэтому и прошу Вас чтобы Вы сами рассказали всем
здесь присутствующим о том, какие проблемы Вы обнаружили при ротации
логов с помощью сигнала USR1. Я здесь не вижу вообще никаких проблем.

> Задача по предотвращению исчерпания места на диске так же была решена задолго ДО обращения сюда.

Поделитесь своим опытом решения этой задачи.
Потому что я пока что не смог найти решения.

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

Я уже отвечал на этот Ваш вопрос.

Этот список рассылки - он посвящен nginx, а не процессу самоутверждения.
И если кто-то начинает ради самоутверждения распространять ложную
информацию про nginx, например, что nginx не способен самостоятельно
писать логи в файлы при количестве подключений 200-250 тысяч в секунду
и ротации лог-файлов раз в 30 секунду и что решением этой проблемы
является набор костылей в виде syslog, unix socket, и десяти
одновременно запущеных копий скрипта на Python - то это FUD
и это вредит не только конкретно тому человеку, который это
делает, но и всему nginx community, то есть всем участниками
и читателям списка рассылки, потому что часть неопытных пользователей
nginx может в этот FUD поверить и считать эту Вашу информацию истинной.

FUD - это
https://en.wikipedia.org/wiki/Fear,_uncertainty,_and_doubt
https://ru.wikipedia.org/wiki/FUD

> Это не конкурс или состязание, я сюда обратился за советом.

Так я тоже обратился к Вам за советом - пожалуйста, поделитесь опытом,
и расскажите, какие проблемы Вы обнаружили при ротации логов nginx
с помощью сигнала USR1 что были вынуждены отказаться от этого варианта
работы и логами и были вынуждены в результате соорудить то,
что Вы назвали решением этой проблемы - в виде syslog, unix socket и 
скрипта на Python запускемого в 10 экземплярах и пишущего логи в 10 
отдельных файлов.

Решением какой именно _проблемы_ является эта конструкция,
которую Вы называете в своих сообщениях решением проблемы?

> Какая разница насколько глубокое ущелье на моем пути, если я уже построил через него мост?
> Может он не самый красивый, вечный, грузоподъемный и уникальный...
> Для моих целей его достаточно :)
> Возможно, по мнению кого-то, я вообще иду "не туда"!

Дело тут не только и не столько в https://xkcd.ru/386/
потому что идя не туда, Вы еще этот способ идти не туда
и рекламируете как _решение проблемы_, чем делаете FUD,
хотя лично Вам этот веб-сервер ничего плохого не сделал.

> И? Вы свои аргументы привели, мое мнение они не изменили...
> Или для некоторых "есть только два мнения: моё и неправильное"?

Поделитесь своим опытом, расскажите, почему эта конструкция
из syslog, unix socket и десяти скриптов на python, пишущих
сообщения в десять лог-файлов оказалась для Вас лучше,
чем встроенные в nginx возможности для записи и ротации логов?

> Или я чего-то не понимаю?

«Ничего личного, только бизнес».

Источник: https://uchet-jkh.ru/i/nicego-licnogo-tolko-biznes-otkuda-fraza

-- 
Best regards,
  Gena



Подробная информация о списке рассылки nginx-ru