第14章 监视Squid

转载 2007年09月14日 00:36:00
原贴:http://www.opendigest.org/article.php/300

 

第14章 监视Squid

    • 14.1 cache.log告警
    • 14.2 Cache管理器
    • 14.3 使用SNMP

14.1 cache.log告警

在碰到Squid有问题时,应该首先查看cache.log里的警告信息。在正常运行时,你可发现不同的警告或信息,它们会或不会表明问题存在。我在13.1节里讲到了cache.log的结构。这里我重提一些可能在日志文件里见到的警告信息。

在中值响应时间超过限制时,high_response_time_warning指令让Squid打印一条警告。该值是毫秒级的,默认禁止。假如增加如下行到squid.conf:

high_response_time_warning 1500

如果大于1分钟的时间范围内的中值响应时间超过1.5秒,Squid会发布如下警告:

2003/09/29 03:17:31| WARNING: Median response time is 2309 milliseconds

在设置该指令前,你应该对Squid的正常响应时间级别有较好理解。假如设置过低,会导致很多假报警。在上述示例里,意味着一半用户的请求需要花费 2.3秒去完成。高响应时间可能由本地程序产生,例如运行超出文件描述符;也可能是远程问题,例如拥挤的Internet连接。

high_page_fault_warning作用类似。假如每分钟的页面错误次数超过给定限制,它会导致Squid发布一条警告。高页面错误率 通常意味着Squid进程不能完全放在内存,必须被交换到磁盘。这种交换严重影响了Squid的性能,所以你必须尽快解决问题,见16.1.8节的描述。

Squid使用Unix的getrusage()函数来获取页面错误计数。在某些操作系统上(例如Solaris),页面错误计数器表现异常。这样,high_page_fault_warning在这些系统上会导致假报警。

high_memory_warning指令也类似于前面提到的报警。在此情况下,它检查Squid进程的size,假如size超过了限制,就会在cache.log里告警。在某些操作系统上,进程size只增不降。这样,除非Squid关闭,你会经常得到这个警告。

进程size来自于如下3个函数之一:mallinfo( ), mstats( ), 或sbrk( ) 。假如这些函数在你的操作系统上不可用,则high_memory_warning不能工作。

Squid有其他一些硬编码的告警,可在cache.log里见到:

DNS lookup for 'neighbor.host.name' failed!

在Squid查询邻居cache的IP地址失败时,这点会发生。Squid大约每小时刷新一次邻居的地址。只要邻居的地址不可知,Squid不会发送会话到那边。

Detected DEAD Sibling: neighbor.host.name/3128/3130

在Squid不能与某个邻居cache通信时,它记录这个消息。例如,太多连续的ICP查询没有得到响应,这点就会发生。见10.3.2节的更多信息。

95% of replies from 'neighbor.host.name' are UDP_DENIED

该消息表明邻居cache拒绝回答Squid的查询。可能意味着Squid发送未经许可的查询到邻居cache。假如邻居cache使用地址基础的 访问控制,并且你近来更改了地址,那它们就不会知道这个更改。在检测到该条件后,Squid拒绝发送更多查询到邻居cache。

Probable misconfigured neighbor at 192.168.121.5

若有未经授权的cache客户端向你发送ICP或HTCP查询,这点就会发生。最好的处理方法就是找到负责这个cache的组织或个人,询问他们为什么要查询你的cache。

Forwarding loop detected for:

回想一下,当单个请求遍历Squid 2次时,就发生了转发循环。请求的Via头部包含了遍历过的所有代理的列表。假如Squid在Via列表里检测到了自己的名字,它发布转发循环警告,并将请求直接发送到原始服务器。见10.2节关于转发循环的解释。

Closing client 192.168.121.5 connection due to lifetime timeout

client_lifetime指令对单个HTTP请求的存活期设置一个上限。当这样的请求终止时,Squid发布警告,它可能意味着某人正发起长时间连接来滥用cache,例如,无穷的download目标。

如你所见,caceh.log仅提供了异常事件的通知。对周期性的监控,还需要其他工具。cache管理器可能是最好的选择,尽管它的接口还不完美。



14.2 Cache管理器

译者注:由于本节的内容本人从未涉及,为避免误导,请读者自行阅读原书的该章节。 也有可能以后会更新本节内容,请关注本书中文版release的web目录:

http://home.arcor.de/jeffpang/squid


14.3 使用SNMP

译者注:由于本节的内容本人从未涉及,为避免误导,请读者自行阅读原书的该章节。 也有可能以后会更新本节内容,请关注本书中文版release的web目录:

http://home.arcor.de/jeffpang/squid
责任编辑: mayu8758

相关文章
Squid中文权威指南(第16章 调试和故障处理 ) - 06-20 11:49 am - 点击: 542
Squid中文权威指南(第15章 服务加速模式 ) - 06-20 11:46 am - 点击: 421
Squid中文权威指南(第13章 日志文件) - 06-20 11:42 am - 点击: 573
Squid中文权威指南(第12章 验证辅助器 ) - 06-20 11:40 am - 点击: 520
Squid中文权威指南(第11章 重定向器) - 06-20 11:38 am - 点击: 588
Squid中文权威指南(第10章 与其他Squid会话 ) - 06-20 11:34 am - 点击: 557
Squid中文权威指南(第九章) - 04-26 07:03 pm - 点击: 748
Squid中文权威指南(第八章) - 04-26 07:02 pm - 点击: 734
Squid中文权威指南(第七章) - 04-26 07:01 pm - 点击: 635
Squid中文权威指南(第六章) - 04-26 07:00 pm - 点击: 541

相关文章推荐

Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表)

Sql Server 函数的操作实例!(执行多条语句,返回Select查询后的临时表) SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ...

存储过程中的out,output,return 的使用

output 类型的参数需要在存储过程的参数列表中添加。output类型的参数传入存储过程后还会返回其运行后的值。 return value类型的参数不需要在存储过程的参数列表中添加。return ...

SqlServer表和EXCEL数据批量复制方法(已解决)

SqlServer表和EXCEL数据批量复制方法(已解决) 一、SqlServer表数据复制到excel(方法) 1、新建查询,用sql语句把表数据读出来 2、然后,选择数据,右键,复制(也可以...

SqlServer中循环和条件语句示例!

-- ╔════════╗ -- =============================== ║ if语句使用示例 ║ ...

sql语句中not in和exists 的用法以及更新两个表数据的插入实例

exists 与 in 最大的区别在于 in引导的子句只能返回一个字段,exists : 强调的是是否返回结果集,不要求知道返回什么,

第14章 错误处理与调试 (一)

14.1 浏览器错误报告 14.1.1  Internet Explorer 如果错误发生在位于外部文件的脚本中,行号通常会与错误所在的行号差 1 。如果是嵌入在页面中的脚本发生错误,则行号就是错...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)