I'm running a VPS server under Windows 2008 R2 x64 as a web server.

I Was running Apache 2.2 x86 / Php 5.3.1 handle with the standard php5_module And I made an upgrade to Apache 2.4.4 x64 / Php 5.3.24 with FastCgGI x64 as handler last night.

Everything was fine by than and this morning I'm experiencing quite long delay when I (or other users) try to access some site that i'm hosting. When i'am able to access one of them, I click on every menu and sometimes the page is fast, and sometimes is quite slow again.

For the moment, I made a rollback to Apache win32.

I made same research before posting but not that much clue up to now. It look likes not enough process to accept everyone at the same time as I had more users connected to my server this morning than by night.

Anyone have a clue to guide me? Thanks

  • I found a clue that might solve my problem. httpd.apache.org/mod_fcgid/mod/mod_fcgid.html On this page i found the notice "FcgidMaxRequestsPerProcess can be set to a value less than or equal to PHP_FCGI_MAX_REQUESTS to resolve the problem" I set FcgidMaxRequestsPerProcess to 5000 into httpd.conf but i just don't understand where to set PHP_FCGI_MAX_REQUESTS also to 5000. All exemple that i found seems to show CGI under linux but where do I change this value (PHP_FCGI_MAX_REQUESTS) under Windows? – Jaune Citron May 3 '13 at 4:22

I tought and point all the fault on FastCGI Handler and the bad guy in the story is Apache 2.4.4 x86 nor x64 with is default setting under windows.

The solution is to add the following to your httpd.conf:

AcceptFilter http none
AcceptFilter https none

Are there's the explanation from Apache

The default values on Windows are:

AcceptFilter http data
AcceptFilter https data

Window's mpm_winnt interprets the AcceptFilter to toggle the AcceptEx() API, and does not support http protocol buffering. There are two values which utilize the Windows AcceptEx() API and will recycle network sockets between connections. data waits until data has been transmitted as documented above, and the initial data buffer and network endpoint addresses are all retrieved from the single AcceptEx() invocation. connect will use the AcceptEx() API, also retrieve the network endpoint addresses, but like none the connect option does not wait for the initial data transmission.

On Windows, none uses accept() rather than AcceptEx() and will not recycle sockets between connections. This is useful for network adapters with broken driver support, as well as some virtual network providers such as vpn drivers, or spam, virus or spyware filters.

I'll like to thanks a SuperUser with is post on the subject

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.