【Linux】【操作】Linux操作集锦系列之三——进程管理系列之(六)进程其他操作命令

本文详细讲解Linux下进程的nice值、renice命令调整进程优先级,chrt设置实时优先级,以及taskset控制CPU亲和性的实战应用。通过实例演示如何提升或降低进程优先级,以及绑定进程到特定CPU。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 本系列文章,将整理一系列Linux环境下进程相关的操作命令,包括进程启动、kill、挂起、查看、前后台进程切换等各种命令。
  • 本文为本系列的第六篇,关注对进程的其他操作。
  • 欢迎各位关注我的博客:https://qxhgd.blog.csdn.net。

ps或top查看进程nice值

  • nice值应该是熟悉Linux/UNIX的人很了解的概念了,它是反应一个进程“优先级”状态的值,其取值范围是-20至19,一共40个级别;
  • 这个值越小,表示进程”优先级”越高,而值越大“优先级”越低。
  • 比如查看进程的nice值(一般默认为0):
[qxhgd@localhost ~]$ ps -el | grep smbd
4 S     0   1430      1  0  80   0 - 106747 ep_pol ?       00:00:00 smbd

[qxhgd@localhost ~]$ ps -e -o class,rtprio,pri,nice,cmd
CLS RTPRIO PRI  NI CMD
TS       -  19   0 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
TS       -  19   0 [kthreadd]
TS       -  39 -20 [kworker/0:0H]

[qxhgd@localhost ~]$ top
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
   866 root      20   0  324488   6752   5256 S  0.3  0.4   0:04.71 vmtoolsd
   934 root      20   0  115312    944    696 S  0.3  0.1   0:00.07 ksmtuned

nice

  • 用于以指定的进程调度优先级启动其他的程序,nice指“niceness”,即友善度、谦让度。用于进程中,表示进程的优先级,也即进程的友善度。niceness值为负时,表示高优先级,能提前执行和获得更多的资源,对应低友善度;反之,则表示低优先级,高友善度;

  • 每个进程都有一个介于 -20 到 19 之间的 nice 值。默认情况下,进程的 nice 值为 0;

  • nice 命令可以给要启动的进程赋予 NI 值,但是不能修改已运行进程的 NI 值;

  • 系统允许root用户设置负数优先级,以及减小现有进程的优先级数值大小。对普通用户仅允许设置正数优先级,并且只能增大现有进程的优先级数值大小。

  • 例子

nice -19 tar zcf pack.tar.gz  documents #以nice值19,低优先级执行打包
nice --19 tar zcf pack.tar.gz  documents #以nice值-19,高优先级执行打包

renice

  • 用于重新指定一个或多个行程(Process)的优先序;
  • 同 nice 命令恰恰相反,renice 命令可以在进程运行时修改其 NI 值,从而调整优先级;
  • 例子:
sudo renice -n 15 -p 77982  #changing priority of the running process
renice -n 10 -g 4           #To change the priority of all programs of a specific group
sudo renice -n 10 -u 2      #To change the priority of all programs of a specific user. 

chrt

  • 优先级是进程的实时属性,值在0-99范围内的,都是实时进程,所以这个优先级范围也可以叫做实时进程优先级,而100-139范围内的是非实时进程;
  • chrt是用来查看、设置一个进程的实时优先级状态;
  • chrt也可用于设置进程的调度策略;
    -例子:
chrt -p 0 1035
pid 1035's current scheduling policy: SCHED_RR
pid 1035's current scheduling priority: 1
chrt: number 0 is not in 1..99 range

taskset

  • The taskset command allows you to set or retrieve a process’s CPU affinity;
  • taskset命令用于设置进程(或 线程)的处理器亲和性(Processor Affinity),可以将进程(或 线程)绑定到特定的一个或多个CPU上去执行,而不允许将进程(或 线程)调度到其他的CPU上。
  • 命令格式:

– 通用命令格式:

[qxhgd@localhost ~]$ taskset mask command [arguments]

– 查看现有任务的CPU相关性:

[qxhgd@localhost ~]$ taskset -p pid

– 设置现有任务的CPU相关性:

[qxhgd@localhost ~]$ taskset -p mask pid
  • 例子:
[qxhgd@localhost ~]$ taskset -p 2371         #查看2371的cpu亲和性
pid 2371's current affinity mask: 1
[qxhgd@localhost ~]$ taskset -p 0x2 2371    #设置2371的cpu亲和性 
pid 2371's current affinity mask: 1
pid 1393's new affinity mask: 2

pmap

  • Pmap 提供了进程的内存映射,pmap命令用于显示一个或多个进程的内存状态。其报告进程的地址空间和内存状态信息。Pmap实际上是一个Sun OS上的命令,linux仅支持其有限的功能。但是它还是对查看完整的进程地址空间很有帮助。我们需要PID或者运行的进程的唯一进程ID来查看进程内存状态,我们可以通过/proc或者常规命令比如top或ps得到它。
  • 例子:
[qxhgd@localhost ~]$ pmap 1013
1013: /usr/sbin/sshd
00110000 1480K r-x- /usr/lib/libcrypto.so.1.0.0
00282000 80K rw-- /usr/lib/libcrypto.so.1.0.0
00296000 12K rw-- [ anon ]
00299000 36K r-x- /lib/libkrb5support.so.0.1
002a2000 4K rw-- /lib/libkrb5support.so.0.1
002a3000 16K r-x- /lib/libplc4.so
002a7000 4K rw-- /lib/libplc4.so
002ab000 88K r-x- /lib/libaudit.so.1.0.0
002c1000 4K r-- /lib/libaudit.so.1.0.0
002c2000 4K rw-- /lib/libaudit.so.1.0.0
002c3000 216K r-x- /lib/libgssapi_krb5.so.2.2
002f9000 4K rw-- /lib/libgssapi_krb5.so.2.2
002fa000 808K r-x- /lib/libkrb5.so.3.3
003c4000 24K rw-- /lib/libkrb5.so.3.3
003ca000 152K r-x- /lib/libk5crypto.so.3.1
003f0000 4K rw-- /lib/libk5crypto.so.3.1
003f1000 92K r-x- /usr/lib/libnssutil3.so
00738000 4K r--- /lib/libresolv-2.12.so
00739000 4K rw-- /lib/libresolv-2.12.so
0073a000 8K rw-- [ anon ]
00825000 120K r-x- /lib/ld-2.12.so
00843000 4K r--- /lib/ld-2.12.so
00844000 4K rw-- /lib/ld-2.12.so
0090d000 32K r-x- /lib/libwrap.so.0.7.6
00915000 4K rw-- /lib/libwrap.so.0.7.6
00948000 484K r-x- /usr/sbin/sshd
009c1000 8K rw-- /usr/sbin/sshd
009c3000 20K rw-- [ anon ]
009e0000 92K r-x- /lib/libpthread-2.12.so
009f7000 4K r--- /lib/libpthread-2.12.so
 
total 8232K

如本文对你有些许帮助,欢迎大佬加关注、评论、点赞,有关必回关

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花神庙码农

你的鼓励是我码字的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值