【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
相关文章
|
4天前
|
存储 网络协议 Linux
【Linux】进程IO|系统调用|open|write|文件描述符fd|封装|理解一切皆文件
本文详细介绍了Linux中的进程IO与系统调用,包括 `open`、`write`、`read`和 `close`函数及其用法,解释了文件描述符(fd)的概念,并深入探讨了Linux中的“一切皆文件”思想。这种设计极大地简化了系统编程,使得处理不同类型的IO设备变得更加一致和简单。通过本文的学习,您应该能够更好地理解和应用Linux中的进程IO操作,提高系统编程的效率和能力。
50 34
|
8天前
|
消息中间件 Linux C++
c++ linux通过实现独立进程之间的通信和传递字符串 demo
的进程间通信机制,适用于父子进程之间的数据传输。希望本文能帮助您更好地理解和应用Linux管道,提升开发效率。 在实际开发中,除了管道,还可以根据具体需求选择消息队列、共享内存、套接字等其他进程间通信方
39 16
|
1月前
|
消息中间件 Linux
Linux:进程间通信(共享内存详细讲解以及小项目使用和相关指令、消息队列、信号量)
通过上述讲解和代码示例,您可以理解和实现Linux系统中的进程间通信机制,包括共享内存、消息队列和信号量。这些机制在实际开发中非常重要,能够提高系统的并发处理能力和数据通信效率。希望本文能为您的学习和开发提供实用的指导和帮助。
117 20
|
2月前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
121 13
|
2月前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
Linux 开发工具
Linux_进程管理&计划任务
目录 目录 top打开Linux系统任务管理控制台 ps进程查询指令 kill进程关闭指令 一个小实验 一次性计划任务 周期性计划任务 top打开Linux系统任务管理控制台 快捷键: P M k q r ? > < 进程优先级设定: nice -n ...
956 0
|
Linux 安全 Shell
Linux进程管理(第二版) --计划任务
计划任务 一、一次性计划任务 at命令 #功能:安排一个/几个命令在指定时间(时刻)运行一次 1、at的命令格式及参数  at [-f 文件名] 时间 at -d 或者 atrm 删除队...
1044 0
|
7天前
|
Linux
Linux系统之whereis命令的基本使用
Linux系统之whereis命令的基本使用
50 23
Linux系统之whereis命令的基本使用
|
3月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
344 8
|
3月前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
1128 6