我有一个Apache服务器作为后端JBoss服务器的代理,我使用mod_proxy_loadbalancer。 我也有一些静态文件和资源,我把它放在一个“上传”目录中,这个目录在apache httpd.conf中被configuration为一个目录,我也启用了mod_mem_cache,因为我的服务器内存已经足够了,服务器是HP DL360 4核/ 8G RAM / RAID卡和15K SAS磁盘。
我的问题是很多客户报告他们打开静态文件的速度非常慢。 当我跟踪使用FireBug,我可以看到有时打开一个静态文件(HTML / SWF <50kb)需要大约5-7s。 服务器端带宽和我办公室的带宽都足够了。 而当我监视服务器端,Apache的平均负载约20个请求/秒。
我已经打开了Apache的mod_status,我可以发现许多请求都处于“R”状态,这意味着读取请求。
阅读状态是什么意思? 这是否影响服务器响应时间的速度? 我们如何才能减lessApacheconfiguration中的“R”状态请求。
谢谢
几件事你可以检查:
ab )这样的基准testing程序来testing静态文件的速度。 如果你在服务器上运行它,你应该得到一个非常高的请求率(例如:10-20k / sec),除非有什么错误。 您还可以远程运行,以查看networking距离和速度造成的速度差异。 top和iostat以检查是否有明显的CPU,内存或IO过度使用的迹象。 确保Apache的MaxClients没有设置太高或太低(两者都因为不同的原因而不好)。 netstat则可能是一个可能的原因。