加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 高系统中断率

发布时间:2020-12-14 03:02:41 所属栏目:Linux 来源:网络整理
导读:我的服务器有24个CPU内核,96G内存,安装了CentOS 7.2 x86_64. 在使用大型数据集启动程序后,我的程序将使用大约50G的内存,而Linux系统将显示高速率的系统中断,但上下文切换速率将会很低. dstat将显示介于500k int / s和1000k int / s之间的某个位置. CPU使用率
我的服务器有24个CPU内核,96G内存,安装了CentOS 7.2 x86_64.

在使用大型数据集启动程序后,我的程序将使用大约50G的内存,而Linux系统将显示高速率的系统中断,但上下文切换速率将会很低. dstat将显示介于500k int / s和1000k int / s之间的某个位置. CPU使用率接近100%,约40%us,60%sy.

如果数据集很小,程序将使用大约5G内存,一切都会好,CPU使用率100%,大约99%us,1%sy.这是预期的.

该程序由我自己编写,它是一个多线程程序.它不做任何网络IO,非常少的磁盘IO,主要是内存操作和算术.无论数据集大小如何,线程模型和算法都是相同的.

我的问题是,如何通过我的程序找出最多使用哪些中断(如果可能的话,摆脱它们以提高性能)?

解决方法

我假设您没有带24C CPU的单插槽系统.所以它可能是2U12C的NUMA系统.在这种情况下,我建议确保程序只使用一个numa节点(通常是套接字),它是RAM的本地一半.

当你使用50G时,这意味着,numa局部性不能得到保证,因为它超过了内存的一半.

要检查实际状态,请使用numastat.如果您使用的是RHEL,则可以使用numad自动处理内存位置.或者您可以使用numactl – 硬件将为您提供有关您的HW NUMA节点的概述.有很好的例子:

http://fibrevillage.com/sysadmin/534-numactl-installation-and-examples

这样,您可以将程序锁定在所需的CPU上.

我建议检查你是否有irqbalance守护进程运行,否则你可能有一个核心超载了中断.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读