linux系统基础性能工具

介绍

uptime—简单查看基本时间和负载

uptime 通过一行信息显示:当前的时间,系统启动执行时长,有几个用户登录,系统(1、5、15分钟内)平均负载。

系统负载是处于可运行runnable或不可中断uninterruptable状态的进程的平均数。可运行状态的进程要么正在使用 CPU 要么在等待使用 CPU。 不可中断状态的进程则正在等待某些 I/O 访问,例如等待磁盘 IO。负载均值的意义根据系统中 CPU 的数量不同而不同,负载为 1 对于一个只有单 CPU 的系统来说意味着负载满了,而对于一个拥有 4 CPU 的系统来说则意味着 75% 的时间里都是空闲的。

root@ubuntu:~# uptime
 08:58:46 up 8 days,  1:05,  4 users,  load average: 0.01, 0.02, 0.00

top—实时系统进程状态监控

它显示出 CPU 的使用、内存的使用、交换内存、缓存大小、缓冲区大小、过程控制、用户和更多命令。它也会显示内存和 CPU 使用率过高的正在运行的进程,含义说明如下:

//    当前时间      系统已经运行时间  当前用户数量   平均负载(类似timeup,相应最近5、10和15分钟内的平均负载)
top - 02:06:23 up 7 days, 16:29,  4 users,  load average: 0.00, 0.00, 0.00
//     总任务数量     运行任务数量   休眠任务数量    停止任务数量   僵尸进程数量
Tasks: 238 total,   1 running, 237 sleeping,   0 stopped,   0 zombie
// CPU占比 用户空间  内核空间    nice进程  idle空闲  io等待   硬件中断  软件中断  
%Cpu(s):  5.4 us,  3.0 sy,  0.0 ni, 91.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
// 内存使用率   物理内存总量    使用中的内存总量   空闲内存总     缓存的内存量       
KiB Mem:   2029920 total,  1678308 used,   351612 free,    82656 buffers
// swap交换分区 交换区总量      使用的交换区总量  空闲交换区总量   缓冲的交换区总量
KiB Swap:  1023996 total,    11152 used,  1012844 free.   841576 cached Mem
// 各进程状态
// PID 用户名 调度优先级 nice值 虚拟内存 驻留内存 共享内存 进程的状态 CPU占比 内存占比 全部CPU时间 命令       
   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                         
  2327 wwyy      20   0 1151116  97384  45476 S  6.0  4.8   5:18.25 compiz      
  1118 root      20   0  389644  65580  27148 S  2.3  3.2   2:21.71 Xorg        
  2546 wwyy      20   0  662264  34004  23120 S  1.0  1.7   0:58.32 gnome-terminal       
     1 root      20   0   33920   4144   2676 S  0.0  0.2   0:01.38 init           
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.01 kthreadd        
     3 root      20   0       0      0      0 S  0.0  0.0   0:01.03 ksoftirqd/0      
     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H    
     7 root      20   0       0      0      0 S  0.0  0.0   0:04.98 rcu_sched      
     8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh     

常用选项参数:
‘d’ - Delay time 3.0 seconds // 指定刷新间隔时间
‘p’ - PID monitoring Off (show all processes) // 指定pid进程信息
‘i’ - Idle tasks On (show all tasks) // 显示僵尸进程
‘c’ - Command line Off (name, not cmdlin // 显示命令行而非命令名称

ps—查看当前系统进程信息快照

ps用于显示一段进程的信息瞬间快照,ps命令时,如果不采用任何的可选项,则其显示的信息是非常有限的,而且往往只显示当前用户所运行的程序。支持多种命令选项:UNIX、BSD、CNU方式;
可用选项: -u 指定用户 -a 全部用户 -p 指定pid

常见的用方法举例如下:
查看系统上全部进程信息 ps aux

root@ubuntu:~# ps axu // a 显示中端下包括其他用户全部程序 x 不以终端机来区分 u 以用户为主格式显示程序状态
//用户名     PID cpu合内存占用 虚存size 实际内存 终端 进程的状态 进程启动时间和日期 命令
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.2  33920  4144 ?        Ss   Aug15   0:01 /sbin/init
root          2  0.0  0.0      0     0 ?        S    Aug15   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    Aug15   0:01 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   Aug15   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    Aug15   0:06 [rcu_sched]
root          8  0.0  0.0      0     0 ?        S    Aug15   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    Aug15   0:00 [migration/0]
root         10  0.0  0.0      0     0 ?        S    Aug15   0:00 [watchdog/0]
root         11  0.0  0.0      0     0 ?        S    Aug15   0:00 [kdevtmpfs]
root         12  0.0  0.0      0     0 ?        S<   Aug15   0:00 [netns]
root         13  0.0  0.0      0     0 ?        S<   Aug15   0:00 [perf]
root         14  0.0  0.0      0     0 ?        S    Aug15   0:00 [khungtaskd]
root         15  0.0  0.0      0     0 ?        S<   Aug15   0:00 [writeback]
root         16  0.0  0.0      0     0 ?        SN   Aug15   0:00 [ksmd]
root         17  0.0  0.0      0     0 ?        SN   Aug15   0:00 [khugepaged]

free—简单显示系统内存使用情况

free 命令显示系统内存的使用情况,包括物理内存、交换内存(swap)和内核缓冲区内存。

root@ubuntu:~# free
             total       used       free     shared    buffers     cached
Mem:       2029920    1698952     330968      19472      85432     844572
-/+ buffers/cache:     768948    1260972
Swap:      1023996      11152    1012844
// Mem 行是内存的使用情况。
// -/+ buffers/cache :表示物理内存的缓存统计
// Swap 行是swap空间的使用情况。
// total 列显示系统总的可用物理内存 和 交换空间大小。
// used 列显示已经被分配的物理内存(包含buffers与cach使用的数量,其中可能部分缓存并未实际使用)和交换空间。
// free 列显示还有多少物理内存和交换空间未分配。
// shared 列显示被共享使用的物理内存大小。
// buff/cache 列显示被 buffer 和 cache 使用的物理内存大小,-表示真实使用,+表示可用。
// available 列显示还可以被应用程序使用的物理内存大小。

buffer/cached是为了提高系统IO read的性能用作缓存的空间,当程序使用内存时,buffer/cached会很快地被使用。估算空闲的物理内存时可参考-/+ buffers/cache的free的值,但实际的可用内存要小于这个值,因为不能所有的buffers和cached都释放。
常用选项:-h 更友好的显示 -s [n]间隔几秒输出一次

root@ubuntu:~# free -h
             total       used       free     shared    buffers     cached
Mem:          1.9G       1.6G       321M        19M        83M       824M
-/+ buffers/cache:       752M       1.2G
Swap:         999M        10M       989M

vmstat—查看虚拟内存系统状态

vmstat查看虚拟内存系统,获得有关进程、虚存、页面交换空间及 CPU活动的信息。

root@ubuntu:~# vmstat
// procs r运行队列中进程数量 b等待IO的进程数量
// memory  swpd使用虚拟内存大小 free可用内存 buff已使用 cache缓存
// swap si每秒写入交换区 so每秒交换区写磁盘 
// io bi每秒读取块 bo每秒写块
// system in每秒中断数 cs每秒上下文切换
// cpu us用户空间耗时 sy内核(系统)耗时 id 挂起时间  wa等io时间 st 虚拟系统耗时
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  0  11152 349200  84060 842768    0    0    18    17   44  127  1  0 98  0  0

其他常用选项:

vmstat [-a] [-n] [-S unit] [delay [ count]]
vmstat [-s] [-n] [-S unit]
vmstat [-m] [-n] [delay [ count]]
vmstat [-d] [-n] [delay [ count]]
vmstat [-p disk partition] [-n] [delay [ count]]
vmstat [-f]
vmstat [-V]
-a:显示活跃和非活跃内存
-f:显示从系统启动至今的fork数量 。
-m:显示slabinfo
-n:只在开始时显示一次各字段名称。
-s:显示内存相关统计信息及多种系统活动数量。
delay:刷新时间间隔。如果不指定,只显示一条结果。
count:刷新次数。如果不指定刷新次数,但指定了刷新时间间隔,这时刷新次数为无穷。
-d:显示磁盘相关统计信息。
-p:显示指定磁盘分区统计信息
-S:使用指定单位显示。参数有 k 、K 、m 、M。默认单位为K

iostat—监视系统磁盘活动输入输出

iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出CPU使用情况。

root@ubuntu:~# iostat
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
// cpu使用 用户占用 NICE值用户占比 系统内核占比 io等待占比 空闲占比
avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           1.25    0.02    0.49    0.02    0.00   98.22
//设备传输     每秒的传输次数  每秒设备读取 每秒设备写入   读取总数据量  写入总数据量     
Device:            tps    kB_read/s    kB_wrtn/s    kB_read    kB_wrtn
fd0               0.00         0.00         0.00          8          0
sda               1.37        17.66        15.32    1525555    1323388

其他常用选项:
-c 只输出CPU -d 只输出设备信息 -x 显示详细扩展信息
iostat interval [count] // interval 采样间隔 count 采样次数

root@ubuntu:~# iostat -x -d 3 2
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
fd0     0.00     0.00    0.00    0.00     0.00     0.00     8.00     0.00   42.00   42.00    0.00  42.00   0.00
sda     0.02     0.77    1.08    0.28    17.45    15.16    47.97     0.00    1.48    0.89    3.74   0.26   0.04
Device:   rrqm/s   wrqm/s     r/s     w/s    rkB/s    wkB/s avgrq-sz avgqu-sz   await r_await w_await  svctm  %util
fd0     0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
sda     0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00    0.00    0.00    0.00   0.00   0.00
// rrqm/s: 每秒对该设备的读请求被合并次数,文件系统会对读取同块(block)的请求进行合并
// wrqm/s: 每秒对该设备的写请求被合并次数
// r/s: 每秒完成的读次数
// w/s: 每秒完成的写次数
// rkB/s: 每秒读数据量(kB为单位)
// wkB/s: 每秒写数据量(kB为单位)
// avgrq-sz:平均每次IO操作的数据量(扇区数为单位)
// avgqu-sz: 平均等待处理的IO请求队列长度
// await: 平均每次IO请求等待时间(包括等待时间和处理时间,毫秒为单位)
// svctm: 平均每次IO请求的处理时间(毫秒为单位)
// %util: 采用周期内用于IO操作的时间比率,即IO队列非空的时间比率

netstat—显示网络连接、路由表和网络接口信息

netstat命令的功能是显示网络连接、路由表和网络接口信息,可以让用户得知有哪些网络连接正在运作。
netstat的输出结果可以分为两个部分:1、Active Internet connections 有源TCP连接,其中"Recv-Q"和"Send-Q"指接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。2、Active UNIX domain sockets 有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。

root@ubuntu:~# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp6       1      0 ip6-localhost:36918     ip6-localhost:ipp       CLOSE_WAIT 
tcp6       1      0 ip6-localhost:36884     ip6-localhost:ipp       CLOSE_WAIT 
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  24     [ ]         DGRAM                    10457    /dev/log
unix  2      [ ]         DGRAM                    15683    
unix  3      [ ]         STREAM     CONNECTED     14247    
unix  3      [ ]         STREAM     CONNECTED     15406    
unix  3      [ ]         STREAM     CONNECTED     14489    
unix  3      [ ]         STREAM     CONNECTED     14273    @/tmp/dbus-vEQpM97tju
unix  3      [ ]         STREAM     CONNECTED     14217    @/com/ubuntu/upstart-session/1000/1902
unix  3      [ ]         STREAM     CONNECTED     38414    @/tmp/dbus-o5oOWEwf
unix  3      [ ]         STREAM     CONNECTED     14702    /var/run/dbus/system_bus_socket
// Proto:显示连接使用的协议。
// RefCnt:表示连接到本套接口上的进程号。
// Types:显示套接口的类型。
// State:显示套接口当前的状态。
// Path:表示连接到套接口的其它进程使用的路径名。

其他常用选项:
-a (all) 显示所有选项,默认不显示LISTEN相关。 -t 仅显示tcp相关选项。 -u 仅显示udp相关选项。-l 仅列在 Listen的服务状态。
-n 拒绝显示别名,能显示数字的全部转化成数字。 -p 显示建立相关链接的程序名。 -r 显示路由信息,路由表
-e 显示扩展信息,例如uid等
-s 按各个协议进行统计
-c 每隔一个固定时间,执行该netstat命令。

sar—对系统活动信息进行全面 收集/报告/保存

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

sar [options] [-A] [-o file] [t [n]]
t为采样间隔,n为采样次数(默认值是1),-o file表示将命令结果以二进制格式存放在文件file中。常用选项
-A:所有报告的总和。相当于:-bBdFHqrRSuvwWy -I SUM -I XALL -m ALL -n ALL -u ALL -P ALL
-u:CPU利用率
-v:进程、I节点、文件和锁表状态。
-d:硬盘使用报告。
-r:没有使用的内存页面和硬盘块。
-g:串口I/O的情况。
-b:缓冲区使用情况。
-a:文件读写情况。
-c:系统调用情况。
-R:进程的活动情况。
-y:终端设备活动情况。
-w:系统交换活动

举例:

root@ubuntu:~# sar -u
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
//  all表示全部cpu平均值  用户占比 用户nice占比 内核系统  io等待占比 虚拟系统占比  //空闲占比
09:38:48 AM     CPU     %user     %nice   %system   %iowait    %steal     %idle
09:39:11 AM     all      1.75      0.00      1.40      0.00      0.00     96.85
09:39:27 AM     all      1.50      0.00      1.24      0.00      0.00     97.26
Average:        all      1.65      0.00      1.34      0.00      0.00     97.01
root@ubuntu:~# sar -r
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
09:38:48 AM kbmemfree kbmemused  %memused kbbuffers  kbcached  kbcommit   %commit  kbactive   kbinact   kbdirty
09:39:11 AM    361580   1668340     82.19     85224    844108   2507888     82.12    667492    592340        76
09:39:27 AM    360960   1668960     82.22     85240    844132   2507888     82.12    667508    592356        52
Average:       361270   1668650     82.20     85232    844120   2507888     82.12    667500    592348        64
oot@ubuntu:~# sar -d
Linux 4.4.0-148-generic (ubuntu) 	08/24/2020 	_x86_64_	(1 CPU)
09:38:48 AM       DEV       tps  rd_sec/s  wr_sec/s  avgrq-sz  avgqu-sz     await     svctm     %util
09:39:11 AM    dev2-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:11 AM    dev8-0      0.09      0.00      4.90     56.00      0.00      0.00      0.00      0.00
09:39:11 AM    dev8-1      0.09      0.00      4.90     56.00      0.00      0.00      0.00      0.00
09:39:11 AM    dev8-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:11 AM    dev8-5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:27 AM    dev2-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:27 AM    dev8-0      0.33      0.00     11.49     35.20      0.00      0.00      0.00      0.00
09:39:27 AM    dev8-1      0.33      0.00     11.49     35.20      0.00      0.00      0.00      0.00
09:39:27 AM    dev8-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
09:39:27 AM    dev8-5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       dev2-0      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       dev8-0      0.18      0.00      7.55     41.14      0.00      0.00      0.00      0.00
Average:       dev8-1      0.18      0.00      7.55     41.14      0.00      0.00      0.00      0.00
Average:       dev8-2      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00
Average:       dev8-5      0.00      0.00      0.00      0.00      0.00      0.00      0.00      0.00

/proc(待更新)

猜你喜欢

转载自blog.csdn.net/runafterhit/article/details/108185167
今日推荐