1.5 缓存结果

记录缓存结果

除了记录有关客户端和源请求和响应的信息之外,Traffic Server 还公开有关通过节点的每个请求的缓存交互的详细信息。此信息对于建立有效的缓存配置非常重要,尽管它仅在使用crc日志记录字段时才会出现在您的日志记录输出中有关更多详细信息,请参阅crsc

解释缓存结果

在日志输出中包含缓存结果代码的直接好处是能够跟踪和诊断特定问题。您可能无需任何帮助就知道某个特定请求花费的时间比它应该花费的时间长得多,并且 HTTP 响应检查显示 Age 标头的值非常小(或可能为零),但您可能仍然想知道为什么。如果可以将有问题的请求与访问日志条目相关联,缓存结果代码可能有助于揭示重要信息。

来自您的源头的错误配置的标头可能会导致客户端主动发送no-cache请求,或者缓存对象可能会过快过时并且 IMS ( If-Modified-Since) 请求比您预期的更频繁地返回到源服务器。也许这不是一个常规的 Web 浏览器请求,而是应用程序的一部分 API 和正在使用的 HTTP 方法不被 Traffic Server 理解,而是盲目地传递到源。通过记录和检查 Traffic Server 缓存结果,这些和其他情况都可以很快被发现。

更有用的整体监控和优化策略是记录缓存结果,然后通过日志聚合和分析工具生成报告。这种方法可以揭示更大的趋势并发现问题或效率低下,而这些问题或低效率不一定会导致彻底的客户端错误或来自用户的错误报告。

TCP_MISSTCP_HIT事件的高比率可能表明您的缓存大小太小并且对象被驱逐得太快,以至于您的 Traffic Server 缓存无法减少到您的源服务器的流量 - 在很大程度上违背了拥有缓存层的目的。这里太小可能是任何事情,从根本没有适当的大小,尽管您的希望和意图(希望是因为您仍在根据监视和报告结果微调您的配置)到您操作非常大的可缓存数据集的困难情况看到过于稀疏的访问模式而无法轻松创建单个缓存策略。

在后一种情况下,您可能需要研究数据子集的分层缓存策略以更好地调整逐出率,或将数据分区到不同的存储卷以保留频率较低但非常大的对象(例如长达数小时的存档训练过去几年的视频)突然驱逐大量访问量较小但不经常更改的对象(例如,由陈旧的 CMS 中不守规矩的 SQL 查询生成的学期课程表的昂贵 HTML 页面)。

大量TCP_CLIENT_REFRESH事件的对象应该主要(或几乎完全)从您的 Traffic Server 缓存中提供服务,这可能表明某些事情,可能是您的源服务器响应中的缓存头配置错误,正在触发客户端提交请求 no-cache启用。

几乎任何非平凡的TCP_REF_FAIL_HIT请求都表明您的源服务器没有响应来自 Traffic Server 的代理请求。Traffic Server 在其缓存中发现了一个对象,但确定它是陈旧的尝试从源刷新对象并遇到了失败。客户端仍然收到一个对象,但有可能由于源故障而过时。

缓存结果代码

以下是您当前在 Traffic Server 日志输出中遇到的所有可能的缓存结果代码,以及每一个的含义。

TCP_HIT

请求对象的有效副本在缓存中,Traffic Server 将对象发送到客户端。

TCP_CF_HIT

请求对象的有效副本正在缓存中更新,Traffic Server 将对象发送到客户端。

TCP_MISS

请求的对象不在缓存中,因此 Traffic Server 从源服务器(或父代理)检索对象并将其发送到客户端。

TCP_REFRESH_HIT

该对象在缓存中,但已过期。Traffic Server if-modified-since向源服务器发出请求,源服务器发送304未修改的响应。Traffic Server 将缓存的对象发送给客户端。

TCP_REF_FAIL_HIT

该对象在缓存中,但已过时。Traffic Serverif-modified-since向源服务器发出 请求,但服务器没有响应。Traffic Server 将缓存的对象发送给客户端。

TCP_REFRESH_MISS

该对象在缓存中但已过期。Traffic Serverif-modified-since向源服务器发出 请求,服务器返回一个新对象。Traffic Server 将新对象提供给客户端。

TCP_CLIENT_REFRESH

客户端发出带有no-cache标头的请求Traffic Server 从源服务器获取请求的对象,并将副本发送给客户端。Traffic Server 从缓存中删除了对象的先前副本。

TCP_IMS_HIT

客户端发出if-modified-since请求并且对象在缓存中并且比 IMS 日期更新,或者if-modified-since对源服务器的 请求显示缓存的对象是新的。Traffic Server 将缓存的对象提供给客户端。

TCP_IMS_MISS

客户端发出了一个 并且该对象不在缓存中或在缓存中过时。Traffic Server 向源服务器发送一个 并接收到新对象。Traffic Server 将更新后的对象发送给客户端。if-modified-since requestif-modified-since request

TCP_SWAPFAIL

该对象在缓存中但无法访问。客户端没有收到对象。

ERR_CLIENT_ABORT

客户端在发送完整对象之前断开连接。

ERR_CLIENT_READ_ERROR

客户端读取错误(网络问题)。

ERR_CONNECT_FAIL

Traffic Server 无法访问源服务器。

ERR_DNS_FAIL

域名服务器 (DNS) 无法解析源服务器名称,或者无法访问 DNS。

ERR_INVALID_REQ

客户端 HTTP 请求无效。(流量服务器将使用未知方法的请求转发到源服务器。)

ERR_READ_TIMEOUT

源服务器在超时间隔内没有响应 Traffic Server 的请求。

ERR_PROXY_DENIED

客户服务被拒绝。

ERR_UNKNOWN

客户端已连接,但随后在未发送请求的情况下断开连接。

缓存结果子代码

以下是您当前在 Traffic Server 日志输出中遇到的所有可能的缓存结果子代码,以及每一个的含义。这些子代码可以提供缓存结果代码中未公开的更具体的细节。

NUM_REDIRECTIONS_EXCEEDED

源服务器响应重定向,但遵循此重定向将超过配置的最大允许重定向数: proxy.config.http.number_of_redirections

posted @ 2021-07-05 14:51  bjcdn  阅读(189)  评论(0)    收藏  举报