现象:Nginx与应用都在同一台服务器(4g内存、4核cpu)上,nginx缓存区内存配置1g,开启nginx的accesslog,跑图片终端页性能脚本,观察到accesslog里面有90%以上的MISS状态的,nginx缓存没有起到作用,加大nginx缓存内存为2g,清了缓存再次跑性能脚本,accesslog中的MISS状态仍占大部分,且应用服务器的内存空间基本被用完。
解决:将nginx与应用分开,nginx放在一台服务器上,应用包搬到另一服务器(6g内存、8核cpu)上,跑图片终端页脚本,nginx缓存区内存配置2g,观察到响应提上去了,accesslog里HIT状态的占90%或更多。说明nginx缓存区有起到作用。
主要原因:nginx的缓存区设置1G时不够用,没起到作用。当调整到2G时,由于服务器上还存放应用也占了内存,另外系统也需要资源,导致nginx所配置的2G内存没起作用。当把nginx和应用分开时,资源都充足了,这时nginx的缓存区也能起到作用。
最新内容请见作者的GitHub页:http://qaseven.github.io/