静态文件waiting时间长问题处理

2015年9月4日

最近在处理一个数据文件的时候发现请求的时间特别长,看了下网络请求情况,一个大约1M的文件加载竟然要耗时7秒多,查看了具体请求发现是waiting的时间占了大多数。

网络请求

去服务器查看了下webserver的日志,发现确实这个请求的处理时间花了6022ms。

webserver日志

想了下,静态文件应该不用什么处理,速度很快的,怎么会有这么长的处理时间。又想起我们的静态文件在webserver中有做gzip压缩处理,极有可能是这引起的。
把gzip压缩处理关掉后,waiting的时间确实没有了,大部分耗时都在下载时间上了。

网络请求

此时再去查看webserver的日志,确实没什么处理时间,只花了310ms

webserver日志

看了下webservice的配置,发现之前gzip压缩等级是最高的9

配置

压缩级别设置的越高,压缩率也就越大,同时对应所消耗的cpu资源也就越大,耗时也长些。
所有可以通过降低gzip压缩等级来提高性能,当压缩级别改为3后,waiting时间就能少很多,同时压缩后的体积也没比之前压缩级别为9的时候大多少,大约这里就大了不到10%这样。
下图是优化过后的请求时间和webserver处理时间。

网络请求

webserver日志

这样优化完后性能可以提高5.5倍。