两个警告:这种表演令人上瘾。你挤压的每一点,你都想要更多。英语是我的第二语言,所以请原谅我的任何错误。
无论如何,我正在比较不同场景下 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)
SIEGE -c 40 -b -t120s ' http://www.joaodedeus.com.br/quero-visitar/abadiania-go的url
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 缓存到磁盘的相同 url (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 缓存没有太大的好处。
场景三——同一个页面,通过nginx保存为.html和server
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
最好的祝福。