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

Anatoliy Melnik anatoliy.melnik на showjet.ru
Вт Фев 13 09:38:13 UTC 2024





Gena Makhomed Wrote: 
------------------------------------------------------- 
> 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 возможности для записи и ротации логов? 
> 
Повторюсь: 
Логи - не цель, а всего лишь средство. 

Скрипт один, с модулем multiprocessing, так что экземпляров получается 11, но это не важно. 
Запись в файлы были лишь эпизодом для выяснения ограничений связки nginx->(unixSocket)->syslog 
Сейчас я вообще не пишу эти файлы, но при необходимости могу это начать делать так же на лету, не дергая ни nginx, ни сам сервис "типа персональный nginx-овый сислог". 

Все данные извлекаются в скрипте "на лету" и отображаются в соответствующих счетчиках. 

При необходимости сосчитать что-то другое/новое или по другом алгоритму - я всего лишь изменю несколько строк скрипта. 
На данном этапе проверенная производительность одной системы 240тыс/сек, прогноз исходя из статистики нагрузки - 400-420. 

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

Собственно как следствие -- отсутствие проблемы доступного дискового пространства. Нагрузка на дисковую подсистему близка к нулю. 

И я с самого начала не говорил, что мне нужны файлы! Меня интересовала связка nginx->(unixSocket)->syslog. 
Именно эту проблему я и озвучил. 

Можно сослаться на мои посты: 
"Сами файлы логов живут максимум 15-20 минут, этого достаточно для извлечения необходимых данных." 
"Производительности хранилища точно достаточно для 150тыс/сек (один из способов замера -- запуск одновременно 3-х экземпляров rsyslog на одном физическом сервере и заливка в 3 сразу тестового набора в 12млн сообщений на каждый, итог 300-450тыс/сек в совокупности, непрерывно в течении нескольких часов заливка-ротация-удаление)" 
"Данные почти равномерно расходятся по 10-ти файлам, которые пишутся на tmpfs в RAM. " 

Это были лишь промежуточные этапы, мне нужно было убедиться, что проблема именно на этапе nginx->(unixSocket)->syslog. 
И запись в файл на очень быстрый носитель был, наверное, самый прямой путь, дающий адекватные результаты. 
Свою функцию этот этап выполнил, но повторюсь - это не было целью! 
И на каждом этапе обсуждения мне казалось очевидным: мне нужна рабочая связка nginx->(unixSocket)->syslog !!! 

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

Буквально апогей!!!! Выршина дедукции!!! Шерлок Холмс не у вас, случайно, учился?? 

Чего уж там - давайте и углеродный след приплетем (нынче это модно). 



> > Или я чего-то не понимаю? 
> 
> «Ничего личного, только бизнес». 
Никогда не понимал восторгов этим правилом. 
Из личного опыта -- стараюсь не иметь дел с адептами этого подхода, и это сугубо личное. 

> 
> Источник: 
> https://uchet-jkh.ru/i/nicego-licnogo-tolko-biznes-otkuda-fraza 
> 
> -- 
> Best regards, 
> Gena 
> 
> _______________________________________________ 
> nginx-ru mailing list 
> nginx-ru на nginx.org 
> [ https://mailman.nginx.org/mailman/listinfo/nginx-ru | https://mailman.nginx.org/mailman/listinfo/nginx-ru ] 

Best regards..... 
to be continued ??? 



----------- следующая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20240213/0901bada/attachment-0001.htm>


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