nice,renice,w,who,free,vmstat命令

Linux nice 和 renice命令:改变进程优先级

当Linux内核尝试决定哪些进程可以访问CPU时,其中一个需要考虑的因素就是进程优先级的值。每个进程都有一个介于 − 20 -20 20 19 19 19之间的nice值。默认情况下,进程nice值为0。

进程的nice值,可以通过nice命令和renice命令修改,进而调整进程的运行顺序。

在Linux系统中,表示进程优先级有两个参数,PRINI

kkk@kkk-ThinkPad-P52:~$ ps -le 
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 46300 -      ?        00:00:01 systemd
1 S     0     2     0  0  80   0 -     0 -      ?        00:00:00 kthreadd
1 I     0     4     2  0  60 -20 -     0 -      ?        00:00:00 kworker/0:0H
1 I     0     5     2  0  80   0 -     0 -      ?        00:00:00 kworker/u24:0
1 I     0     6     2  0  60 -20 -     0 -      ?        00:00:00 mm_percpu_wq
1 S     0     7     2  0  80   0 -     0 -      ?        00:00:00 ksoftirqd/0
1 I     0     8     2  0  80   0 -     0 -      ?        00:00:01 rcu_sched

这两个值都表示优先级,数值越小代表该进程优先级越高。PRI是由内核动态调整的,用户不能直接修改。所以我们只能通过修改NI的值来影响PRI的值,间接的调整进程优先级。

PRINI的关系如下:
P R I ( 最 终 值 ) = P R I ( 原 始 值 ) + N I PRI(最终值) = PRI(原始值) + NI PRI()=PRI+NI
修改NI值就可以改变进程的优先级。NI值越小,进程的PRI就会降低,该进程就越优先被CPU处理;反之,NI值越大,进程的PRI就会在呢国家,进程的优先级越低。

修改NI值时有几个注意事项。

  • NI的范围是-20~19
  • 普通用户调整NI值的范围是0~19,而且只能调整自己的进程。
  • 普通用户调高NI值,而不能降低。
  • 只有root用户才能设定NI值为负值,而且可以调整任何用户的进程。

nice 命令

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

nice命令格式如下:

kkk@kkk-ThinkPad-P52:~$ nice [-n NI值] 命令

-n NI值:给命令赋予NI值,该值的范围是 − 20 − 19 -20-19 2019

renice命令

renice可以在进程运行时修改其NI值,从而调整优先级。

renice命令格式如下

kkk@kkk-ThinkPad-P52:~$ renice [优先级] PID

注意,此命令中使用的是进程的PID号。

Linux w 和 who命令:查看登陆用户信息

Linux中,使用wwho命令都可以查看服务器上目前已登陆的用户信息,两者的区别在于,w命令除了能知道目前已登陆的用户信息,还可以知道每个用户执行任务的情况。

w命令的基本格式如下:

kkk@kkk-ThinkPad-P52:~$ w [选项][用户名]
选项含义
-h不显示输出信息的标题
-s用短格式输出,不显示登陆时间
-V显示版本信息

显示当前登陆信息

kkk@kkk-ThinkPad-P52:~$ w
 17:07:12 up  1:37,  1 user,  load average: 0.93, 0.74, 0.57
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
kkk      tty7     :0               15:30    1:36m  2:57   0.11s /sbin/upstart -

上面第一行的输出信息中,第一行其实和top命令的第一行非常类似,主要显示了当前的系统时间,系统从启动至今已经运行的时间,登陆到系统中的用户数和系统平均负载。

平均负载是指在1分钟,5分钟,15分钟内系统的负载状况。

从第二行开始,显示的是当前所有登陆系统的用户信息,第二行是用户信息的的各列标题,从第三行开始每行代表一个用户。这些标题的含义如下标所示。

标题含义
USER登陆到系统的用户。
TTY登陆终端。
FROM表示用户从哪里登陆进来,一般显示远程登陆主机的IP地址或者主机名。
LOGIN@用户登陆的日期和时间。
IDLE表示某个程序上次从终端开始执行到现在所持续的时间。
JCPU和该终端连接的所有进程占用的CPU运算时间。
PCPU当前进程所占用的CPU运算时间。
WHAT当前用户正在执行的进程名称和选项,换句话说,就是表示用户当前执行的是什么命令。

相比较w命令,who命令只能显示当前登陆的用户信息,但无法知道每个用户正在执行的命令。

who命令的基本格式如下:

kkk@kkk-ThinkPad-P52:~$ who [选项][file]

who命令默认是通过/var/run/utmp文件来获取登陆用户信息,但如果通过file指定另一个文件,则who命令将不在默认读取/var/run/utmp文件,而是读取该指定文件里获取信息。

有关who命令常用选项及含义,如下表所示。

选项含义
-a列出所有信息,相当于所有选项
-d打印出死亡进程
-H打印出表头
-l打印出系统登陆的进程
-q打印出登入的用户名和用户数
kkk@kkk-ThinkPad-P52:~$ who -s
kkk      tty7         2021-06-07 02:58 (:0)

Linux free命令:查看内存使用状态

free命令用来显示系统内存状态,包括系统物理内存,虚拟内存(swap交换分区),共享内存和系统缓存的使用情况。

free命令的基本格式如下:

kkk@kkk-ThinkPad-P52:~$ free [选项]

下表列出了此命令常用的选项以及各自的含义。

选项含义
-b以Byte(字节)为单位,显示内存使用情况
-k以KB为单位,显示内存使用情况
-m以MB为单位,显示内存使用情况
-g以GB为单位,显示内存使用情况
-s 间隔秒数根据指定的间隔时间,持续显示内存使用情况

例如

kkk@kkk-ThinkPad-P52:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          31818        1389       28451         332        1977       29616
Swap:          9765           0        9765

第一行显示的是各个列的列表头信息,各自的含义如下所示:

  • total是总内存数;
  • used是已经使用的内存数;
  • free是空闲的内存数;
  • shared是多个进程共享的内存总数;
  • buff是缓冲内存数;
  • cache是缓存内存数;

Mem一行指的是内存的使用情况;Swap一行指的就是swap分区的使用情况。

Linux vmstat命令:监控系统资源

如果你想动态的了解一下系统的使用状态,以及查看当前系统中到底是哪个环节最占用系统资源,就可以使用vmstat命令。

vmstat命令,是virtual memory statistics(虚拟内存统计)的缩写,可用来监控CPU使用,进程状态,内存使用,虚拟内存使用,硬盘输入/输出状态等信息。此命令的基本格式有如下2种。

kkk@kkk-ThinkPad-P52:~$ vmstat [-a][刷新延时 刷新次数]
kkk@kkk-ThinkPad-P52:~$ vmstat [选项]

-a的含义是用inact/active(活跃与否)来取代buff/cachebuff/cache的内存输出信息。除此之外,下表罗列出了vmstat命令的第二种基本格式中常用的选项及各自的含义。

选项含义
-S 单位令输出的数据显示单位
-d列出硬盘有关读写总量的统计表
-p 分区设备文件名查看硬盘分区的读写情况
-V输出该命令的版本信息
-n 秒数周期性的显示信息

输出信息中,各个字段的含义。

kkk@kkk-ThinkPad-P52:~$ vmstat -n 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 29392460  95444 1759756    0    0    84    29   81  374  2  1 96  1  0
 0  0      0 29392212  95452 1759700    0    0     0     9  217 1017  0  0 99  0  0
 0  0      0 29392336  95452 1759624    0    0     3     9  257 1101  0  0 99  0  0
 0  0      0 29338364  95452 1811120    0    0     0     1  774 6056  2  1 97  0  0
 2  0      0 29376076  95460 1772536    0    0     0    11  911 5177  3  1 96  0  0
字段含义
procs进程信息字段:
-r:等待的进程数,数量越大,系统越繁忙
-b:不可被唤醒的进程数量,数量越大,系统越繁忙
memory内存信息字段:
-swpd:虚拟内存的使用情况,单位为KB
-free:空闲的内存容量量,单位为KB
-buff:缓冲的内存容量,单位为KB
-cache:缓存的内存容量,单位为KB
swap交换分区信息字段
-si:从磁盘交换到内存的交换页数量,单位:KB/秒
-so:从内存交换到磁盘的交换页数量,单位:KB/秒
iobi:发送到块设备的块数,单位:块/秒
bo:从块设备接受到的块数,单位:块/秒
system-in:每秒被中断进程次数
-cs:每秒进行的事件切换次数
cpu-us:非内核进程消耗CPU运算时间的百分比
-sy:内核进程消耗CPU运算时间的百分比
-id:空闲CPU的百分比
-wa:等待I/O所消耗的CPU百分比
-st:被虚拟机所盗用的CPU百分比
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值