Ошибки при использовании fastcgi

Andrew Velikoredchanin andrew at rodtext.ru
Wed Jan 26 17:08:48 MSK 2005


Igor Sysoev пишет:
> On Tue, 25 Jan 2005, Andrew Velikoredchanin wrote:
> 
>> Заметил еще такую вещь.
>> Если в параметре -c ставлю конкуретных запросов 6 или меньше - ошибок 
>> обычно нет. Если ставлю 7 или больше - ошибки идут стабильно.
>>
>> Кроме того, отлеживая количество открытых соединений на этот токет 
>> заметил такую вещь. При -c 6 или меньше коннектов открыто стабильно 8 
>> штук. Вот данные из proc:
>>
>> Num       RefCount Protocol Flags    Type St Inode Path
>> cc52a800: 00000002 00000000 00010000 0001 01 1850203 /tmp/test1.sock
>> c46ed200: 00000004 00000000 00000000 0001 02     0 /tmp/test1.sock
>> c46ed080: 00000004 00000000 00000000 0001 02     0 /tmp/test1.sock
>> c4a43500: 00000004 00000000 00000000 0001 02     0 /tmp/test1.sock
>> c4a43200: 00000004 00000000 00000000 0001 02     0 /tmp/test1.sock
>> cc52a980: 00000004 00000000 00000000 0001 02     0 /tmp/test1.sock
>> c46edc80: 00000004 00000000 00000000 0001 02     0 /tmp/test1.sock
>> c46ed980: 00000002 00000000 00000000 0001 03 2366266 /tmp/test1.sock
>>
>> Если я ставлю -c более 6, то обычно при отслеживании к-ва открытых 
>> сокетов видно либо один listen либо два типа вот таких:
>>
>> Num       RefCount Protocol Flags    Type St Inode Path
>> cc52a800: 00000002 00000000 00010000 0001 01 1850203 /tmp/test1.sock
>> c27a3b00: 00000003 00000000 00000000 0001 03 2403087 /tmp/test1.sock
>>
>> Закономерность довольно странная. Может это все-таки что-то не так при 
>> подключении?
> 
> 
> Если запускать fastcgi через cgi-fcgi из FastCGI Developer's Kit (как
> делалось в этом случае), то он выставляет listen backlog всего в пять
> соединений и этот никак не настраивается, см. cgi-fcgi/cgi-fcgi.c:
> 
> -----------
> static void FCGI_Start(char *bindPath, char *appPath, int nServers)
> {
>     int listenFd, i;
> 
>     /* @@@ Should be able to pick up the backlog as an arg */
>     if((listenFd = OS_CreateLocalIpcFd(bindPath, 5)) == -1) {
>         exit(OS_Errno);
>     }
> 
> -----------

Аааа! Вон оно в чем дело!

> Нужно подпачить хотя бы до текущего значения по умочанию в Линуксе: 128.
> А ещё лучше поставить -1. Тогда хотя бы можно будет без пересборки
> увеличить backlog системными настройками.

Поставил -1 - сразу стало намного лучше. Ошибки с кодом не 2хх 
практически исчезли.





More information about the nginx-ru mailing list