Re: Перечитка конфигураций nginx
а у вас в конфигах много днс имен ? у нас основное время на "nginx -t" складывалось из днс запросов. кеш днс (systemd-resolved nscd dnsmasq ...) включен ? еще SSL серты могут много занимать на первоначальном парсинге чт, 7 июл. 2022 г. в 13:52, ru4ag : > Здравствуйте. > > Испольузем на больших серверах панель ISPmanager, в качестве веб-сервов > связка nginx+apache(в некоторых случая nginx+php-fpm), столкнулись с такой > ситуация что выполнение команды nginx -t может происходить более чем 5-8 > секунд, что напрямую влияет на работу панели и т.д., в ходе анализа > выявленно что для каждого домена панель создает несколько include, и один > из > них "подключает" 7-8 стандартных файлов с директории > /etc/nginx/vhosts-includes/ и выходит что при каждом nginx -t проверяеться > конфигурация домена, и каждого из его includ'ов, и в результате из общего > количества открытия файлов во время nginx -t(используя просмотр через > strace) в ~60тис файлов, 30тис обращений являються обращениями к одним и > тем > же 8 файлам. То есть по 3,5тис обращений на одини тот же файл. > > Вот и возникакет вопрос, ести ли какой то функционал возможно-го кеша, что > бы подключенные через include одни и те же файлы не проверялись при > 2,3,4...проверке(т.к. достаточно 1 раз проверить), и если нет(что скорее > всего), стоит ли ожидать какой-то такой реализации в ядре nginx(как по мне > "загнать" файл в кеш, и при последующей его проверка во время выполнения > nginx -t/reload/restart уже не проверять)? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,294669,294669#msg-294669 > > ___ > nginx-ru mailing list -- nginx-ru@nginx.org > To unsubscribe send an email to nginx-ru-le...@nginx.org > ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: Перечитка конфигураций nginx
On Thu, Jul 07, 2022 at 05:38:57AM -0400, ru4ag wrote: > увы, такая логика панели по построению конфигураций, мы рассматриваем еще > вариант свести все ти 8 файлов из инклуда в один файл, тогда вместо 30тис > перечитываний, будет 3,5 тис. перечитывания конкретно него. Но не уверены > что какое-то обновление панели это все не сломает, да и все-равно остаеться > момент что один и тот жефайл перечитыветься 3 тис раз. Логика панели тут побоку. Панель раскладывает конфигурацию в набор файлов. Вам нужно этот набор превратить в один файл. Для этого делаете свой парсер директив "include", возможно, применяя для этого штатные средства других препроцессоров, чтобы include объявить макросом. -- Eugene Berdnikov ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: Перечитка конфигураций nginx
увы, такая логика панели по построению конфигураций, мы рассматриваем еще вариант свести все ти 8 файлов из инклуда в один файл, тогда вместо 30тис перечитываний, будет 3,5 тис. перечитывания конкретно него. Но не уверены что какое-то обновление панели это все не сломает, да и все-равно остаеться момент что один и тот жефайл перечитыветься 3 тис раз. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,294669,294675#msg-294675 ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: Перечитка конфигураций nginx
On Thu, Jul 07, 2022 at 05:16:38AM -0400, ru4ag wrote: > и проблема не в числе инклюдов, а в том что перечитываеться один и тот же > файл(что идет в инклюде каждого хоста) множество раз, хотя логично было бы > его перечитать 1 раз. Интерпретация инклуда зависит от того, в какой блок он считывается... Если хочется сэкономить на на сисколах open() и close(), то что мешает генерить общий конфиг (через m4, cpp, etc), и затем загружать его целиком? -- Eugene Berdnikov ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: Перечитка конфигураций nginx
отключение данной директории(просто переименовав в /etc/nginx/vhosts-includes_) снижало время на перечитывание до 1.8-2сек, что в 2-3 раза быстрее. и проблема не в числе инклюдов, а в том что перечитываеться один и тот же файл(что идет в инклюде каждого хоста) множество раз, хотя логично было бы его перечитать 1 раз. Posted at Nginx Forum: https://forum.nginx.org/read.php?21,294669,294672#msg-294672 ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org
Re: Перечитка конфигураций nginx
5-7 секунд еще не долго. Вот минут 5 - это было больно. И насколько я помню, влияет не число инклудов, а число локейшенов и апстримов. On Thu, 7 Jul 2022 at 09:54, ru4ag wrote: > Здравствуйте. > > Испольузем на больших серверах панель ISPmanager, в качестве веб-сервов > связка nginx+apache(в некоторых случая nginx+php-fpm), столкнулись с такой > ситуация что выполнение команды nginx -t может происходить более чем 5-8 > секунд, что напрямую влияет на работу панели и т.д., в ходе анализа > выявленно что для каждого домена панель создает несколько include, и один > из > них "подключает" 7-8 стандартных файлов с директории > /etc/nginx/vhosts-includes/ и выходит что при каждом nginx -t проверяеться > конфигурация домена, и каждого из его includ'ов, и в результате из общего > количества открытия файлов во время nginx -t(используя просмотр через > strace) в ~60тис файлов, 30тис обращений являються обращениями к одним и > тем > же 8 файлам. То есть по 3,5тис обращений на одини тот же файл. > > Вот и возникакет вопрос, ести ли какой то функционал возможно-го кеша, что > бы подключенные через include одни и те же файлы не проверялись при > 2,3,4...проверке(т.к. достаточно 1 раз проверить), и если нет(что скорее > всего), стоит ли ожидать какой-то такой реализации в ядре nginx(как по мне > "загнать" файл в кеш, и при последующей его проверка во время выполнения > nginx -t/reload/restart уже не проверять)? > > Posted at Nginx Forum: > https://forum.nginx.org/read.php?21,294669,294669#msg-294669 > > ___ > nginx-ru mailing list -- nginx-ru@nginx.org > To unsubscribe send an email to nginx-ru-le...@nginx.org > -- Best regards, Anton Kiryushkin ___ nginx-ru mailing list -- nginx-ru@nginx.org To unsubscribe send an email to nginx-ru-le...@nginx.org