两个警告:这种性能问题会让人上瘾。你每挤压一点,你就会想要更多。 英语是我的第二语言,所以请原谅我的任何错误。
无论如何,我正在比较不同场景下 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 > localhost 完成。
场景一 - 通过 fastcgi_cache 缓存到 TMPFS (MEMORY) 的 URL
围攻 -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
场景二 - 相同的 URL 通过 fastcgi_cache 缓存到磁盘(ec2 实例存储 - 短暂)
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
这是第一个问题出现的地方。我没有看到内存到磁盘有很大的差异。这正常吗?我的意思是,使用内存缓存并没有太大的好处。
场景三 - 同一页面,由 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
这是主要问题。这是一个巨大的差异。我的意思是,据我所知,从缓存提供服务应该与提供静态 .html 文件一样快,对吧?我的意思是 - nginx 看到有一个位置缓存规则,并看到有一个缓存版本,为其提供服务。为什么差别这么大?
缓存工作正常
35449 -
10835 HIT
1156 MISS
1074 BYPASS
100 EXPIRED
致以诚挚的问候。
最佳答案
以下是 nginx 邮件列表中调查的简短摘要(请参阅 the thread here ):
首先,报告的数字非常低。它们应该更大,并且回答原始问题(“为什么不同”)并没有真正意义。正确的问题是“为什么这么慢”。即使是 ec2 小实例也应该做得更好。
在调查过程中,发现主机受 CPU 限制,其中 gzip 过滤器和 pagespeed 模块最需要 CPU。
基本建议是:
- 使用gzip_static对于静态文件。它允许提供预压缩版本并在运行时节省 CPU。
- 避免使用高 gzip 压缩级别 ( gzip_comp_level )。高压缩级别需要比默认值 (1) 更多的 CPU,而大小差异很小。
- 尝试关闭 pagespeed 看看是否有帮助。
与 gzip off; pagespeed off;
据报道,速度提升了 30 倍。
关于wordpress - Nginx Fastcgi_cache性能——磁盘缓存VS tmpfs缓存VS静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19160737/