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

目录
相关文章
|
2月前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
117 3
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
95 2
|
23天前
|
存储 缓存 监控
Linux缓存管理:如何安全地清理系统缓存
在Linux系统中,内存管理至关重要。本文详细介绍了如何安全地清理系统缓存,特别是通过使用`/proc/sys/vm/drop_caches`接口。内容包括清理缓存的原因、步骤、注意事项和最佳实践,帮助你在必要时优化系统性能。
167 78
|
26天前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
57 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2月前
|
缓存 Java Linux
如何解决 Linux 系统中内存使用量耗尽的问题?
如何解决 Linux 系统中内存使用量耗尽的问题?
178 48
|
22天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
91 13
|
1月前
|
存储 缓存 监控
Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
本文介绍了Docker容器性能调优的关键技巧,涵盖CPU、内存、网络及磁盘I/O的优化策略,结合实战案例,旨在帮助读者有效提升Docker容器的性能与稳定性。
126 7
|
1月前
|
存储 缓存 网络协议
Linux操作系统的内核优化与性能调优####
本文深入探讨了Linux操作系统内核的优化策略与性能调优方法,旨在为系统管理员和高级用户提供一套实用的指南。通过分析内核参数调整、文件系统选择、内存管理及网络配置等关键方面,本文揭示了如何有效提升Linux系统的稳定性和运行效率。不同于常规摘要仅概述内容的做法,本摘要直接指出文章的核心价值——提供具体可行的优化措施,助力读者实现系统性能的飞跃。 ####
|
2月前
|
Ubuntu Linux 网络安全
linux系统ubuntu中在命令行中打开图形界面的文件夹
在Ubuntu系统中,通过命令行打开图形界面的文件夹是一个高效且实用的操作。无论是使用Nautilus、Dolphin还是Thunar,都可以根据具体桌面环境选择合适的文件管理器。通过上述命令和方法,可以简化日常工作,提高效率。同时,解决权限问题和图形界面问题也能确保操作的顺利进行。掌握这些技巧,可以使Linux操作更加便捷和灵活。
56 3
|
23天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
40 0
下一篇
开通oss服务