虚拟机的网络性能大部分不好,使用nginx的时候经常会因为带宽的限制跑不到更高的QPS。这个时候可以开启gzip压缩,使得带宽占有成倍的减少。但是开启gzip压缩后有个很大的问题是CPU的消耗非常大。对于普通的精态页面可以考虑配置2个server,其中一个代理另外一个,并且开启cache。简单使用ab压测对比了一下,效果还可以。ab只支持HTTP 1.0,所以在nginx里需要配置一下gzip_http_version 1.0并且ab压测的时候使用添加HEADER ‘Accept-Encoding: gzip’。ab -c 50 -t 60 -H ‘Accept-Encoding: gzip’ http://xxx.net/index.html 配置大修改大致如下:``` http { proxy_cache_path /home/admin/temp levels=1:2 keys_zone=one:10m inactive=5m max_size=100m; gzip_http_version 1.0; #这个只是为了方便ab测试,线上的话可以关闭这个,防止有古董浏览器不支持gzip。gzip on; ……….

server {listen       8888;server_name  localhost;charset gbk;gzip on;gzip_comp_level 9;gzip_http_version 1.0;location / {root /home/admin/webpages/;index index.html;}}upstream indexpage {server 127.0.0.1:8888;keepalive 10;}

} }

Document Length:11155 bytesTotal transferred:      567657498 bytesHTML transferred:       557757300 bytesRequests per second:5123.96[#/sec] (mean)Time per request:       9.758 [ms] (mean)Time per request:       0.195 [ms] (mean, across all concurrent requests)Transfer rate:          56809.65 [Kbytes/sec] received

普通的不开启gzip的情况 Document Length:52873bytes

Concurrency Level:      50Time taken for tests:   23.403494 secondsComplete requests:      50000Failed requests:        0Write errors:           0Total transferred:      2654793231 bytesHTML transferred:       2643841260 bytesRequests per second:2136.43[#/sec] (mean)Time per request:       23.403 [ms] (mean)Time per request:       0.468 [ms] (mean, across all concurrent requests)Transfer rate:110777.09[Kbytes/sec] received

普通开启gzip后性能会大幅降低,而且还只是默认的level 1压缩。

Document Path:          /index.htmlDocument Length:13000bytes

测试环境:单核的虚拟机上跑的,2G内存。。