从nginx日志中统计nginx缓存命中率

作者: 蓝鹰 分类: CentOS 发布时间: 2013-10-17 15:38 ė120 浏览数 6从nginx日志中统计nginx缓存命中率已关闭评论

要统计nginx的缓存,前提肯定是你已经配置了nginx的缓存,然后需要在日志中输出缓存的状态,如下日志格式配置:

可以看到日志中最后一个项是缓存状态。

log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                  '$status $body_bytes_sent "$http_referer" '
                  '"$http_user_agent" "$http_x_forwarded_for"'
                  '"$upstream_cache_status"';

统计方法:用HIT的数量除以日志总量得出缓存命中率:

awk '{if($NF=="\"HIT\"") hit++} END {printf "%.2f%",hit/NR}' access.log

会输入百分比类似: 35.15%

$upstream_cache_status包含以下几种状态:

MISS 未命中,请求被传送到后端
HIT 缓存命中
EXPIRED 缓存已经过期请求被传送到后端
UPDATING 正在更新缓存,将使用旧的应答
STALE 后端将得到过期的应答
BYPASS 缓存被绕过了
你也可以根据这几种状态修改下上面的脚本统计其他状态的百分比。

本文出自 蓝鹰博客,转载时请注明出处及相应链接。

本文永久链接: http://www.lanyingblog.com/blog/1062.html

Ɣ回顶部