Cтранности с kevent

Igor Sysoev is at rambler-co.ru
Wed Nov 26 16:49:49 MSK 2008


On Wed, Nov 26, 2008 at 04:42:30PM +0300, Никита Козлов wrote:

> Небольшое уточнение:
> Когда был nginx/0.7.22 для некоторых локейшенов стоял directio 4m,
> поскольку там фалы по 2Гб.
> И глобально был включен sendfile, в логах появлялись вот такие сообщения:
> 
> 2008/11/24 14:36:29 [debug] 33593#0: *13445002 sendfile() sent only
> 32981 bytes (35: Resource temporarily unavailable)
> 2008/11/24 14:36:29 [debug] 33593#0: *13445002 sendfile: -1, @0 32981:100630
> 
> Довольно много.

Это нормальное поведение.

> Переехали на nginx/0.6.33 и пришлось sendfile выключить поскольку
> много больших файлов, а directio в nginx/0.6.33 нет.
> 
> Сегодня попробую накатить обратно nginx/0.7.22 и выключу directio и
> sendfile, посмотрим что будет.

Для больших файлов лучше накатить патч для sendfile'а и использовать
sendfile, а не directio.

> 26 ноября 2008 г. 15:15 пользователь Igor Sysoev <is at rambler-co.ru> написал:
> > On Wed, Nov 26, 2008 at 02:08:55PM +0300, Никита Козлов wrote:
> >
> >> В общем перешли на nginx/0.6.33, проблема с "замиранием" kevent ушла.
> >
> > По идее, 0.7.22 и 0.6.33 в этом месте должны себя вести одинаково.
> >
> >> 2008/11/24 Никита Козлов <niakrisn at gmail.com>:
> >> > Пардон, а вот слона та я и не заметил...
> >> > В логах на счет дисков пусто, а вот iostat -x вон что кажет:
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       86.9   0.2  5563.6     9.3    1  13.1  96
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       76.5   0.0  4893.2     0.0    1  15.2  96
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       92.4   0.0  5910.6     0.0    1  11.5  96
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       87.4   0.0  5592.8     0.0    2  13.0  98
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       69.5   0.0  4448.8     0.0    1  18.6 100
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       72.5   0.0  4639.5     0.0    1  16.1  97
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       77.5   0.0  4957.3     0.0    1  14.6  99
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       78.5   0.0  5020.8     0.0    1  15.0  98
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       76.5   0.0  4893.7     0.0    1  14.3  97
> >> >                        extended device statistics
> >> > device     r/s   w/s    kr/s    kw/s wait svc_t  b
> >> > da1       93.3   0.0  5974.0     0.0    1  11.9  98
> >> >
> >> >
> >> > Видимо причина в этом.
> >> >
> >> > Игорь, на сколько я понял строка "2008/11/24 18:45:14 [debug] 40079#0:
> >> > *111 kevent: 119: ft:-1 fl:0020 ff:00000000 d:527 ud:48C00DD5", это
> >> > дамп события?
> >> >
> >> > Правильно ли я понял, что с момента kevent set event до дампа kevent
> >> > происходит какая-то операция с диском, которая может дать такую
> >> > задержку?
> >> >
> >> > 24 ноября 2008 г. 20:38 пользователь Igor Sysoev <is at rambler-co.ru> написал:
> >> >> On Mon, Nov 24, 2008 at 08:10:37PM +0300, Никита Козлов wrote:
> >> >>
> >> >>> top кажет:
> >> >>> last pid: 41119;  load averages:  0.14,  0.10,  0.08
> >> >>>
> >> >>>           up 14+00:57:58  20:05:23
> >> >>> 58 processes:  1 running, 57 sleeping
> >> >>> CPU states:  0.2% user,  0.0% nice,  0.3% system,  0.0% interrupt, 99.5% idle
> >> >>> Mem: 268M Active, 1772M Inact, 378M Wired, 74M Cache, 197M Buf, 7804K Free
> >> >>> Swap: 8192M Total, 420K Used, 8191M Free
> >> >>>
> >> >>>   PID USERNAME    THR PRI NICE   SIZE    RES STATE  C   TIME   WCPU COMMAND
> >> >>> 40079 www           1  -8    0 47560K 46016K biord  7   1:08  0.83% nginx
> >> >>> 40869 www           1  20    0 21136K 11292K lockf  2   0:01  0.10% httpd
> >> >>>   935 mysql        18  96    0  1170M   160M ucond  5  19:22  0.00% mysqld
> >> >>>   859 pgsql         1  96    0 40904K  6104K select 0   2:11  0.00% postgres
> >> >>> 82170 root          1  96    0 20112K 10588K select 0   1:58  0.00% httpd
> >> >>>   957 root          1  96    0  5848K  2456K select 6   0:19  0.00% sendmail
> >> >>>   860 pgsql         1  96    0  9096K  2488K select 3   0:09  0.00% postgres
> >> >>>   967 root          1   8    0  3184K  1016K nanslp 7   0:07  0.00% cron
> >> >>> 51026 root          1  96    0  7244K  3616K select 0   0:06  0.00% proftpd
> >> >>>
> >> >>>
> >> >>> Попробую накатить STABLE
> >> >>
> >> >> А с диском проблем нет ? Нужно смотреть в /var/log/messages
> >> >>
> >> >>> 24 ноября 2008 г. 19:46 пользователь Igor Sysoev <is at rambler-co.ru> написал:
> >> >>> > On Mon, Nov 24, 2008 at 07:02:30PM +0300, Никита Козлов wrote:
> >> >>> >
> >> >>> >> Добрый день всем.
> >> >>> >>
> >> >>> >> Дня два назад, nginx начал медленно отдаваться контент с сайтов
> >> >>> >> (использую nginx/0.7.22).
> >> >>> >> Поставил дебаг на свой IP, посмотреть что происходит и заметил следующую вещь:
> >> >>> >> 2008/11/24 14:36:18 [debug] 33593#0: *13445002 accept: 213.85.189.1 fd:689
> >> >>> >> 2008/11/24 14:36:18 [debug] 33593#0: *13445002 event timer add: 689:
> >> >>> >> 60000:3460959328
> >> >>> >> 2008/11/24 14:36:18 [debug] 33593#0: *13445002 kevent set event: 689:
> >> >>> >> ft:-1 fl:0025
> >> >>> >> 2008/11/24 14:36:29 [debug] 33593#0: *13445002 kevent: 689: ft:-1
> >> >>> >> fl:0020 ff:00000000 d:451 ud:48D004B0
> >> >>> >>
> >> >>> >> Обратите внимание на время между kevent set event и дампом kevent.
> >> >>> >> И так с каждым новым подключением, задержка бывает разной, удалось
> >> >>> >> заметить от 10 до 12 секунд.
> >> >>> >>
> >> >>> >> Кто-нибудь сталкивался с подобной проблемой?
> >> >>> >
> >> >>> > Что показывает top в такие моменты ?
> >> >>> >
> >> >>> >> После перезагрузки или релода nginx, некоторое время все работает нормально:
> >> >>> >> 2008/11/24 18:45:14 [debug] 40079#0: *111 accept: 213.85.189.1 fd:119
> >> >>> >> 2008/11/24 18:45:14 [debug] 40079#0: *111 event timer add: 119: 60000:3475894737
> >> >>> >> 2008/11/24 18:45:14 [debug] 40079#0: *111 kevent set event: 119: ft:-1 fl:0025
> >> >>> >> 2008/11/24 18:45:14 [debug] 40079#0: *111 kevent: 119: ft:-1 fl:0020
> >> >>> >> ff:00000000 d:527 ud:48C00DD5
> >> >>> >>
> >> >>> >> ОС: FreeBSD 7.0-RELEASE #3
> >> >>> >
> >> >>> > Возможно, имеет смыл накатить до -STABLE.
> >> >>> >
> >> >>> >
> >> >>> > --
> >> >>> > Игорь Сысоев
> >> >>> > http://sysoev.ru
> >> >>> >
> >> >>> >
> >> >>
> >> >> --
> >> >> Игорь Сысоев
> >> >> http://sysoev.ru
> >> >>
> >> >>
> >> >
> >
> > --
> > Игорь Сысоев
> > http://sysoev.ru
> >
> >

-- 
Игорь Сысоев
http://sysoev.ru





More information about the nginx-ru mailing list