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 版权协议,转载请附上原文出处链接和本声明。

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

目录
相关文章
|
9天前
|
Ubuntu 安全 Linux
《Linux 简易速速上手小册》第1章: Linux 系统基础(2024 最新版)
《Linux 简易速速上手小册》第1章: Linux 系统基础(2024 最新版)
46 1
|
16天前
|
资源调度 JavaScript 搜索推荐
Linux系统之部署envlinks极简个人导航页
【4月更文挑战第11天】Linux系统之部署envlinks极简个人导航页
58 2
|
18天前
|
缓存 Linux 测试技术
安装【银河麒麟V10】linux系统--并挂载镜像
安装【银河麒麟V10】linux系统--并挂载镜像
100 0
|
16天前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
40 6
|
7天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
1天前
|
SQL 监控 架构师
linux系统性能分析的目的
【4月更文挑战第19天】在Linux系统中,找到性能瓶颈是关键,涉及应用程序、操作系统、硬件和网络的全面排查。优化方案通常针对应用程序和操作系统,而硬件和网络问题较易定位。目标是平衡资源使用,确保系统响应和稳定性。系统管理员、架构设计人员和开发人员共同参与,通过监控硬件、网络、配置和代码来优化性能。流程包括管理员初步判断,架构师处理结构问题,开发人员优化代码,实现系统资源的均衡利用。
6 1
|
2天前
|
Linux
Linux rsyslog占用内存CPU过高解决办法
该文档描述了`rsyslog`占用内存过高的问题及其解决方案。
20 4
|
3天前
|
Ubuntu Linux
Linux(Ubuntu)系统临时IP以及静态IP配置(关闭、启动网卡等操作)
请注意,以上步骤是在临时基础上进行配置的。如果要永久保存静态IP地址,通常还需要修改 `/etc/network/interfaces`文件,以便在系统重启后保持配置。同时,确保备份相关配置文件以防止出现问题。
15 1
|
4天前
|
Linux 数据安全/隐私保护
Linux系统忘记密码的三种解决办法
这篇博客介绍了三种在Linux忘记密码时重置登录密码的方法:1) 使用恢复模式,通过控制台界面以管理员权限更改密码;2) 利用Linux Live CD/USB启动,挂载硬盘分区并使用终端更改密码;3) 进入单用户模式,自动以管理员身份登录后重置密码。每个方法都提供了详细步骤,提醒用户在操作前备份重要数据。
|
4天前
|
JSON Unix Linux
Linux系统之jq工具的基本使用
Linux系统之jq工具的基本使用
32 2