1.1 CPU处理方式:
- 批处理,顺序处理请求。(切换次数少,吞吐量大)
- 分时处理。(如同"独占",吞吐量小)(时间片,把请求分为一个一个的时间片,一片一片的分给CPU处理)我们现在使用x86就是这种架构
- 实时处理
例:
批处理——以前的大型机(Mainframe)上所采用的系统,需要把一批程序事先写好(打孔纸带),然后计算得出结果
分时——现在流行的PC机和服务器都是采用这种运行模式,即把CPU的运行分成若干时间片分别处理不同的运算请求
实时——一般用于单片机上,比如电梯的上下控制,对于按键等动作要求进行实时处理
1.2 查看CPU一秒钟有多个切换多少次。
查看内核一秒钟中断CPU次数:
grep HZ /boot/config-6.6.0-28.0.0.34.oe2403.x86_64
CONFIG_NO_HZ_COMMON=y
# CONFIG_HZ_PERIODIC is not set
# CONFIG_NO_HZ_IDLE is not set
CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
CONFIG_MACHZ_WDT=m
下面是这些配置项的含义:
-
CONFIG_NO_HZ_COMMON=y
:启用无时钟滴答(No HZ)的通用部分。无时钟滴答是一种内核调度器优化,它减少了定时器中断的频率,从而减少了处理器的开销。 -
CONFIG_HZ_PERIODIC
和CONFIG_NO_HZ_IDLE
被注释掉了,这意味着它们没有被设置。CONFIG_HZ_PERIODIC
用于设置周期性时钟滴答,而CONFIG_NO_HZ_IDLE
用于设置空闲时钟滴答。 -
CONFIG_NO_HZ_FULL=y
:启用完全无时钟滴答模式。在这种模式下,当CPU处于空闲状态时,时钟滴答会被完全关闭,以节省能源。 -
CONFIG_NO_HZ=y
:启用无时钟滴答功能。 -
CONFIG_HZ_100
、CONFIG_HZ_250
和CONFIG_HZ_300
被注释掉了,这意味着它们没有被设置。这些选项用于设置内核时钟滴答频率,单位是赫兹(Hz)。例如,CONFIG_HZ_100
会设置时钟滴答频率为100Hz。 -
CONFIG_HZ_1000=y
:设置内核时钟滴答频率为1000Hz。 -
CONFIG_HZ=1000
:定义了时钟滴答频率为1000Hz。 -
CONFIG_MACHZ_WDT=m
:这是一个模块化的配置选项,用于启用一个高精度的看门狗定时器(Watchdog Timer),它通常用于系统监控和恢复。
这些配置项通常在Linux内核的.config
文件中设置,用于在编译内核之前配置内核的行为。不同的配置项会影响内核的性能、功耗和实时性。
1.3 调整进程优先级使用更多CPU
调整进程nice值,让进程使用更多的CPU
优先级控制:
nice值 #范围, -20 ~ 19 越小优先级越高 普通用户0-19
nice
作用:以什么优先级运行进程 。默认优先级是0
语法: nice -n 优先级数字 命令
例:
[root@localhost ~]# nice -n -5 vim a.txt # vim进程以-5级别运行
查看:
[root@localhost ~]# ps -axu | grep a.txt
root 3345 0.0 0.0 22116 2248 pts/0 S+ 13:56 0:00 grep --color=auto a.txt
[root@localhost