Edit report at http://bugs.php.net/bug.php?id=46723&edit=1
ID: 46723 Updated by: fel...@php.net Reported by: jost_boekemeier at users dot sf dot net Summary: FastCGI is incredibly slow due to TCP ack delay -Status: Open +Status: Assigned Type: Bug Package: CGI related Operating System: * PHP Version: 5CVS, 6CVS (2008-12-08) -Assigned To: +Assigned To: dmitry Block user comment: N Previous Comments: ------------------------------------------------------------------------ [2010-03-20 18:41:35] jost_boekemeier at users dot sf dot net Please excuse the delay. I didn't noticed that you were asking for a patch. After applying the patch fastcgi renders 900 pages in 1m8.095s, compared to 1m40.428s before. [notice for me] $ time for i in `seq 900`; do wget -O/dev/null -o/dev/null http://localhost:8080/JavaBridge/sessionSharing.php; done real 1m40.428s user 0m1.587s sys 0m3.108s $ time for i in `seq 900`; do wget -O/dev/null -o/dev/null http://localhost:8080/JavaBridgeO/sessionSharing.php; done real 1m8.095s user 0m1.212s sys 0m2.485s ------------------------------------------------------------------------ [2009-01-29 01:00:16] php-bugs at lists dot php dot net No feedback was provided for this bug for over a week, so it is being suspended automatically. If you are able to provide the information that was originally requested, please do so and change the status of the bug back to "Open". ------------------------------------------------------------------------ [2009-01-21 19:27:40] j...@php.net Patches are always welcome, you don't need to wait for a request..:) ------------------------------------------------------------------------ [2008-11-30 17:42:32] jost_boekemeier at users dot sf dot net Description: ------------ The PHP side of a socket-based FastCGI communication is unbuffered since PHP 5.1.4 (maybe earlier). write/write/read cycles have a huge performance impact, on the latest Linux kernel the FastCGI SAPI is actually slower than executing a CGI for each request! The actual problem is caused by the two unbuffered write() operations, which run into a delayed ack and therefore cause a latency of 40000us on FC10 and 500ms(!) on FreeBSD. As an immediate fix I suggest to switch on NDELAY for the PHP FastCGI socket communication. I can provide a patch if you want me to. Regards, Jost Bökemeier Reproduce code: --------------- - Expected result: ---------------- - Actual result: -------------- - ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/bug.php?id=46723&edit=1