COURSE of the MONTH

ESX 5.1: Apache is slow after P2V

Hi All,

I virtualised one of our Windows 2003 server last week and the OS and applications are really sluggish. e.g the start button isnt instant, there a fraction of a second delay.

This would normally be ok, however it's running Apache Tomcat. The first apache.exe respons really quickly, but the second is really slow (2 seconds) at least double if not tripple it was before the P2V

Are you tired of cycling through the same browser tabs everyday to close the same repetitive tickets? In this webinar JumpCloud will show how you can leverage RESTful APIs to build your own PowerShell modules to kill tickets & tabs using the PowerShell command Invoke-RestMethod.

I dont know too much about Apache.exe, but there's two of them. It looks like the first redirects to the second. Thge first loads instantly, however the second seem to hang for 3 seconds, then loads instantly.

The website that's running on Apache connects to MySQL (also on the same VM.

After much research, I may have found the solution. If I'm correct, it was an apache config problem. Specifically, the "ThreadsPerChild" directive. See... http://httpd.apache.org/docs/2.2/platform/windows.htmlBecause Apache for Windows is multithreaded, it does not use a separate process for each request, as Apache can on Unix. Instead there are usually only two Apache processes running: a parent process, and a child which handles the requests. Within the child process each request is handled by a separate thread.ThreadsPerChild: This directive is new. It tells the server how many threads it should use. This is the maximum number of connections the server can handle at once, so be sure to set this number high enough for your site if you get a lot of hits. The recommended default is ThreadsPerChild 150, but this must be adjusted to reflect the greatest anticipated number of simultaneous connections to accept.Turns out, this directive was not set at all in my config and thus defaulted to 64. I confirmed this by viewing the number of threads for the second httpd.exe process in task manager. When the server was hitting more than 64 connections, the excess requests were simply having to wait for a thread to open up. I added ThreadsPerChild 150 in my httpd.conf.Additionally, I enabled the apache status module http://httpd.apache.org/docs/2.2/mod/mod_status.html...which, among other things, allows one[b] to see the total number of active request[/b] on the server at any given moment. Right away, I could see spikes of up to 80 active request. Time will tell, but I'm confident that this will resolve my issue. So far, 30 hours without a hiccup.