在我们运行相同java服务的两个服务器上,出现了不同寻常的情况:服务器xxx.xxx.xxx.95的负载值(load)明显高于服务器xxx.xxx.xxx.215,尽管它们的硬件配置和jvm设置完全相同。
经过仔细检查,我们发现:
1)起初,我们认为可能是阿里云宿主机的问题。经过与阿里云沟通,我们将服务迁移到不同的宿主机上。然而,即使在迁移后,服务器95的负载值仍然比服务器215高出五倍。
2)通过使用top命令,我们观察到Java进程似乎只使用单一的CPU(看起来一直是CPU0)。检查进程的CPU亲和性后,发现并没有问题,进程可以访问所有CPU。
appuser@iZ25lwzc3tkZ:/home$ taskset -pc 2125 pid 2125's current affinity list: 0-7

3)经过反复思考,我们将注意力转向了Linux内核。
服务器95(8核)运行的是Ubuntu 12.04.5 LTS,内核版本为3.2.0-67-generic。
服务器215(4核)运行的是Ubuntu 14.04.2 LTS,内核版本为3.13.0-65-generic。
最后,我们对服务器95进行了系统升级,结果发现负载值立即恢复正常,所有8个CPU都被均匀使用。

因此,我们得出结论:两个服务器的不同Linux内核版本导致了负载值计算上的差异。
以上就是Linux内核版本引起系统负载load值异常的问题的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号