我需要一些帮助,试图找出导致我的一台服务器出现高负载峰值的原因(在 5-10m 期间,它每小时至少上升 120 次)。
问题是这台服务器基本上是另一台服务器的镜像,它们都运行相同的应用程序,并且都连接到同一个 dbb 服务器(奇怪的是,用户最少的服务器是提供如此高负载的服务器)尖峰)。
当我将两个服务器进程与ps ax
. 我发现它们之间存在一些差异,主要是这些过程和运行时间:
576?S< 2:25 [ata/0]
577 ? S< 0:12 [ata/1]
578 ? S< 4:39 [ata/2]
579 ? S< 1:04 [ata/3]
580 ? S< 0:00 [ata_aux]
586 ? S 8:41 [scsi_eh_3]
6502 ? Ss 15:07 暂停
这可能是问题的原因吗?任何帮助将不胜感激。亲切的问候,西蒙。
您提到其中一个系统的流量比另一个多,差异有多大?如果出现问题的机器大部分是空闲的,那可能只是启动、缓存构建等的成本。它不断地看到流量,那么你的硬件可能有严重的问题。
dmesg
,top
并且vmstat
通常安装。iostat
不太常见,但通常以包的形式提供。有关它们的更多信息,请参见手册页。用于
dmesg
查明内核是否遇到任何问题,例如 IO 或文件系统错误。top
非常有用,它提供有关进程表、内存使用情况、平均负载和 CPU 使用情况的持续数据。IO 或内存利用率是否存在显着差异。vmstat
用于提供虚拟内存、IO 和 cpu 活动的统计信息。第一条数据线基于自启动以来的结果。后续行是自上一行以来发生的事情。如果像这样调用vmstat 3
它,它会每 3 秒更新一次信息。如果像调用vmstat 3 3
它一样运行,直到它提供 3 条数据线。另一个工具是 iostat。这提供了有关正在发生的事情的更详细的信息。基本使用类似于vmstat。换句话说,末尾的单个裸数字表示收集间隔,两个数字表示收集数据的频率和次数。对于 IO 问题,
iostat -x 5
和/或iostat -p ALL 5
在跟踪瓶颈方面非常有用。如果您使用的是 RAID5,阵列中的任何驱动器是否有问题?
mdadm
如果您使用的是软件 RAID,则该工具是该工具。硬件突袭适配器有自己的工具来告诉你发生了什么。我有一个案例,供应商在阵列中提供替换驱动器,其性能达到原始驱动器的 35%,导致其所在阵列的性能受到严重影响。替换驱动器理论上具有相同的基本规格,但无法处理排队和原件一样。