Re: Master процесс nginx 0.6.38 съедает всю доступную память

Одинцов Павел pavel.odintsov at googlemail.com
Mon Sep 14 14:01:53 MSD 2009


На всякий случай, если большой файл не пройдет аттачем в рассылку,
дублирую ссылкой: http://slil.ru/27980858

2009/9/14 Одинцов Павел <pavel.odintsov at googlemail.com>:
> Добрый день!
>
> Это прямо перед моментом зависания. В аттаче привожу полный стрейс с
> момента запуска nginx до момента выедания всей памяти и последующего
> килла. Сказать, в какой именно момент начинает выедаться память не
> могу.
>
> 2009/9/14 Igor Sysoev <is at rambler-co.ru>:
>> On Mon, Sep 14, 2009 at 01:32:48PM +0500, Одинцов Павел wrote:
>>
>>> Добрый день!
>>>
>>> Вот strace.
>>>
>>> close(783)                              = 0
>>> close(784)                              = 0
>>> close(785)                              = 0
>>> close(786)                              = 0
>>> close(787)                              = 0
>>> close(788)                              = 0
>>> close(789)                              = 0
>>> close(790)                              = 0
>>> close(791)                              = 0
>>> close(792)                              = 0
>>> close(793)                              = 0
>>> close(794)                              = 0
>>> close(795)                              = 0
>>> close(796)                              = 0
>>> close(797)                              = 0
>>> close(798)                              = 0
>>> close(800)                              = 0
>>> close(801)                              = 0
>>> close(802)                              = 0
>>> close(1600)                             = 0
>>> close(1601)                             = 0
>>> close(1602)                             = 0
>>> close(1603)                             = 0
>>> close(1604)                             = 0
>>> close(1605)                             = 0
>>> socketpair(PF_FILE, SOCK_STREAM, 0, [9, 10]) = 0
>>> ioctl(9, FIONBIO, [1])                  = 0
>>> ioctl(10, FIONBIO, [1])                 = 0
>>> ioctl(9, FIOASYNC, [1])                 = 0
>>> fcntl(9, F_SETOWN, 16321)               = 0
>>> fcntl(9, F_SETFD, FD_CLOEXEC)           = 0
>>> fcntl(10, F_SETFD, FD_CLOEXEC)          = 0
>>> clone(child_stack=0,
>>> flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD,
>>> child_tidptr=0x2b2a7b0d5360) = 22337
>>> sendmsg(7, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\1\0\0\0\0\0\0\0AW\0\0\0\0\0\0\2\0\0\0\0\0\0\0\t\0\0\0\0\0\36!",
>>> 32}], msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET,
>>> cmsg_type=SCM_RIGHTS, {9}}, msg_flags=0}, 0) = 32
>>> sendmsg(3, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\1\0\0\0\0\0\0\0AW\0\0\0\0\0\0\2\0\0\0\0\0\0\0\t\0\0\0\0\0\36!",
>>> 32}], msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET,
>>> cmsg_type=SCM_RIGHTS, {9}}, msg_flags=0}, 0) = 32
>>> sendmsg(805, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\1\0\0\0\0\0\0\0AW\0\0\0\0\0\0\2\0\0\0\0\0\0\0\t\0\0\0\0\0\36!",
>>> 32}], msg_controllen=24, {cmsg_len=20, cmsg_level=SOL_SOCKET,
>>> cmsg_type=SCM_RIGHTS, {9}}, msg_flags=0}, 0) = 32
>>> sendmsg(3, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\3\0\0\0\0\0\0\0AW\0\0\0\0\0\0\2\0\0\0\0\0\0\0\377\377\377\377\0\0\36!",
>>> 32}], msg_controllen=0, msg_flags=0}, 0) = 32
>>> rt_sigsuspend([])                       = ? ERESTARTNOHAND (To be restarted)
>>> --- SIGCHLD (Child exited) @ 0 (0) ---
>>> gettimeofday({1252914806, 264791}, NULL) = 0
>>> wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 9115
>>> wait4(-1, 0x7fff33ef85c4, WNOHANG, NULL) = 0
>>> rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
>>> gettimeofday({1252914806, 265065}, NULL) = 0
>>> close(805)                              = 0
>>> close(806)                              = 0
>>> sendmsg(7, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\2\0\0\0\0\0\0\0\233#\0\0\0\0\0\0\3\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0",
>>> 32}], msg_controllen=0, msg_flags=0}, 0) = 32
>>> sendmsg(3, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\2\0\0\0\0\0\0\0\233#\0\0\0\0\0\0\3\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0",
>>> 32}], msg_controllen=0, msg_flags=0}, 0) = 32
>>> sendmsg(9, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\2\0\0\0\0\0\0\0\233#\0\0\0\0\0\0\3\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0",
>>> 32}], msg_controllen=0, msg_flags=0}, 0) = 32
>>> rt_sigsuspend([])                       = ? ERESTARTNOHAND (To be restarted)
>>> --- SIGIO (I/O possible) @ 0 (0) ---
>>> gettimeofday({1252914806, 266093}, NULL) = 0
>>> rt_sigreturn(0x7fff33ef8560)            = -1 EINTR (Interrupted system call)
>>> gettimeofday({1252914806, 266197}, NULL) = 0
>>> rt_sigsuspend([])                       = ? ERESTARTNOHAND (To be restarted)
>>> --- SIGCHLD (Child exited) @ 0 (0) ---
>>> gettimeofday({1252914808, 891963}, NULL) = 0
>>> wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 22306
>>> wait4(-1, 0x7fff33ef85c4, WNOHANG, NULL) = 0
>>> rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
>>> gettimeofday({1252914808, 892239}, NULL) = 0
>>> close(3)                                = 0
>>> close(4)                                = 0
>>> sendmsg(7, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\2\0\0\0\0\0\0\0\"W\0\0\0\0\0\0\1\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0",
>>> 32}], msg_controllen=0, msg_flags=0}, 0) = 32
>>> sendmsg(9, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\2\0\0\0\0\0\0\0\"W\0\0\0\0\0\0\1\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0",
>>> 32}], msg_controllen=0, msg_flags=0}, 0) = 32
>>> rt_sigsuspend([])                       = ? ERESTARTNOHAND (To be restarted)
>>> --- SIGIO (I/O possible) @ 0 (0) ---
>>> gettimeofday({1252914808, 892960}, NULL) = 0
>>> rt_sigreturn(0x7fff33ef8560)            = -1 EINTR (Interrupted system call)
>>> gettimeofday({1252914808, 893066}, NULL) = 0
>>> rt_sigsuspend([])                       = ? ERESTARTNOHAND (To be restarted)
>>> --- SIGCHLD (Child exited) @ 0 (0) ---
>>> gettimeofday({1252914825, 575495}, NULL) = 0
>>> wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], WNOHANG, NULL) = 22288
>>> wait4(-1, 0x7fff33ef85c4, WNOHANG, NULL) = 0
>>> rt_sigreturn(0xffffffffffffffff)        = -1 EINTR (Interrupted system call)
>>> gettimeofday({1252914825, 575770}, NULL) = 0
>>> close(7)                                = 0
>>> close(8)                                = 0
>>> sendmsg(9, {msg_name(0)=NULL,
>>> msg_iov(1)=[{"\2\0\0\0\0\0\0\0\20W\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\0\0\0\0",
>>> 32}], msg_controllen=0, msg_flags=0}, 0) = 32
>>> rt_sigsuspend([])                       = ? ERESTARTNOHAND (To be restarted)
>>> --- SIGIO (I/O possible) @ 0 (0) ---
>>> gettimeofday({1252914825, 576096}, NULL) = 0
>>> rt_sigreturn(0x7fff33ef8560)            = -1 EINTR (Interrupted system call)
>>> gettimeofday({1252914825, 576201}, NULL) = 0
>>> rt_sigsuspend([] <unfinished ...>
>>> +++ killed by SIGKILL +++
>>>
>>> а тут мы его уже сами ложим по killall -9, чтобы оживить систему.
>>
>> Это strace с какого момента ? И где примерно по strace (если это можно
>> было отследить) начала расти память ? Вообще, здесь не видно ни одного
>> сисколла, который бы выделял память.
>>
>>
>> --
>> Игорь Сысоев
>> http://sysoev.ru
>>
>>
>
>
>
> --
> С уважением, Одинцов Павел
>



-- 
С уважением, Одинцов Павел





More information about the nginx-ru mailing list