人生处万类,知识最为贤。这篇文章主要讲述系统性能分析相关的知识,希望能为你提供帮助。
计算机系统由四个模块组成分别是CPU、网络、磁盘、内存。在linux系统中有很多高效的工具,可以帮助分析定位问题。图为性能分析工具
vmstat是一款全面的系统性能分析工具,通过给定时间间隔来展示服务器状态,包括cpu使用率,内存使用率,虚拟内存交换情况,I/O读写情况。一般通过两个参数来完成,第一个是采样时间间隔数s,第二个是采样的次数。
[root@192 ~]# vmstat 2 2
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
rbswpdfreebuffcachesisobiboincs us sy id wa st
30 214528 23630436 616496114326159704622 39 12 4800
20 214528 22023636 6165720000686577 46 15 4000
命令参数详解
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/swrqm/sr/sw/srkB/swkB/s avgrq-sz avgqu-szawait r_await w_awaitsvctm%util
sda0.152.293.141.00215.99106.22155.590.013.012.185.661.190.49
scd00.000.000.000.000.040.0072.410.002.592.590.002.170.00
dm-00.000.003.041.00214.8096.98154.370.013.012.225.431.180.48
dm-10.000.000.172.290.779.168.070.029.222.989.690.110.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实时监控命令
推荐阅读