硬件:Sunfire v20z、双 Opteron 1Ghz、2GB RAM、73GB 10k rpm scsi。
在我的监控软件中是否存在“合理”的阈值?目前是 500 警告,1000 严重。
每秒中断次数多少比较好?我知道这取决于很多因素,但我希望有一个大概的值,这样我就不会随便从帽子里选数字了……
答案1
没有限制。这取决于中断合并、请求数、线程、进程、内核类型、时钟类型、内核配置。这就是为什么它也被用作随机数生成器的种子。
答案2
在我的光纤通道 QLogic 卡 (SAN) 上,每秒中断次数达到约 2,000 次时,我获得了最佳带宽。每张卡上有两个端口,因此每个中断每秒都会被触发 2,000 次。
在我看来,中断合并是每个驱动程序都独有的,每个驱动程序可以以完全不同的方式执行。例如,以下是说明配置 e1000 (Intel PRO/1000) 网卡驱动程序。
如果某个驱动程序不允许合并,那么您需要计算固定时间内工作单元的理想速率。Mircea Vutcovici 在他的评论中给出了概述。考虑一张 8 Gb/秒的卡(假设一个端口)。
Buffer Size Intr/sec
256 Kbytes 4,096
128 Kbytes 8,192
16 Kbytes 65,536
512 bytes 2,097,152
现在,每个设备和控制器每秒可以承受的最大输入/输出操作数。如果我的猜测正确的话,这应该与每秒中断数成正比,甚至相等。
那么,您能处理多少个中断?好吧,我会找到您在设备(在本例中为磁盘)上执行的通信的最佳缓冲区大小,并确定设备达到峰值时的中断级别。然后,任何高于或接近该值的值都意味着有人确实在滥用该设备。由于您使用的是内部控制器,所以任何事情都有可能发生。您必须使用经验分析来做出猜测。
这意味着您的阈值与 a) 您的控制器、b) 您的磁盘和 c) 您的 CPU 相关(更高的频率等于尽管中断率很高但仍能完成工作的能力)。
后人会发现,很多设备都有中断。最有可能成为瓶颈的是 I/O 相关设备,具体来说:存储、网络(不仅仅是 TCP)、视频、音频(部分)。