我需要修复我的虚拟服务器。它出什么问题了?需要内存吗?要不然?
4核4GB内存
top - 10:06:13 up 53 min, 1 user, load average: 31.74, 30.17, 24.79
Tasks: 180 total, 1 running, 179 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.9%us, 0.2%sy, 0.0%ni, 69.3%id, 29.6%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 4194304k total, 2753136k used, 1441168k free, 0k buffers
Swap: 4194304k total, 0k used, 4194304k free, 1060564k cached
答案1
从您提供的信息我只能知道您的服务器需要更快的磁盘。
您可以尝试使用atop
查看哪个程序执行最多的磁盘 IO。如果幸运的话,您可以配置该程序以减少 IO。
答案2
有关如何计算平均负载的讨论,请查看有点过时(但仍然有用)的文章 -
http://www.linuxjournal.com/article/9001?page=0,1
根据您的数据,由于您的平均负载约为 24 - 32 并且您有 4 个核心,因此平均负载/核心约为 6 - 8 (等待 CPU 的进程)。由于您的 CPU 利用率较低(69% 空闲),我们只能得出结论,您有大量线程等待 I/O 完成(平均负载计算包括等待 I/O 完成的线程)。高等待百分比 (~30) 似乎也表明了同样的情况。您可以做两件事 - 1. 在磁盘上运行 iostat 以查看每个磁盘等待时间的详细统计信息。 2. 运行 ps 并检查该状态中是否有“D”,以查看等待 I/O 完成的线程。解决上述问题的下一步(取决于问题所在)可能包括更好更快的磁盘或仔细查看代码中的 I/O 路径。您可以使用其他工具(例如 perf)来更深入地了解应用程序等待时间的确切来源。