【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 : 显示版本信息    


相关文章
|
21天前
|
Unix Linux 程序员
Linux文本搜索工具grep命令使用指南
以上就是对Linux环境下强大工具 `grep` 的基础到进阶功能介绍。它不仅能够执行简单文字查询任务还能够处理复杂文字处理任务,并且支持强大而灵活地正则表达规范来增加查询精度与效率。无论您是程序员、数据分析师还是系统管理员,在日常工作中熟练运用该命令都将极大提升您处理和分析数据效率。
90 16
|
13天前
|
Linux
linux命令—stat
`stat` 是 Linux 系统中用于查看文件或文件系统详细状态信息的命令。相比 `ls -l`,它提供更全面的信息,包括文件大小、权限、所有者、时间戳(最后访问、修改、状态变更时间)、inode 号、设备信息等。其常用选项包括 `-f` 查看文件系统状态、`-t` 以简洁格式输出、`-L` 跟踪符号链接,以及 `-c` 或 `--format` 自定义输出格式。通过这些选项,用户可以灵活获取所需信息,适用于系统调试、权限检查、磁盘管理等场景。
|
2月前
|
监控 Linux 网络安全
Linux命令大全:从入门到精通
日常使用的linux命令整理
660 13
|
3月前
|
Linux 网络安全 数据安全/隐私保护
使用Linux系统的mount命令挂载远程服务器的文件夹。
如此一来,你就完成了一次从你的Linux发车站到远程服务器文件夹的有趣旅行。在这个技术之旅中,你既探索了新地方,也学到了如何桥接不同系统之间的距离。
538 21
|
3月前
|
JSON 自然语言处理 Linux
linux命令—tree
tree是一款强大的Linux命令行工具,用于以树状结构递归展示目录和文件,直观呈现层级关系。支持多种功能,如过滤、排序、权限显示及格式化输出等。安装方法因系统而异常用场景包括:基础用法(显示当前或指定目录结构)、核心参数应用(如层级控制-L、隐藏文件显示-a、完整路径输出-f)以及进阶操作(如磁盘空间分析--du、结合grep过滤内容、生成JSON格式列表-J等)。此外,还可生成网站目录结构图并导出为HTML文件。注意事项:使用Tab键补全路径避免错误;超大目录建议限制遍历层数;脚本中推荐禁用统计信息以优化性能。更多详情可查阅手册mantree。
linux命令—tree
|
1月前
|
Linux 网络安全 开发工具
技术栈:这50条最常用的 Linux 命令你一定要会!
建议多在终端中实践,遇到不懂的命令就用 man 或 --help 了解详情!
385 0
|
3月前
|
监控 Linux
Linux系统中使用df命令详解磁盘使用情况。
`df`命令是Linux系统管理员和用户监控和管理磁盘空间使用的重要工具。掌握它的基本使用方法和选项可以帮助在必要时分析和解决空间相关问题。简洁但功能丰富,`df`命令确保了用户可以快速有效地识别和管理文件系统的空间使用情况。
253 13
|
1月前
|
安全 Linux Shell
Linux系统中sudo命令的高效运用技巧。
用户可以通过sudo -l来列出自己目前可执行的命令列表,这有助于用户了解自己的权限范围。
113 0
|
1月前
|
监控 Linux Shell
linux命令
常用 Linux 命令汇总
|
3月前
|
Unix Linux
linux命令—cd
`cd` 命令是 Linux/Unix 系统中用于切换工作目录的基础命令。支持相对路径与绝对路径,常用选项如 `-L` 和 `-P` 分别处理符号链接的逻辑与物理路径。实际操作中,可通过 `cd ..` 返回上级目录、`cd ~` 回到家目录,或利用 `cd -` 在最近两个目录间快速切换。结合 Tab 补全和 `pwd` 查看当前路径,能显著提升效率。此外,需注意特殊字符路径的正确引用及脚本中绝对路径的优先使用。