Linux系统调优详解(十)——CPU调优

简介: Linux系统调优详解(十)——CPU调优

今天继续给大家介绍Linux运维相关知识,本文主要内容是CPU调优。

一、CPU中断次数查看
在进行Linux系统CPU调优时,我们有时需要查看CPU的中断次数。此时,我们应该执行命令:

grep HZ /boot/config-3.10.0-957.el7.x86_64
1
该命令执行结果如下所示:

注意到上图中的CONFIG_HZ,该参数即表示当前内核中CPU每秒有1000次中断。

二、进程优先级设置
在Linux系统中,我们可以使用nice和renice命令来调整进程的优先级,使得我们指定的进行获得更高的CPU调度或者相反。
相关知识和命令在Linux进程控制与进程优先级一文中有详细介绍,在这里就不过多赘述了。对Linux进程优先级设置还存在疑惑的可以自行查询该文章。

三、CPU亲和力设置
CPU亲和力是一种CPU调度特性,在当前系统中存在多核CPU的前提下,可以将一个进程“绑定到”某一个CPU上,使其固定在一个CPU上调度,从而减少进程在不同CPU之间的开销。
CPU亲和力的设置需要使用taskset命令。taskset命令常用命令示例如下:
1、指定运行命令进程的CPU亲和力
执行命令:

taskset -c 1 vi 123.txt
1
可以执行vi 123.txt的命令,并且将该命令执行的进程CPU亲和力设置为1。
2、查看进程的CPU亲和力
我们查询到上述进程的PID为7362,然后执行命令:

taskset -p 7362
1
即可查询该进程的CPU亲和力,结果如下所示:

在上图中我们可以看到,该命令执行后,返回了该进程的CPU亲和力的掩码。
该掩码应该如下理解:
我们按照CPU进行编号,从0开始,在本系统中,一共有4个CPU,因此编号为0、1、2、3。
每个CPU,如果该进程对其亲和,就设置为1,如果不亲和,就设置为0。这样,就会得到4个数值,我们按照二进制的方式将其组合,并按照16进制的方式显示,这样,我们就可以很容易的得到该进程CPU亲和力的掩码。
在本实例中,该进程亲和于CPU编号1,因此其二进制码为0010,换算成16进制,即为2。类似的,在默认情况下,一个进程对所有的CPU都亲和,因此其二进制码为1111,换算成16进制,即为f。
3、修改进程的CPU亲和力
执行命令:

taskset cp 1,2,3 7362
1
可以将PID为7362的进程的CPU亲和力设置为1,2,3,该命令执行结果如下所示:

从上图可以看出,修改后该进程的CPU亲和力掩码为e,换算成二进制码即为1110,即对1,2,3三个CPU亲和。

四、CPU性能和利用率
一般情况下,一个CPU处理器上运行的队列数不应该超过3个,如果超过3个,就表示当前系统负载过大。
另外,如果一个CPU被充分利用,那么其利用率比率应该是:
用户态:65%-70%
内核态:30%-35%
空闲态:0-5%
另外,上下文切换的数目会直接影响到CPU的使用率,如果CPU使用率始终保持在上述状态,那么即使上下文切换的数目即使非常大,那么也是正常的。
从大量的分析和实践中,我们可以得到系统CPU使用的以下结论:
1、如果当前系统中上下文切换的数目高于中断的数目,说明内核中的非常多时间消耗在上下文切换线程上。
2、如果等待IO的时间非常多,用户使用时间比较低,那么就表示当前系统中磁盘IO存在瓶颈。
3、在2的情况下,可能会有一些进程阻塞在IO请求上,因此在运行队列中可能会有一些可运行状态的线程在等待执行。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
————————————————

                        版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
AI 代码解读

原文链接:https://blog.csdn.net/weixin_40228200/article/details/125381454

目录
打赏
0
2
3
0
204
分享
相关文章
Linux 查看 CPU 使用情况
在 Linux 系统中,查看 CPU 使用情况是性能分析和故障排查的重要环节。查看 CPU 使用情况,使用 top 命令或者 htop 命令来查看。
|
11天前
|
Linux系统资源管理:多角度查看内存使用情况。
要知道,透过内存管理的窗口,我们可以洞察到Linux系统运行的真实身姿,如同解剖学家透过微观镜,洞察生命的奥秘。记住,不要惧怕那些高深的命令和参数,他们只是你掌握系统"魔法棒"的钥匙,熟练掌握后,你就可以骄傲地说:Linux,我来了!
75 27
|
14天前
|
Linux系统ext4磁盘扩容实践指南
这个过程就像是给你的房子建一个新的储物间。你需要先找到空地(创建新的分区),然后建造储物间(格式化为ext4文件系统),最后将储物间添加到你的房子中(将新的分区添加到文件系统中)。完成这些步骤后,你就有了一个更大的储物空间。
72 10
|
2月前
|
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
110 24
Linux系统之whereis命令的基本使用
Linux使用cpulimit对CPU使用率进行限制
cpulimit是一款简单易用的CPU使用率限制工具,支持对特定程序或整个CPU使用率进行限制。可通过源安装(如`yum`或`apt-get`)或编译安装获取。使用时,可针对程序名、进程号或绝对路径设置CPU占用上限(如`cpulimit -e xmrig -l 60 -b`)。ROOT用户可限制所有进程,普通用户仅限于权限范围内进程。注意,CPU百分比基于实际核心数(单核100%,双核200%,依此类推)。
52 7
|
26天前
|
Linux系统中如何查看CPU信息
本文介绍了查看CPU核心信息的方法,包括使用`lscpu`命令和读取`/proc/cpuinfo`文件。`lscpu`能快速提供逻辑CPU数量、物理核心数、插槽数等基本信息;而`/proc/cpuinfo`则包含更详细的配置数据,如核心ID和处理器编号。此外,还介绍了如何通过`lscpu`和`dmidecode`命令获取CPU型号、制造商及序列号,并解释了CPU频率与缓存大小的相关信息。最后,详细解析了`lscpu`命令输出的各项参数含义,帮助用户更好地理解CPU的具体配置。
79 8
深度体验阿里云系统控制台:SysOM 让 Linux 服务器监控变得如此简单
作为一名经历过无数个凌晨三点被服务器报警电话惊醒的运维工程师,我对监控工具有着近乎苛刻的要求。记得去年那次大型活动,我们的主站流量暴增,服务器内存莫名其妙地飙升到90%以上,却找不到原因。如果当时有一款像阿里云 SysOM 这样直观的监控工具,也许我就不用熬通宵排查问题了。今天,我想分享一下我使用 SysOM 的亲身体验,特别是它那令人印象深刻的内存诊断功能。
|
16天前
|
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
47 0
|
3月前
|
【Azure App Service】对App Service中CPU指标数据中系统占用部分(System CPU)的解释
在Azure App Service中,CPU占比可在App Service Plan级别查看整个实例的资源使用情况。具体应用中仅能查看CPU时间,需通过公式【CPU Time / (CPU核数 * 60)】估算占比。CPU百分比适用于可横向扩展的计划(Basic、Standard、Premium),而CPU时间适用于Free或Shared计划。然而,CPU Percentage包含所有应用及系统占用的CPU,高CPU指标可能由系统而非应用请求引起。详细分析每个进程的CPU占用需抓取Windows Performance Trace数据。
110 40
Linux系统查看操作系统版本信息、CPU信息、模块信息
在Linux系统中,常用命令可帮助用户查看操作系统版本、CPU信息和模块信息
222 23

热门文章

最新文章