Re: запись в access_log больших объемов данных

Oleg Palij o.palij at dp.uz.gov.ua
Tue Feb 18 09:00:30 UTC 2014


13 февр. 2014, в 13:42, Валентин Бартенев <vbart at nginx.com> написал(а):
> On Thursday 13 February 2014 08:53:59 Oleg Palij wrote:
>> 
>> 12 февр. 2014, в 19:45, Валентин Бартенев <vbart at nginx.com> написал(а):
>>> On Wednesday 12 February 2014 13:40:23 Oleg Palij wrote:
>>>> Пишем в access_log данные POST:
>>>> 
>>>> Некоторые данные приходят обрезанными, т.е. идут нормальные данные, потом \n и начинается новая строка с данными.
>>>> POST данные могут быть большими (до 500 килобайт).
>>>> 
>>>> Не может это быть связанно с тем что nginx пишет из одного потока в лог, не успевает дописать, как туда же начинает писать другой поток, прерывая тем самым запись предыдущего?
>>>> И можно-ли что-то с этим сделать?
>>>> 
>>>> nginx/1.4.4
>>>> Linux 3.10.17 x86_64
>>> 
>>> timer_resolution используется?
>> 
>> Да. В конфиге есть timer_resolution 100ms;
> 
> Уберите и будет всё нормально.

Убрал. Не помогло.

После пересобрал nginx без сторонних модулей, убрал практически все опции, которые меняли значения по-умолчанию. Осталось только:

worker_rlimit_nofile 8192;
worker_processes 8;

events {
    worker_connections 1024;
    use epoll;
}

output_buffers 1 1024k;

sendfile on;
tcp_nopush on;
tcp_nodelay on;

keepalive_timeout 75 20;

server_names_hash_bucket_size 128;

И для location, где происходит логирование включил client_body_in_single_buffer. Пока наблюдаю (проблема бывает не часто).

Что еще можно поковырять?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20140218/ad434703/attachment.html>


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