计算机系统由四个模块组成分别是CPU、网络、磁盘、内存。在linux系统中有很多高效的工具,可以帮助分析定位问题。图为性能分析工具

系统性能分析_连接状态

vmstat

是一款全面的系统性能分析工具,通过给定时间间隔来展示服务器状态,包括cpu使用率,内存使用率,虚拟内存交换情况,I/O读写情况。一般通过两个参数来完成,第一个是采样时间间隔数s,第二个是采样的次数。

[root@192 ~]# vmstat 2 2
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 214528 236304 36 616496 1 14 326 159 704 622 39 12 48 0 0
2 0 214528 220236 36 616572 0 0 0 0 686 577 46 15 40 0 0

命令参数详解

r

等待运行的进程数,多少个进程分到了CPU

b

在等待资源分配的进程数,阻塞状态

swpd

虚拟内存已使用的大小(KB),如果大于0,表示机器的物理内存不足

free

空闲的物理内存的大小(KB)

buff

用作缓存的内存数,缓存的是文件目录基本内容,在磁盘中的位置权限等

cache

用作文件缓存的内存数,对打开的文件进行缓存

si

从磁盘交换到内存的交换页数量,即每秒使用的虚拟内存数量(KB/s)

so

从内存交换到磁盘的交换页数量( KB/s)

bi

发送到块设备( 一般为磁盘)的块数(块/s)

bo

从块设备接收到的块数(块1s)

in

每秒中断次数,包括时钟中断

cs

每秒上下文切换的次数

us

用户CPU使用时间

sy

系统CPU使用时间,如进行IO操作等

id

空闲时间

wt

等待I/O的CPU时间,一般为0

sar系统活动取样命令

可以从多方面对系统活动进行报告,包括文件读写情况,系统调用的使用情况,磁盘CPU效率等,可以连续对系统取样,取样结果可存入文件,而且所需的负载很小。

格式:

sar [option]  [-A] [-o file] t [n]

option为命令选项,-o表示将命令结果以二进制格式存放在文件中,t为采样间隔,n为采样次数,默认值是1

命令参数

-A

所有报告的总和

-u

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

-f

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

-b

显示I/O和传达速率的统计信息

-a

文件读写情况

-c

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

-R

输出内存页面的统计信息

-r

输出没有使用的内存页面和硬盘块

iostat 性能分析命令

用于报告cpu和整个系统的输入输出统计信息默认显示了与vmstat相同的cpu使用信息

命令参数详解

-C

显示CPU使用情况

-d

显示磁盘使用情况

-m  -k

以K M为单位显示

-n

显示网络文件系统使用情况

-p

显示磁盘和分区的情况

-x  -V

显示详细信息和版本信息

# 使用命令参数显示磁盘的详细信息脚本 
[root@192 ~]# iostat -d -x -k 1 10
Linux 3.10.0-957.el7.x86_64 (anonymous) 2022年05月20日 _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
sda 0.15 2.29 3.14 1.00 215.99 106.22 155.59 0.01 3.01 2.18 5.66 1.19 0.49
scd0 0.00 0.00 0.00 0.00 0.04 0.00 72.41 0.00 2.59 2.59 0.00 2.17 0.00
dm-0 0.00 0.00 3.04 1.00 214.80 96.98 154.37 0.01 3.01 2.22 5.43 1.18 0.48
dm-1 0.00 0.00 0.17 2.29 0.77 9.16 8.07 0.02 9.22 2.98 9.69 0.11 0.03
top性能监控命令

top命令参数

d

指定每两次屏幕信息刷新之间的时间间隔

p

通过指定监控进程id来仅仅监控某个进程状态

q

该选项将使top没有任何延迟的刷新

S

指定累计模式

s

使top命令在安全模式下运行 避免交互

i

不显示任何闲置或僵尸进程

c

显示整个命令而不是只显示命令名

top内部命令参数快捷键

o

改变列的显示顺序

f

选择显示的内容,显示选定的列

S s

改变画面的更新频率  更新周期

P

以CPU占用率大小的顺序排列进程列表

n

设置在进程列表所显示进程的数量

q

退出

ps 监控系统命令

top是对进程实时监控的命令,ps命令显示进程的状态,但不是连续的,是一个超强大的进程查看命令。

ps常用命令参数

-a

显示终端下的所有程序

-A -e

显示所有进程

-au

显示较详细的信息

-aux

显示所有包含其他使用者的进程

-f

全部列出

-x

显示没有控制终端的进程,同时显示各个命令的具体路径

-N

反向选择

-u

指定用户的所有进程

-l

以长格式显示进程信息

netstat监控网络状态

netstat是控制台命令,监控TCP/IP的网络的工具,它可以显示路由表,实际的网络连接以及每个网络接口的网络连接情况。

常用命令参数

-a

显示所有套接字

-c

每隔1秒重现显示一次,直至手动中断

-i

显示所有网络接口的信息

-r

显示核心路由表,同 route -e

-t

显示TCP的连接情况

-u

显示UDP的连接情况

-l

只显示指定的监听端口  -lt合用

-p

建立连接的程序名和pid

-s

显示每个协议的统计

-x

显示networkdirect连接,侦听器和共享端点

ifconfig查看地址

ifconfig命令用来查看和配置当前网络配置,当网络环境发生改变时可通过此命令对网络进行相应的配置,配置一般需要高权。


还有一些其他的具体展示系统中一个类型的命令,因为在实际生产中使用的命令大多很固定,暂未整理,待开发。

ss显示连接状态命令
free显示内存命令
df 查看磁盘占用命令
dstat动态显示系统系统负载命令
iotop查看I/O命令
iftop实时监控命令