You first need to determine what is the root-cause of things running slowly. I suggest to strace the apache process like this: First, determine the process id of the parent apache process by running: $ ps axu | grep apache | grep root The first number in the output (2nd field) should list the process-id. Output example: root 9446 0.0 0.0 255620 15124 ? Ss Aug02 0:06 /usr/sbin/apache2 -k start Now strace the process and its children processes like this: $ sudo strace -f -p 9446 -T (make sure to replace the process id 9446 by your actual process id as revealed by the 1st command.) The output will list all system calls followed by the time it took them to complete. It should make it very clear where are you spending your time or getting stuck. Please note that system calls that are blocking by nature, like select or accept would normally block until an external event occurs, so they are expected to not return ...