Ошибки при использовании fastcgi
Igor Sysoev
is at rambler-co.ru
Wed Jan 26 16:30:03 MSK 2005
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 системными настройками.
Игорь Сысоев
http://sysoev.ru
More information about the nginx-ru
mailing list