这年头真是连胡萝卜都不可以相信。

前一段时间用了很多很多的时间和精力奋斗 squid,  当时无论怎么调整参数,  Linux 下面的 squid 性能就是比不上 FreeBSD 系统的。同样的硬件配置,DNS Round Robin 轮转均衡,Linux 的 squid 无论 hit rate 还是 traffic 都比 FreeBSD 的低一些,随着流量增加,差别还越来越明显。今天差距居然达到 33% 了,Linux 报告 traffic 在 3MB 左右,同时 FreeBSD 报告已经上 4MB 了。本来就打算得出结论,FreeBSD 作 Squid 确实有天然优势,没有想到,这只是一场骗局。。

zsg 今天察看了一下这些 squid 对应交换机网口的流量,结果发现基本是一样的,而且 Linux 那个比 FreeBSD 的还稍微高一点点。和 Squid 自己的 SNMP 数据比较,确定 Linux 的数据基本是准确的,而 FreeBSD 虚报了 33% 还多!真是!·#¥%……

造成这个现象的原因猜测是 FreeBSD 和 Linux 两者之一的计时时钟不够精确,导致计算不准确,但是为什么 Hit rate 也能高呢?这就不清楚了,确实比较奇怪,不过交换机数据和 FreeBSD 报告的差别很大也是铁板钉钉的事实,所以只能自己认为,时钟不准确,导致其他逻辑都混乱了罢。。。再怎么说,交换机出现单个口统计结果不准的可能性,也要远小于不同机器上面 Squid 报告不准的可能性吧。

总的来说,以后不能太相信程序自己报告的结果,如果有手段,还是多参考一些更公正的数据来源更有意义。
感谢 zsg 灵感去看交换机数据,解决了这个多天来的悬案。