在我的所有机器上,我都使用 sar (sysstat) 来获取当前网络带宽,sar -n DEV 1 1
稍后再进行解析,但在我的其中一台机器上,此命令不再像其他机器一样在 1 秒内给出输出,而是需要 20-30 秒左右的时间。我该如何调试这里发生的事情?
答案1
我还没有使用过sar
,但我刚刚阅读了手册和一些文章,我不认为你做错了什么,或者这sar
本身导致了问题。不幸的是,你没有告诉我们受影响机器的进一步情况,所以我会尝试给出一些一般指导。
我曾见过只有一个应用程序或操作系统的某个特定部分因磁盘故障而严重变慢的情况。如果受影响的应用程序一次又一次地尝试读取相同的缺陷扇区,每次都等待超时,或者尝试写入缺陷扇区(注意:出于某种原因,磁盘有时无法正确识别缺陷扇区或无法及时重新映射它们),则可能会发生这种情况。
我在实际生产中看到过这种情况,这些机器在其他方面都运行良好,使用各种操作系统。所以我要做的第一件事就是查看日志文件并搜索磁盘 IO 错误和超时的迹象。
如果 dmesg、last 和 friends 没有显示任何内容,也许可以运行 SMART 测试。
当然,可能还有另一个应用程序占用了所有的 CPU 时间。但我假设您已经使用了
top
和 朋友,如果是这样的话,其他应用程序(不仅仅是sar
)也会受到影响。我想你会注意到这种行为。最终,网卡出现了问题。例如,PCI/PCI-E 可能出现 I/O 错误,这意味着网卡或主板已损坏或存在缺陷。但在这种情况下,其他联网应用程序也会经历显著的减速,而且我认为您已经注意到了这种行为。
您的问题已标记为“amazon-ec2”,因此我不知道您是否可以替换系统或其部分。如果系统是我的,我可以访问它,我首先会克隆并替换磁盘。您能让亚马逊这样做吗?如果不行,我会进行完整备份,转储该系统并移至另一个系统(但不知道这是否以及如何与亚马逊配合使用)。