Во-первых, я знаю, что это сомнительная установка, но производительность fastcgi или fcgid заставила меня попробовать. Проблема в том, что мое нагрузочное тестирование никогда не завершается из-за того, что соединения не закрываются. Когда я нажимаю только на 40 одновременных подключений, все идет наперекосяк — соединения находятся в установленном состоянии в течение нескольких минут:
netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
1 CLOSE_WAIT
72 ESTABLISHED
8 LISTEN
Затем через несколько минут они разделились на смесь CLOSE_WAIT и ESTABLISHED:
netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
41 CLOSE_WAIT
32 ESTABLISHED
8 LISTEN
И спустя еще 10 минут это не изменилось. Это комбинация клиента для веб-сервера и веб-сервера для сервера mysql. Если я тестирую php-страницу, которая не устанавливает соединение с mysql, все работает нормально.
Я самостоятельно скомпилировал PHP (настройте ниже) и установил apache-mpm-worker через apt-get (Ubuntu 10.04). Я пытался скомпилировать PHP как с msyql_config, так и с mysqlnd для модулей mysql, mysqli и pdo. Может ли это быть просто непоточно-безопасной библиотекой, поднимающей свою уродливую голову?
./configure --prefix=/usr/local --with-apxs2=/usr/bin/apxs2 --disable-cgi --with-layout=GNU --with-config-file-path=/etc/php5/apache2 --with-config-file-scan-dir=/etc/php5/apache2/conf.d --disable-ipv6 --without-kerberos --with-pcre-regex=/usr --with-zlib --with-zlib-dir=/usr --enable-bcmath --with-bz2 --enable-calendar --enable-ctype --with-curl=shared,/usr --without-qdbm --without-gdbm --with-db4 --with-libxml-dir=/usr --enable-exif --disable-ftp --with-gd=shared,/usr --enable-gd-native-ttf --with-gmp=shared,/usr --with-jpeg-dir=shared,/usr --with-xpm-dir=shared,/usr/X11R6 --with-png-dir=shared,/usr --with-freetype-dir=shared,/usr --with-gettext --with-mhash=shared,/usr --with-ldap=shared,/usr --with-ldap-sasl=/usr --with-mcrypt=shared,/usr --enable-mbstring --without-msql --without-mssql --with-pspell=shared,/usr --without-mm --disable-shmop --enable-soap --enable-sockets --with-regex=php --disable-sysvshm --disable-wddx --with-xmlrpc=shared --with-iconv --with-xsl=shared,/usr --enable-zip --with-pear=/usr/share/php --with-tsrm-pthreads --enable-maintainer-zts --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=myslqnd --with-libdir=lib64