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

简介: 【Linux】【操作】Linux操作集锦系列之三——进程管理系列之(六)进程其他操作命令
  • 本系列文章,将整理一系列Linux环境下进程相关的操作命令,包括进程启动、kill、挂起、查看、前后台进程切换等各种命令。


  • 本文为本系列的第六篇,关注对进程的其他操作。



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
相关文章
|
2天前
|
缓存 监控 Linux
|
6天前
|
Linux Shell 数据安全/隐私保护
|
7天前
|
域名解析 网络协议 安全
|
14天前
|
监控 Linux Shell
|
13天前
|
运维 监控 网络协议
|
3天前
|
缓存 Linux 开发者
深入理解Linux命令 `autom4te`
`autom4te` 是 GNU Autotools 中不可或缺的组件,通过高效处理 M4 宏,生成配置脚本并提供强大的调试功能。了解 `autom4te` 的工作机制和常用选项,可以帮助开发者更好地编写和维护配置文件,从而提高软件项目的配置和编译效率。在实际应用中,结合 `autoconf` 等工具,`autom4te` 能够为项目的构建过程提供坚实的基础。
11 2
|
4天前
|
Linux 开发工具
linux文本管理命令
本文档介绍了Linux系统中常用的文本处理命令,包括`echo`、`cat`、`head`、`tail`、`wc`、`less`、`grep`以及重定向符号的使用方法和练习题。此外,还详细讲解了VIM编辑器的特点、工作模式、常用快捷键和高级技巧,帮助用户高效地进行文本编辑和处理。
20 4
|
4月前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
4月前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
147 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
3月前
|
算法 Linux 调度
探索进程调度:Linux内核中的完全公平调度器
【8月更文挑战第2天】在操作系统的心脏——内核中,进程调度算法扮演着至关重要的角色。本文将深入探讨Linux内核中的完全公平调度器(Completely Fair Scheduler, CFS),一个旨在提供公平时间分配给所有进程的调度器。我们将通过代码示例,理解CFS如何管理运行队列、选择下一个运行进程以及如何对实时负载进行响应。文章将揭示CFS的设计哲学,并展示其如何在现代多任务计算环境中实现高效的资源分配。