【Linux进阶篇】系统监控命令

简介: 【Linux进阶篇】系统监控命令

proc文件系统

       proc文件系统是一种无存储的文件系统,当读其中的文件时,其内容动态生成,当写文件时,文件所关联的写函数被调用。内核部件可以通过该文件系统向用户空间提供接口来提供查询信息、修改软件行为,因而它是一种比较重要的特殊文件系统。

       大致包含了如下信息: 内存管理 每个进程的相关信息 文件系统 设备驱动程序 系统总线 电源管理 终端 系统控制参数 网络 整个Linux系统相关的参数如下 /proc/cmdline 加载kernel时的相关指令与参数 /proc/cpuinfo CPU相关信息,包含频率、类型与运算功能 /proc/devices 记录了系统各个主要设备的主设备号码 /proc/filesystems 记录系统加载的文件系统 /proc/loadavg 平均负载值 top看到就是这个 /proc/meminfo 内存信息,free命令看到就是这个 /proc/modules 系统已经加载的模块 /proc/mounts 系统已经挂载的数据 mount看到就是这个数据 /proc/partitions 系统的分区文件 /proc/version 系统的核心版本 uname -a看到的内容

常见系统监视命令

uptime

打印系统总共运行了多长时间和系统的平均负载

1. [root@bj-1 ~]# uptime
2.  13:18:44 up 10 min,  3 users,  load average: 2.24, 1.07, 0.64

系统时间 开机时长 登录用户数 系统在过去的1分钟、5分钟和15分钟内的平均负载

free -h

可以显示当前系统未使用的和已使用的内存数目,还可以显示被内核使用的内存缓冲区

1. [root@bj-1 ~]# free -h
2.               total        used        free      shared  buff/cache   available
3. Mem:           972M        732M         69M         22M        170M         76M
4. Swap:          2.0G        347M        1.7G

       案例:计算内存使用率 MUG=$(expr $(free | grep "Mem" | awk '{print $3}') * 100 / $(free | grep "Mem:" | awk '{print $2}'))

vmstat

       Linux/Unix监控工具,含义为显示虚拟内存状态(“VirtualMemory Statistics”),但也可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。

       参数:

-V:显示vmstat版本信息

-n:只在开始时显示一次各字段名称

-a:显示活跃和非活跃内存

-d:显示各个磁盘相关统计信息

-D:显示磁盘总体信息

-p:显示指定磁盘分区统计信息

-s:显示内存相关统计信息及多种系统活动数量

-m:显示slabinfo

-t:在输出信息的时候也将时间一并输出出来

-S:使用指定单位显示。参数有k、K、m、M,默认单位为K delay:刷新时间间隔。如果不指定,只显示一条结果 count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷

显示信息:

1. [root@bj-1 ~]# vmstat
2. procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
3.  r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
4.  3  0 358912  60308     36 191212   53  549 12219  3778  740  992  6 11 83  1  0

解释:

1. procs

r:表示运行和等待CPU时间片的进程数(就是说多少个进程真的分配到CPU),这个值如果长期大于系统CPU个数,说明CPU不足,需要增加CPU

b:表示在等待资源的进程数,比如正在等待I/O或者内存交换等。

2. memory

swpd:表示切换到内存交换区的内存大小,即虚拟内存已使用的大小(单位KB),如果大于0,表示你的机器物理内存不足了,如果不是程序内存泄露的原因,那么你该升级内存了或者把耗内存的任务迁移到其他机器。

free:表示当前空闲的物理内存

buff:表示buffers cached内存大小,也就是缓冲大小,一般对块设备的读写才需要缓冲

cache:表示page cached的内存大小,也就是缓存大小,一般作为文件系统进行缓冲,频繁访问的文件都会被缓存,如果cache值非常大说明缓存文件比较多,如果此时io中的bi比较小,说明文件系统效率比较好

3. swap

si:表示从磁盘调入内存,也就是内存进入内存交换区的内存大小;通俗的讲就是 每秒从磁盘读入虚拟内存的大小,如果这个值大于0,表示物理内存不够用或者内存泄露了,要查找耗内存进程解决掉。

so:表示由内存进入磁盘,也就是由内存交换区进入内存的内存大小。注意:一般情况下si、so的值都为0,如果si、so的值长期不为0,则说明系统内存不足,需要增加系统内存

4. io

bi:表示从块设备每秒读取的块数量

bo:表示每秒写到块设备的块数量 注意:如果bi+bo的值过大,且wa值较大,则表示系统磁盘IO瓶颈

5. system

in: 表示每秒的中断数,包括时钟

cs:表示每秒产生的上下文切换次数,例如我们调用系统函数,就要进行上下文切换,线程的切换,也要进程上下文切换,这个值要越小越好,太大了,要考虑调低线程或者进程的数目,例如在apache和nginx这种web服务器中,我们一般做性能测试时会进行几千并发甚至几万并发的测试,选择web服务器的进程可以由进程或者线程的峰值一直下调,压测,直到cs到一个比较小的值,这个进程和线程数就是比较合适的值了。系统调用也是,每次调用系统函数,我们的代码就会进入内核空间,导致上下文切换,这个是很耗资源,也要尽量避免频繁调用系统函数。上下文切换次数过多表示你的CPU大部分浪费在上下文切换,导致CPU干正经事的时间少了,CPU没有充分利用,是不可取的。 注意: 这两个值越大,则由内核消耗的CPU就越多

6. CPU

us:表示用户进程消耗的CPU时间百分比,us值越高,说明用户进程消耗CPU时间越多,如果长期大于50%,则需要考虑优化程序或者算法

sy:表示系统内核进程消耗的CPU时间百分比,一般来说us+sy应该小于80%,如果大于80%,说明可能存在CPU瓶颈

id:表示CPU处在空间状态的时间百分比

wa:表示IP等待所占用的CPU时间百分比,wa值越高,说明I/O等待越严重,根据经验wa的参考值为20%,如果超过20%,说明I/O等待严重,引起I/O等待的原因可能是磁盘大量随机读写造成的,也可能是磁盘或者监控器的贷款瓶颈(主要是块操作)造成的综上所述,如果评估CPU,需要重点关注procs项的r列值和CPU的us、sy、wa列的值

7. 日常用法

每隔2秒,查询2次

[root@bj-1 ~]# vmstat -SM 2 2

mpstat

       Multiprocessor Statistics,是实时系统监控工具。其报告与CPU的一些统计信息,这些信息存放在/proc/stat文件中。在多CPUs系统里,其不但能查看所有CPU的平均状况信息,而且能够查看特定CPU的信息。 mpstat最大的特点是:可以查看多核心cpu中每个计算核心的统计数据;而vmstat只能查看系统整体cpu情况。

[root@bj-1 ~]# yum -y install sysstat               #安装所需服务

参数详解:

%user 在internal时间段里,用户态的CPU时间(%),不包含nice值为负进程 (usr/total)*100

%nice 在internal时间段里,nice值为负进程的CPU时间(%) (nice/total)*100

%sys 在internal时间段里,内核时间(%) (system/total)*100

%iowait 在internal时间段里,硬盘IO等待时间(%) (iowait/total)*100

%irq 在internal时间段里,硬中断时间(%) (irq/total)*100

%soft 在internal时间段里,软中断时间(%) (softirq/total)*100

%idle 在internal时间段里,CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%) (idle/total)*100

日常用法

1. [root@bj-1 ~]# mpstat 2 5               #每两秒查看一次,共查看五次
2. [root@bj-1 ~]# mpstat -P ALL 2 3        #查看每个cpu核心的详细运行状态信息

iostat

       监视系统输入输出设备和CPU的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。iostat弱点就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分析。能查看到系统IO状态信息,从而确定IO性能是否存在瓶颈。

-c:仅显示CPU使用情况;

-d:仅显示设备利用率;

-k:显示状态以千字节每秒为单位,而不使用块每秒;

-m:显示状态以兆字节每秒为单位;

-p:仅显示块设备和所有被使用的其他分区的状态;

-t:显示每个报告产生时的时间;

-V:显示版号并退出;

-x:显示扩展状态。

1. [root@bj-1 ~]# iostat
2. Linux 3.10.0-1160.el7.x86_64 (bj-1)     2023年03月16日     _x86_64_    (1 CPU)
3. 
4. avg-cpu:  %user   %nice %system %iowait  %steal   %idle
5.            2.70    2.79   11.28    0.68    0.00   82.56
6. 
7. Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
8. sda             373.30     12018.09      4369.39   13510013    4911801
9. scd0              0.06         1.89         0.00       2120          0
10. dm-0            368.36     11957.46      3939.06   13441854    4428057
11. dm-1            119.60        51.58       428.48      57984     481676

       详细说明: 第一行是系统信息和监测时间 第二行和第三行显示CPU使用情况(具体内容和mpstat命令相同) 第四行: Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn sda 373.30 12018.09 4369.39 13510013 4911801

tps:该设备每秒的传输次数 kB_read/s:每秒从设备(drive expressed)读取的数据量; kB_wrtn/s:每秒向设备(drive expressed)写入的数据量; kB_read:读取的总数据量; kB_wrtn:写入的总数量数据量;

sar

(System Activity Reporter 系统活动情况报告)是目前 Linux上最为全面的系统性能分析工具之一,可以从多方面对系统的活动进行报告,包括:文件的读写情况、系统调用的使用情况、磁盘I/O、CPU效率、内存使用状况、进程活动及IPC有关的活动等。

t为采样间隔,n为采样次数,默认值是1;

-o file表示将命令结果以二进制格式存放在文件中,file 是文件名。

options 为命令行选项,sar命令常用选项如下:

-A:所有报告的总和

-u:输出CPU使用情况的统计信息

-v:输出inode、文件和其他内核表的统计信息

-d:输出每一个块设备的活动信息

-r:输出内存和交换空间的统计信息

-b:显示I/O和传送速率的统计信息

-a:文件读写情况

-c:输出进程统计信息,每秒创建的进程数

-R:输出内存页面的统计信息

-y:终端设备活动情况

-w:输出系统交换活动信息


实例

1. CPU资源监控 每2秒采样一次,连续采样3次,观察CPU 的使用情况,结果保存到test文件(二进制)

1. [root@bj-1 ~]# sar -u -o test 2 3
2. 13时32分05秒     CPU     %user     %nice   %system   %iowait    %steal     %idle

CPU:all 表示统计信息为所有 CPU 的平均值。

%user:显示在用户级别(application)运行使用 CPU 总时间的百分比。

%nice:显示在用户级别,用于nice操作,所占用 CPU 总时间的百分比。

%system:在核心级别(kernel)运行所使用 CPU 总时间的百分比。

%iowait:显示用于等待I/O操作占用 CPU 总时间的百分比。

%steal:管理程序(hypervisor)为另一个虚拟进程提供服务而等待虚拟CPU 的百分比。

%idle:显示 CPU 空闲时间占用 CPU 总时间的百分比。

       注: %iowait 的值过高,表示硬盘存在I/O瓶颈 %idle 的值高但系统响应慢时,有可能是 CPU 等待分配内存,此时应加大内存容量 %idle 的值持续低于1,则系统的CPU处理能力相对较低,表明系统中最需要解决的资源是CPU

[root@bj-1 ~]# sar -u -f test           #查看二进制文件内容

2. inode、文件和其他内核表监控 每10秒采样一次,连续采样3次,观察核心表的状态

1. [root@bj-1 ~]# sar -v 10 3
2. Linux 3.10.0-1160.el7.x86_64 (bj-1)     2023年03月16日     _x86_64_  (1 CPU)
3. 
4. 13时44分11秒 dentunusd   file-nr  inode-nr    pty-nr
5. 13时44分21秒      5220     10240     25024         2
6. 13时44分31秒      5228     10240     25032         2
7. 13时44分41秒      5228     10240     25032         2
8. 平均时间:      5225     10240     25029         2

dentunusd:目录高速缓存中未被使用的条目数量

file-nr:文件句柄(file handle)的使用数量

inode-nr:索引节点句柄(inode handle)的使用数量

pty-nr:使用的pty数量


3. 内存和交换空间监控 每10秒采样一次,连续采样3次,监控内存分页

1. [root@bj-1 ~]# sar -r 10 3
2. Linux 3.10.0-1160.el7.x86_64 (bj-1)     2023年03月16日     _x86_64_  (1 CPU)
3. 
4. 13时45分02秒 kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
5. 13时45分12秒    277152    718520     72.16        36    269304   4104504    132.71    117236    336336         4
6. 13时45分22秒    277148    718524     72.16        36    269304   4104504    132.71    117240    336336         4
7. 13时45分32秒    276776    718896     72.20        36    269304   4104464    132.71    117240    336336         0
8. 平均时间:    277025    718647     72.18        36    269304   4104491    132.71    117239    336336         3

kbmemfree:这个值和free命令中的free值基本一致,所以它不包括buffer和cache的空间.

kbmemused:这个值和free命令中的used值基本一致,所以它包括buffer和cache的空间.

%memused:这个值是kbmemused和内存总量(不包括swap)的一个百分比.

kbbuffers和kbcached:这两个值就是free命令中的buffer和cache.

kbcommit:保证当前系统所需要的内存,即为了确保不溢出而需要的内存(RAM+swap).

%commit:这个值是kbcommit与内存总量(包括swap)的一个百分比.

kbactive: 活跃内存(经常使用不回收的内存,只有在必须被需要时回收)

kbinact: 不活跃内存(最近不经常使用, 更有可能回收给其他进程使用)

kbdirty: 等待被写会硬盘的内存

4. 内存分页监控 每10秒采样一次,连续采样3次,监控内存分页:

1. [root@bj-1 ~]# sar -B 10 3
2. Linux 3.10.0-1160.el7.x86_64 (bj-1)     2023年03月16日     _x86_64_  (1 CPU)
3. 
4. 13时47分19秒  pgpgin/s pgpgout/s   fault/s  majflt/s  pgfree/s pgscank/s pgscand/s pgsteal/s    %vmeff
5. 13时47分29秒      0.00      0.91    278.30      0.00    108.38      0.00      0.00      0.00      0.00
6. 13时47分39秒      0.00      0.00      2.92      0.00      4.53      0.00      0.00      0.00      0.00
7. 13时47分49秒      0.00      0.00      2.32      0.00      6.15      0.00      0.00      0.00      0.00
8. 平均时间:      0.00      0.30     94.42      0.00     39.65      0.00      0.00      0.00      0.00

pgpgin/s:表示每秒从磁盘或SWAP置换到内存的字节数(KB)

pgpgout/s:表示每秒从内存置换到磁盘或SWAP的字节数(KB)

fault/s:每秒钟系统产生的缺页数,即主缺页与次缺页之和(major +minor)

majflt/s:每秒钟产生的主缺页数.

pgfree/s:每秒被放入空闲队列中的页个数

pgscank/s:每秒被kswapd扫描的页个数

pgscand/s:每秒直接被扫描的页个数

pgsteal/s:每秒钟从cache中被清除来满足内存需要的页个数

%vmeff:每秒清除的页(pgsteal)占总扫描页(pgscank+pgscand)的百分比


5. I/O和传送速率监控 每10秒采样一次,连续采样3次,报告缓冲区的使用情况

1. [root@bj-1 ~]# sar -b 10 3
2. Linux 3.10.0-1160.el7.x86_64 (bj-1)     2023年03月16日     _x86_64_  (1 CPU)
3. 
4. 13时52分00秒       tps      rtps      wtps   bread/s   bwrtn/s
5. 13时52分10秒      0.00      0.00      0.00      0.00      0.00
6. 13时52分20秒      0.00      0.00      0.00      0.00      0.00
7. 13时52分30秒      0.20      0.00      0.20      0.00      1.01
8. 平均时间:      0.07      0.00      0.07      0.00      0.34

tps:每秒钟物理设备的 I/O 传输总量

rtps:每秒钟从物理设备读入的数据总量

wtps:每秒钟向物理设备写入的数据总量

bread/s:每秒钟从物理设备读入的数据量,单位为 块/s

bwrtn/s:每秒钟向物理设备写入的数据量,单位为 块/s


6. 进程队列长度和平均负载状态监控 每10秒采样一次,连续采样3次,监控进程队列长度和平均负载状态:

1. [root@bj-1 ~]# sar -q 10 3
2. Linux 3.10.0-1160.el7.x86_64 (bj-1)     2023年03月16日     _x86_64_  (1 CPU)
3. 
4. 13时53分37秒   runq-sz  plist-sz   ldavg-1   ldavg-5  ldavg-15   blocked
5. 13时53分47秒         1       485      0.00      0.03      0.15         0
6. 13时53分57秒         0       485      0.00      0.03      0.15         0
7. 13时54分07秒         1       485      0.00      0.02      0.15         0
8. 平均时间:         1       485      0.00      0.03      0.15         0

runq-sz:运行队列的长度(等待运行的进程数)

plist-sz:进程列表中进程(processes)和线程(threads)的数量

ldavg-1:最后1分钟的系统平均负载(System load average)

ldavg-5:过去5分钟的系统平均负载

ldavg-15:过去15分钟的系统平均负载


7. 系统交换活动信息监控 每10秒采样一次,连续采样3次,监控系统交换活动信息:

1. [root@bj-1 ~]# sar -W 10 3
2. Linux 3.10.0-1160.el7.x86_64 (bj-1)     2023年03月16日     _x86_64_  (1 CPU)
3. 
4. 13时54分40秒  pswpin/s pswpout/s
5. 13时54分50秒      0.00      0.00
6. 13时55分00秒      0.00      0.00
7. 13时55分10秒      0.00      0.00
8. 平均时间:      0.00      0.00

pswpin/s:每秒系统换入的交换页面(swap page)数量

pswpout/s:每秒系统换出的交换页面(swap page)数量

8. 设备使用情况监控 每10秒采样一次,连续采样3次,报告设备使用情况,需键入如下命令:

1. [root@bj-1 ~]# sar -d 10 3 -p
2. Linux 3.10.0-1160.el7.x86_64 (bj-1)     2023年03月16日     _x86_64_  (1 CPU)
3. 
4. 13时55分35秒       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
5. 13时55分45秒       sda      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
6. 13时55分45秒       sr0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
7. 13时55分45秒 centos-root      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
8. 13时55分45秒 centos-swap      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
9. #省略部分内容

参数-p可以打印出sda,hdc等磁盘设备名称,如果不用参数-p,设备节点则有可能是dev8-0,dev22-0

tps:每秒从物理磁盘I/O的次数.多个逻辑请求会被合并为一个I/O磁盘请求,一次传输的大小是不确定的.

rd_sec/s:每秒读扇区的次数.

wr_sec/s:每秒写扇区的次数.

avgrq-sz:平均每次设备I/O操作的数据大小(扇区).

avgqu-sz:磁盘请求队列的平均长度.

await:从请求磁盘操作到系统完成处理,每次请求的平均消耗时间,包括请求队列等待时间,单位是毫秒(1秒=1000毫秒).

svctm:系统处理每次请求的平均时间,不包括在请求队列中消耗的时间.

%util:I/O请求占CPU的百分比,比率越大,说明越饱和.


       注意: avgqu-sz 的值较低时,设备的利用率较高。 当%util的值接近 1 时,表示设备带宽已经占满。 总结: 要判断系统瓶颈问题,有时需几个 sar 命令选项结合起来 怀疑CPU存在瓶颈,可用 sar -u 和 sar -q 等来查看 怀疑内存存在瓶颈,可用 sar -B、sar -r 和 sar -W 等来查看 怀疑I/O存在瓶颈,可用 sar -b、sar -u 和 sar -d 等来查看

iotop

用来监视磁盘I/O使用状况的top类工具,实时观察磁盘io情况,可以观察到哪个进程占用I/O

[root@bj-1 ~]# yum install iotop

iotop 参数:

[root@bj-1 ~]# iotop

-o:只显示有io操作的进程

-b:批量显示,无交互,主要用作记录到文件。

-n NUM:显示NUM次,主要用于非交互式模式。

-d SEC:间隔SEC秒显示一次。

-p PID:监控的进程pid。

-u USER:监控的进程用户。

iotop常用快捷键:

(1)左右箭头:改变排序方式,默认是按IO排序。

(2) r:改变排序顺序。

(3) o:只显示有IO输出的进程。

(4) p:进程/线程的显示方式的切换。

(5) a:显示累积使用量。

(6) q:退出


htop

       Htop类似于top命令,但可以让你在垂直和水平方向上滚动,所以你可以看到系统上所有运行的进程,以及它们完整的命令行。可以不输入进程的PID就可以对此进程进行相关的操作(kill)。Htop是Linux系统中的一个互动的进程查看器,一个文本模式的应用程序(在控制台orX终端中),需要ncurses。与Linux传统的top相比,htop更加人性化。它可以让用户交互式操作,支持颜色主题,可横向或者纵向滚动浏览进程列表,并支持鼠标操作。

与top相比,htop有以下优点: 可以横向或纵向滚动浏览进程列表,以便看到所有的进程和完整命令行; 在启动时,比top要快; 杀进程时不需要输入进程号; htop支持鼠标操作;

1. wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
2. yum -y install htop

htop

区域1:CPU使用率、内存以及交换空间使用率;

区域2:1/5/15分钟的平均负载以及开机时间等;

区域3:当前系统中运行的进程;

区域4:功能键;

在区域3中,代表当前系统中运行的进程。各项说明如下:

1.PID:进程标志号,是非零正整数

2.USER:进程所有者的用户名

3.PR:进程的优先级别

4.NI:进程的优先级别数值

5.VIRT:进程占用的虚拟内存值

6.RES:进程占用的物理内存值

7.SHR:进程使用的共享内存值

8.S:进程的状态,其中S代表休眠,R代表正在运行,Z表示僵死状态,N代表该进程优先级是负数

9.%CPU:该进程占用的cpu使用率

10.%MEM:该进程占用的物理内存和总内存的百分比

11.TIME+:该进程启动后占用的总的CPU时间

12.COMMAND:进程启动的启动命令名称

-C --no-color        使用一个单色的配色方案

-d --delay=DELAY     设置延迟更新时间,单位秒

-h --help           显示htop 命令帮助信息

-u --user=USERNAME    只显示一个给定的用户的过程

-p --pid=PID,PID…       只显示给定的PIDs

-s --sort-key COLUMN     依此列来排序

-v –version          显示版本信息


       交互式命令(INTERACTIVE COMMANDS) 上下键或PgUP, PgDn 选定想要的进程,左右键或Home, End 移动字段,当然也可以直接用鼠标选定进程;

Space    标记/取消标记一个进程。命令可以作用于多个进程,例如 "kill",将应用于所有已标记的进程 U    取消标记所有进程 s    选择某一进程,按s:用strace追踪进程的系统调用 l    显示进程打开的文件: 如果安装了lsof,按此键可以显示进程所打开的文件 I    倒转排序顺序,如果排序是正序的,则反转成倒序的,反之亦然 +, -    When in tree view mode, expand or collapse subtree. When a subtree is collapsed a "+" sign shows to the left of the process name. a (在有多处理器的机器上)    设置 CPU affinity: 标记一个进程允许使用哪些CPU u    显示特定用户进程 M    按Memory 使用排序 P    按CPU 使用排序 T    按Time+ 使用排序 F    跟踪进程: 如果排序顺序引起选定的进程在列表上到处移动,让选定条跟随该进程。这对监视一个进程非常有用:通过这种方式,你可以让一个进程在屏幕上一直可见。使用方向键会停止该功能。 K    显示/隐藏内核线程 H    显示/隐藏用户线程 Ctrl-L    刷新 Numbers    PID 查找: 输入PID,光标将移动到相应的进程上

F1  帮助

F2  设定

F3  搜索

F4  过滤

F5  显示树形结构,类似pstree

F6  选择排序方式

F7  调低nice值

F8  调高nice值

F9  杀死进程

q   退出


glances

       glances是一个基于python语言开发,可以为linux或者UNIX性能提供监视和分析性能数据的功能。  glances在用户的终端上显示重要的系统信息,并动态的进行更新,让管理员实时掌握系统资源的使用情况,而动态监控并不会消耗大量的系统资源,比如CPU资源,通常消耗小于2%,glances默认每两秒更新一次数据。同时glances还可以将相同的数据捕获到一个文件,便于以后对报告进行分析和图形绘制,支持的文件格式有.csv电子表格格式和和html格式。

glances可以分析系统的:

CPU使用率

内存使用率

内核统计信息和运行队列信息

磁盘I/O速度、传输和读/写比率

磁盘适配器

网络I/O速度、传输和读/写比率

页面监控

进程监控-消耗资源最多的进程

计算机信息和系统资源


1. 安装

[root@bj-1 ~]# yum -y install glances

       glances 工作界面的说明 : 在图 的上部是 CPU 、Load(负载)、Mem(内存使用)、 Swap(交换分区)的使用情况。 在图的中上部是网络接口、Processes(进程)的使用情况。 通常包括如下字段:

%CPU:该进程占用的 CPU 使用率

%MEM:该进程占用的物理内存和总内存的百分比

VIRT: 虚拟内存大小

RES: 进程占用的物理内存值

PID: 进程 ID 号

USER: 进程所有者的用户名

NI: 进程优先级

S: 进程状态,其中 S 表示休眠,R 表示正在运行,Z 表示僵死状态。

TIME+: 该进程启动后占用的总的 CPU 时间

IO_R 和 IO_W: 进程的读写 I/O 速率

Command: 进程名称

       在上图的左侧是网络、磁盘IO、磁盘分区使用情况。 另外 glances 可以使用交互式的方式运行该工具,用户可以使用如下快捷键:

h : 显示帮助信息

q : 离开程序退出

c :按照 CPU 实时负载对系统进程进行排序

m :按照内存使用状况对系统进程排序

i:按照 I/O 使用状况对系统进程排序

p: 按照进程名称排序

d : 显示磁盘读写状况

w : 删除日志文件

l :显示日志

s: 显示传感器信息

f : 显示系统信息

1 :轮流显示每个 CPU 内核的使用情况(次选项仅仅使用在多核 CPU 系统)

2. glances 使用方法

glances 是一个命令行工具包括如下命令选项:

-b:显示网络连接速度 Byte/ 秒

-B @IP|host :绑定服务器端 IP 地址或者主机名称

-c @IP|host:连接 glances 服务器端

-C file:设置配置文件默认是 /etc/glances/glances.conf

-d:关闭磁盘 I/O 模块

-e:显示传感器温度

-f file:设置输出文件(格式是 HTML 或者 CSV)

-m:关闭挂载的磁盘模块

-n:关闭网络模块

-p PORT:设置运行端口默认是 61209

-P password:设置客户端 / 服务器密码

-s:设置 glances 运行模式为服务器

-t sec:设置屏幕刷新的时间间隔,单位为秒,默认值为 2 秒,数值许可范围:1~32767

-h : 显示帮助信息

-v : 显示版本信息    


相关文章
|
19天前
|
Web App开发 Linux 网络安全
工作中常用到的Linux命令
工作中常用到的Linux命令
|
6天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
16天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
36 9
|
3天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
3天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
4天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
4天前
|
Linux
【Linux】常用命令
【Linux】常用命令
24 0
|
4天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
17 0
Linux 网络操作命令Telnet
|
5天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
30 0
|
5天前
|
Linux 开发工具 数据安全/隐私保护
Linux(19)常用解压命令记录
Linux(19)常用解压命令记录
9 0