Долгий коннект к серверу

Igor Sysoev is at rambler-co.ru
Fri Feb 23 17:33:51 MSK 2007


On Fri, Feb 23, 2007 at 04:18:21PM +0300, Александр Ворона wrote:

> Igor Sysoev пишет:
> >Он в nginx'е и так неблокируемый: http://sysoev.ru/2006.html#08.01.2006
> >
> 
> uname -srm
> Linux 2.6.18.3-grsec x86_64
> 
> 
> strace скачки фильма 1.4G
> 
> epoll_wait(11, {{EPOLLIN, {u32=616484880, u64=48104250200080}}}, 512, 
> 4294967295) = 1
> accept(8, {sa_family=AF_INET, sin_port=htons(46864), 
> sin_addr=inet_addr("192.168.78.1")}, [5034732501717745680]) = 9
> ioctl(9, FIONBIO, [1])                  = 0
> epoll_ctl(11, EPOLL_CTL_ADD, 9, {EPOLLIN|EPOLLET, {u32=616485184, 
> u64=48104250200384}}) = 0
> epoll_wait(11, {{EPOLLIN, {u32=616485184, u64=48104250200384}}}, 512, 
> 600000) = 1
> recvfrom(9, "GET /1.tmp HTTP/1.0\r\nUser-Agent:"..., 1024, 0, NULL, 
> NULL) = 144
> open("/var/www/cacti/htdocs/1.tmp", O_RDONLY) = 12
> fstat(12, {st_mode=S_IFREG|0744, st_size=1482813440, ...}) = 0
> setsockopt(9, SOL_TCP, TCP_CORK, [1], 4) = 0
> writev(9, [{"HTTP/1.1 200 OK\r\nServer: nginx/0"..., 262}], 1) = 262
> sendfile(9, 12, [0], 1482813440)        = 20582

sendfile()у сказано передать 1482813440 байт, а передано только 20582,
потому что больше в ядерный буфер не поместилось.

> epoll_ctl(11, EPOLL_CTL_MOD, 9, {EPOLLIN|EPOLLOUT|EPOLLET, 
> {u32=616485184, u64=48104250200384}}) = 0
> epoll_wait(11, {{EPOLLOUT, {u32=616485184, u64=48104250200384}}}, 512, 
> 600000) = 1
> sendfile(9, 12, [20582], 1482792858)    = 76428
> epoll_wait(11, {{EPOLLOUT, {u32=616485184, u64=48104250200384}}}, 512, 
> 599944) = 1
> sendfile(9, 12, [97010], 1482716430)    = 111168
> epoll_wait(11, {{EPOLLOUT, {u32=616485184, u64=48104250200384}}}, 512, 
> 599943) = 1
> sendfile(9, 12, [208178], 1482605262)   = 4002048
> epoll_wait(11, {{EPOLLOUT, {u32=616485184, u64=48104250200384}}}, 512, 
> 599940) = 1
> sendfile(9, 12, [4210226], 1478603214)  = 903636036
> epoll_wait(11, {{EPOLLOUT, {u32=616485184, u64=48104250200384}}}, 512, 
> 599853) = 1
> sendfile(9, 12, [907846262], 574967178) = 574967178
> write(6, "192.168.78.1 - voron [23/Feb/200"..., 114) = 114
> close(12)                               = 0
> setsockopt(9, SOL_TCP, TCP_CORK, [0], 4) = 0
> recvfrom(9, 0x583950, 1024, 0, 0, 0)    = -1 EAGAIN (Resource 
> temporarily unavailable)
> epoll_wait(11, {{EPOLLIN|EPOLLOUT, {u32=616485184, 
> u64=48104250200384}}}, 512, 75000) = 1
> recvfrom(9, "", 1024, 0, NULL, NULL)    = 0
> close(9)                                = 0
> epoll_wait(11,


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





More information about the nginx-ru mailing list