1. top命令
top命令是一个非常强大的Linux性能命令,通过该命令可以实时查看系统的运行状况。在终端中输入top命令后,会显示当前运行的进程以及它们的CPU和内存使用情况。
通过top命令,可以迅速了解系统的负载情况、CPU使用率、内存使用情况等。其中,负载情况用于衡量系统能力的指标之一,它表示系统当前正在运行的进程以及等待运行的进程数目。
top命令的输出信息包含很多字段,下面是一些常用的字段:
CPU%: 显示每个进程使用CPU的百分比。
MEM%: 显示每个进程占用内存的百分比。
TIME+: 显示每个进程已经占用的CPU时间。
COMMAND: 显示每个进程的命令名称。
top - 10:59:14 up 10 days, 21:40, 1 user, load average: 0.29, 0.31, 0.30
Tasks: 252 total, 1 running, 251 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.0 us, 1.0 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 16356856 total, 1265504 free, 8165200 used, 6936164 buff/cache
KiB Swap: 4194296 total, 4194296 free, 0 used. 7471264 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 225396 13552 9488 S 0.0 0.1 0:58.37 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.24 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 8:04.66 ksoftirqd/0
5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:+
1.1 top命令的使用方法
使用top命令非常简单,只需要在终端中输入top即可。默认情况下,top命令会按照CPU使用率进行排序,最消耗CPU的进程会显示在最上面。
在top命令的交互界面中,可以使用一些常用的快捷键来进行操作。例如:
k: 终止某个进程。
r: 重新调整进程的优先级。
1: 显示每个CPU核心的使用情况。
h: 显示帮助信息,包含更多快捷键的说明。
top命令可以帮助我们实时监控系统的运行情况,并找出消耗CPU和内存较多的进程,方便我们进行性能优化。
2. vmstat命令
vmstat命令用于显示虚拟内存统计信息,通过该命令可以查看系统的运行状态和性能指标。
vmstat命令的输出信息包括以下几个方面:
进程统计:显示系统的进程相关信息,包括运行中、等待中和睡眠中的进程数量。
内存统计:显示系统的内存使用情况,包括内存总量、空闲内存、缓冲区使用、缓存使用等。
虚拟内存统计:显示系统的虚拟内存使用情况,包括虚拟内存总量、活动的虚拟内存、非活动的虚拟内存等。
IO统计:显示系统的IO操作统计情况,包括块设备的读写情况以及软中断的数量。
CPU统计:显示系统的CPU使用情况,包括每个CPU核心的上下文切换次数、中断次数、用户态和内核态的CPU时间使用情况。
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 1265504 199756 23258836 0 0 0 3 532 887 2 1 97 0 0
2.1 vmstat命令的使用方法
使用vmstat命令非常简单,只需要在终端中输入vmstat即可。默认情况下,vmstat命令会以一秒为间隔进行统计并输出结果。
当然,我们可以通过指定参数来改变vmstat命令的行为。
-n: 设置vmstat命令的执行间隔,以秒为单位。
-a: 显示所有信息,包括进程统计、内存统计、虚拟内存统计、IO统计和CPU统计。
-d: 显示硬盘IO统计信息。
-s: 显示系统内存和虚拟内存的统计信息。
-w: 以宽输出模式显示结果。
vmstat命令可以帮助我们了解系统的运行状态和性能指标,对于性能优化和故障排查非常有帮助。
3. iostat命令
iostat命令用于显示CPU和IO设备的统计信息,通过该命令可以查看系统的IO性能。
iostat命令的输出信息包括以下几个方面:
CPU统计:显示每个CPU核心的用户态、内核态和空闲态时间百分比以及上下文切换次数和中断次数。
设备统计:显示每个IO设备的读写次数、读写扇区数、读写速度和平均响应时间。
时间统计:显示每个统计区间的开始和结束时间。
Linux 5.8.0-55-generic (ubuntu) 09/23/21 _x86_64_ (8 CPUs)
avg-cpu: %user %nice %system %iowait %steal %idle
3.30 0.05 1.95 0.00 0.10 94.61
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.03 0.38 0.09 3667049 888000
sdb 0.00 0.00 0.00 2397 0
3.1 iostat命令的使用方法
使用iostat命令非常简单,只需要在终端中输入iostat即可。默认情况下,iostat命令会以一秒为间隔进行统计并输出结果。
我们可以通过指定参数来改变iostat命令的行为。
-c: 显示CPU统计信息。
-d: 显示设备统计信息。
-t: 显示每个统计区间的开始和结束时间。
-x: 显示扩展的设备统计信息,包括平均响应时间和设备利用率等。
iostat命令可以帮助我们查看系统的IO性能,了解系统的IO设备是否存在瓶颈,对于性能优化和故障排查非常有帮助。
4. sar命令
sar命令是一个非常强大和全面的系统性能分析工具,通过该命令可以查看系统的各项性能指标。
sar命令的输出信息包括以下几个方面:
CPU统计:包括每个CPU核心的用户态、内核态和空闲态时间百分比以及上下文切换次数和中断次数。
内存统计:包括内存的使用和各种内存缓存的数据。
IO统计:包括块设备的读写速率和IO请求队列的长度。
网络统计:包括网络接口的吞吐量、丢包数和错误数。
进程统计:包括每个进程的CPU使用率、内存使用率和IO使用率。
负载统计:包括系统的负载情况和任务队列长度。
Linux 5.8.0-55-generic (ubuntu) 09/23/21 _x86_64_ (8 CPU)
12:00:00 AM CPU %user %nice %system %iowait %steal %idle
12:10:00 AM all 6.32 0.01 2.32 0.01 0.01 91.33
12:00:00 AM tps rtps wtps bread/s bwrtn/s
12:10:00 AM 1.55 0.01 1.54 0.21 39.28
12:00:00 AM DEV tps rd_sec/s wr_sec/s avgrq-sz avgqu-sz await svctm %util
12:10:00 AM sda 0.06 0.83 1.06 29.57 0.00 2.48 2.48 0.02
4.1 sar命令的使用方法
使用sar命令非常简单,只需要在终端中输入sar即可。默认情况下,sar命令会按照每个统计间隔时间为一行进行输出。
我们可以通过指定参数来改变sar命令的行为。
-u: 显示CPU统计信息。
-r: 显示内存统计信息。
-b: 显示IO统计信息。
-n DEV: 显示网络统计信息。
-p: 显示进程统计信息。
-q: 显示负载统计信息。
sar命令可以帮助我们全面分析系统的各项性能指标,对于性能优化和故障排查非常有帮助。