在我们运行相同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 2125pid 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值异常的问题的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/18950.html
微信扫一扫
支付宝扫一扫