`
lionlx
  • 浏览: 285614 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

nginx缓存命中率统计(转)

 
阅读更多
转自:http://www.libertyvps.com/thread-275-1-1.html

nginx提供了$upstream_cache_status这个变量来显示缓存的状态,我们可以在配置中添加一个http头来显示这一状态,达到类似squid的效果。
    location  / {
        proxy_redirect          off;
        proxy_set_header        Host            $host;
        proxy_set_header        X-Real-IP       $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_connect_timeout   180;
        proxy_send_timeout      180;
        proxy_read_timeout      180;
        proxy_buffer_size       128k;
        proxy_buffers           4 128k;
        proxy_busy_buffers_size 128k;
        proxy_temp_file_write_size 128k;
        proxy_cache cache;
        proxy_cache_valid 200 304 1h;
        proxy_cache_valid 404 1m;
        proxy_cache_key $uri$is_args$args;
        add_header  Nginx-Cache "$upstream_cache_status";
        proxy_pass http://backend;
    }

HTTP/1.1 200 OK
Date: Mon, 22 Apr 2013 02:10:02 GMT
Server: nginx
Content-Type: image/jpeg
Content-Length: 23560
Last-Modified: Thu, 18 Apr 2013 11:05:43 GMT
Nginx-Cache: HIT
Accept-Ranges: bytes
Vary: User-Agent

为了能够统计缓存的命中率,我们需要在日志中记录这一状态
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
30.15%

$upstream_cache_status包含以下几种状态:
·MISS 未命中,请求被传送到后端
·HIT 缓存命中
·EXPIRED 缓存已经过期请求被传送到后端
·UPDATING 正在更新缓存,将使用旧的应答
·STALE 后端将得到过期的应答
分享到:
评论

相关推荐

    laungcisin#blog#51-基于-分发层-应用层双层nginx架构提升缓存命中率方案分析1

    如何提升缓存命中率分发层 + 应用层,双层nginx分发层分发层nginx,负责流量分发的逻辑和策略,这个里面它可以根据你自己定义的一些规则,比如根据produ

    nginx静态文件缓存的解决方案1

    【Nginx 静态文件缓存解决方案】 Nginx 是一款高性能的 HTTP 和反向代理服务器,常用于处理静态资源,以减轻后端服务器的压力。...同时,监控缓存命中率和清理策略是保持缓存系统高效运行的关键。

    Nginx 应用技术指南Nginx Tips【第二版】.zip

    - **缓存策略**:理解不同的缓存策略,如基于时间、大小或命中率的缓存更新规则。 7. **日志管理** - **日志格式**:配置Nginx的日志格式,以便更好地分析和监控服务器性能。 - **日志切割**:学习自动切割日志...

    Go-nginx-vts-exporter简单的服务器可以抓住Nginxvts的统计信息

    6. **监控指标**:通过nginx-vts-exporter,可以监控的指标可能包括但不限于:连接数、请求数、响应时间、错误率、HTTP状态码分布、缓存命中率等,这些数据有助于识别性能瓶颈、异常情况和优化服务器配置。...

    nginx核心教程

    3. 统计监控:提供缓存命中率、使用率等实时统计信息。 通过以上讲解,你已经对Nginx的安装、配置、优化及Web缓存有了深入理解,结合NCACHE模块,你将能够构建一个高效、稳定的Web服务环境。实践是检验真理的唯一...

    深入Nginx + PHP 缓存详解

    2. **缓存命中率**:`proxy_cache_min_uses`用于设置缓存条目至少被使用多少次才写入缓存,避免频繁变动的内容占用缓存空间。 3. **缓存刷新**:可以通过URL模式如/purge/来设计清除特定缓存的机制,结合`allow`和`...

    bazel_remote_cache 结合nginx一致性哈希实现分布式高命中缓存服务器 完整配置版本下载后可直接启动使用

    通过使用nginx uri一致性哈希,将请求分发到10台缓存服务器上,总容量提升10倍,经过一致性哈希,命中率提升至999.9% 特别适合bazel服务相关的环境使用。 完整配置版本,下载后可直接启动使用。 1.sh bazel-remote...

    集群的缓存技术

    - **一致性哈希**:相比轮询,一致性哈希算法能够提供更好的缓存命中率。但在某些情况下可能会导致单机热点问题。为了解决这个问题,可以采取以下措施: - 将热点数据直接推送到接入层Nginx缓存。 - 设置阈值,当...

    用Prometheus细化Nginx监控

    - **缓存状态**:如有使用缓存的情况,缓存命中率、缓存大小等。 **自定义监控**: Prometheus的强大之处在于其灵活的数据标签系统。你可以定义特定的标签,如`datacenter`和`project`,以区分不同机房和项目下的...

    04_大型电商网站的异步多级缓存构建+nginx数据本地化动态渲染的架构.zip

    课程中可能涵盖了如何设置Nginx缓存策略,如缓存时间、过期策略,以及如何利用缓存命中率等指标进行性能监控。此外,还可能讲解如何结合Hadoop这样的大数据处理框架,进行大数据分析,为电商网站提供个性化推荐和...

    带完整详细目录:Nginx高性能Web服务器详解+深入理解Nginx:模块开发与架构解析(第2版)陶辉著

    - 缓存控制:包括缓存过期策略、缓存刷新和缓存命中率优化。 4. **SSL/TLS安全** - HTTPS配置:如何在Nginx中启用SSL,配置证书和密钥,实现安全的HTTP通信。 - SSL优化:包括协议选择、加密套件配置、OCSP ...

    开发程序实现nginx代理节点状态检查及WEB展示

    4. **缓存状态**:如果Nginx配置了缓存,需要查看缓存命中率和存储利用率。 5. **错误日志**:分析Nginx错误日志,可以发现潜在问题,如连接超时、重试、拒绝等。 实现这些检查通常需要编写特定的脚本或程序,可以...

    Openresty 缓存策略.zip

    3. **缓存命中率**:优化缓存命中率是提高系统性能的关键。通过合理设置缓存大小、使用缓存预热、缓存淘汰策略(如 LRU, LFU 等)可以提升命中率。 4. **缓存一致性**:在分布式环境下,保证缓存的一致性至关重要。...

    nginx-1.13.0

    1.13.0可能改进了缓存策略,提高了缓存命中率。 9. **错误页面定制**:Nginx允许用户自定义错误页面,提供更友好的用户体验。 10. **配置语法优化**:Nginx的配置文件语法简洁明了,1.13.0可能进行了微调,增加了...

    Nginx重入门到精通

    2. **缓存策略**: `proxy_cache_key`定义缓存键,控制缓存命中率。 3. **缓存更新**: `proxy_cache_bypass`和`proxy_no_cache`决定是否绕过缓存,`proxy_cache_revalidate`检查源服务器更新。 ### 六、Nginx高级...

    Nginx 应用技术指南

    **16.2 利用Nginx urlhash提高squid服务器命中率** 介绍如何使用Nginx的urlhash特性来优化Squid缓存服务器的表现。 **16.3 Nginx实践使用memcached模块加速PHP应用程序** 通过集成memcached缓存模块,提高PHP应用...

    缓存技术浅谈PPT简介

    设计缓存方案时,需要考虑多个因素,如缓存命中率、数据更新策略(如LRU、LFU)、缓存失效策略、缓存一致性以及如何处理缓存穿透和缓存雪崩等问题。此外,缓存大小的设定、缓存的数据结构选择、并发控制等也是重要...

    nginx cookbook-en

    - **原理介绍**:首先介绍了内容缓存的基本原理,包括缓存命中率、缓存过期机制等。 - **配置示例**:随后提供了详细的配置代码示例,帮助读者理解如何配置Nginx进行高效的缓存管理。 - **最佳实践**:分享了一些...

    高并发网站多级缓存设计.docx

    轮询确保请求均匀分布,一致性哈希则可提高缓存命中率,但可能导致热点问题。为解决热点问题,可以将热点数据直接推送至接入层Nginx,或者设定阈值切换至轮询算法。 2. **应用Nginx本地缓存**: - 应用Nginx可以...

Global site tag (gtag.js) - Google Analytics