I have site that allows users to download media file (mp3 mp4). The files range from 10mb to 90mb in size. There are anywhere from 150-300 users signed in and downloading files at one time. Right now the site is moving SO slow. The site is built on PHP, but we're using XSendFile to move the download processing out of php and into apache. The analytics from NewRelic show that the application itself is moving really fast, so the slow down must be coming from the apache side of things.
Here's a look at some of our apache2 config
Timeout 300 KeepAlive Off <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 75 MaxRequestsPerChild 0 </IfModule> <IfModule mpm_worker_module> ServerLimit 50 StartServers 10 MinSpareThreads 75 MaxSpareThreads 250 ThreadLimit 64 ThreadsPerChild 32 MaxClients 1600 MaxRequestsPerChild 8000 </IfModule> <IfModule mpm_event_module> StartServers 10 MinSpareThreads 75 MaxSpareThreads 250 ThreadLimit 64 ThreadsPerChild 32 MaxClients 800 MaxRequestsPerChild 10000 </IfModule>
I need to know the optimal apache setting to handle these downloads. Right now the site is almost unusable.