On Thu, Jan 18, 2024 at 10:10:14PM +0300, Anatoliy Melnik via nginx-ru wrote: > > Чем гадать, что "вероятнее всего", возьмите исходники nginx, вставьте > > счётчик передач в syslog, смотрите его и сравнивайте с количеством пакетов, > > пришедших в syslog. Так можно исключить потери в сети. > > Вроде при записи в unixSocket сеть отсутствует.
Это "внутренняя" сеть, только с address family = AF_UNIX, а не AF_INET. И несколько другими алгоритмами, в частности, исключены потери пакетов как для SOCK_STREAM, так и для SOCK_DGRAM. Что, конечно, не мешает приложениям дропать пакеты при переполнениях ядерных буферов, приводящим к ошибкам на уровне send(), как тут ведёт себя nginx -- не знаю. Однако попытаться увеличить всякие буферы однозначно полезно. > В любом варианте ваш совет трудно реализовать -- моя квалификация как > программиста для подобной задачи не достаточна. Тогда шансы достичь просветления уменьшаются. :) Ну, попробуйте просто измерить пропускную способность syslog-ов каким-либо генератором записей, например, сделайте файлик с 10К уникальных сообщений, подобных nginx, и скармливайте его в цикле утилите logger. Посмотрите сколько запишется на диск и с какой скоростью, не будет ли там пропусков. Что касается использования памяти в сокетах, для линукса есть командочка "ss -m", она покажет socket memory usage. Расшифровка выдачи в man ss, посмотреть выдачу можно как по inet-сокетам, так и по unix-сокетам. Для других ОС есть другие погремушки, наверное... Квалификация тут нужна сисадминская, а не по части программирования, но по мне так правка кода nginx проще. > Пока создается впечатление, что либо у меня что-то не так, либо никому не > приходило в голову сравнить эти данные. Простой вопрос: зачем писать на диск 100 тыс/с логов, что потом с ними предполагается делать? Ведь логи пишутся не просто так, а чтобы их потом как-то обрабатывать... Что именно будет нужно из из этого океана байтов? -- Eugene Berdnikov _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org https://mailman.nginx.org/mailman/listinfo/nginx-ru