Проблема с незакрытыми дескрипторами

Exe xmail at messir.net
Mon Jun 25 08:29:32 MSD 2007


>> Утром на сервере вылезла проблема - как мне кажется закончились
>> файловые дескрипторы, /bin/login даже не работает, strace выводит
>>
>> getrlimit(RLIMIT_NOFILE, {rlim_cur=600000, rlim_max=600000}) = 0
>>
>> т.е. лимит исчерпан и далее
Почему?
        On success, zero is returned.  On error, -1 is returned, and   
errno  is
        set appropriately.

rlim_cur это и есть текущий лимит.

login может не работать, например, из-за pam или нехватки памяти, своп на  
сервере есть?
В dmesg страшных сообщений нету?


> lsof показывает не больше 7000.
Значит дело не в дескрипторах.

>> close(599999)                           = -1 EBADF (Bad file descriptor)
>> ...
>> close(599988)                           = -1 EBADF (Bad file descriptor)
>>
>> т.е. даже не восстановить уже мертвые (ни один рабочий процесс таким
>> кол-вом не пользуется),
Судя по ману, getrlimit(RLIMIT_NOFILE) так и должен работать:
        RLIMIT_NOFILE
               Specifies a value one greater than the maximum  file   
descriptor
               number  that  can  be opened by this process.  Attempts  
(open(),
               pipe(), dup(), etc.)  to  exceed  this  limit  yield  the   
error
               EMFILE.


А чей это был стрейс? Самопальной проги?

-- 
// Черный Плащ





More information about the nginx-ru mailing list