两个警告:这个表演的东西让人上瘾。你挤压的每一点,你想要更多。 英语是我的第二语言,所以请原谅我的任何错误。
无论如何我在不同的场景中比较wordpress网站的nginx性能,而且看起来很奇怪。所以我在这里与大家分享,也许可以调整我的期望。
Software
# NGINX 1.4.2-1~dotdeb.1
# PHP5-CGI 5.4.20-1~dotdeb.1
# PHP-FPM 5.4.20-1~dotdeb.1
# MYSQL Server 5.5.31+dfsg-0+wheezy1
# MYSQL Tuner 1.2.0-1
# APC opcode 3.1.13-1
这是一个ec2小实例。 使用SIEGE 40并发请求完成所有测试2分钟。 所有测试都是从localhost>完成的。本地主机。
场景一 - 通过fastcgi_cache缓存到TMPFS(MEMORY)的网址
SIEGE -c 40 -b -t120s'http://www.joaodedeus.com.br/quero-visitar/abadiania-go'
Transactions: 1403 hits
Availability: 100.00 %
Elapsed time: 119.46 secs
Data transferred: 14.80 MB
Response time: 3.36 secs
Transaction rate: 11.74 trans/sec
Throughput: 0.12 MB/sec
Concurrency: 39.42
Successful transactions: 1403
Failed transactions: 0
Longest transaction: 4.43
Shortest transaction: 1.38
场景二 - 通过fastcgi_cache缓存到磁盘的相同网址(ec2 oninstance storage - ephemeral)
Transactions: 1407 hits
Availability: 100.00 %
Elapsed time: 119.13 secs
Data transferred: 14.84 MB
Response time: 3.33 secs
Transaction rate: 11.81 trans/sec
Throughput: 0.12 MB/sec
Concurrency: 39.34
Successful transactions: 1407
Failed transactions: 0
Longest transaction: 4.40
Shortest transaction: 0.88
这是第一个问题出现的地方。我没有看到ram到磁盘的巨大差异。这是正常的吗?我的意思是,使用ram缓存没什么好处。
场景三 - 同一页面,由nginx保存为.html和服务器
Transactions: 1799 hits
Availability: 100.00 %
Elapsed time: 120.00 secs
Data transferred: 25.33 MB
Response time: 2.65 secs
Transaction rate: 14.99 trans/sec
Throughput: 0.21 MB/sec
Concurrency: 39.66
Successful transactions: 1799
Failed transactions: 0
Longest transaction: 5.21
Shortest transaction: 1.30
这是主要问题。这是一个巨大的差异。我的意思是,从缓存服务的AFAIK应该和服务静态.html文件一样快,对吧?我的意思是 - nginx看到有一个位置缓存规则,并看到有一个缓存版本,提供它。为什么这么大的差异?
缓存工作正常
35449 -
10835 HIT
1156 MISS
1074 BYPASS
100 EXPIRED
最好的问候。
答案 0 :(得分:7)
以下是nginx邮件列表中调查的简短摘要(请参阅the thread here):
首先,报道的数字非常低。它们应该更大,并回答原始问题(“为什么差异”)并不真正有意义。正确的问题是“为什么这么慢”。即使是ec2小实例也应该做得更好。
在调查过程中发现主机受CPU限制,gzip过滤器和pagespeed模块最耗费CPU。
基本建议是:
报告了gzip off; pagespeed off;
30倍加速。