Linux性能排查

常用的分析命令

strace
netstat
perf
iostat
vmstat


# 使用Unixbench跑分 参考: [https://blog.51cto.com/u_15127659/4541918](https://blog.51cto.com/u_15127659/4541918) 项目地址: [https://github.com/aliyun/byte-unixbench](https://github.com/aliyun/byte-unixbench)
# 安装依赖包
yum install make gcc g++ -y

# 下载
wget -c “https://github.com/aliyun/byte-unixbench/releases/download/v5.1.6/UnixBench-5.1.6.tar.gz”

# 解压
tar xvf UnixBench-5.1.6.tar.gz

# 临时设置系统语言为en_US.UTF-8
export LC_ALL="en_US.UTF-8"

# 运行
cd UnixBench-5.1.6/UnixBench/
./Run

sar命令查看系统综合状态

# 查看cpu采样,1秒一次,采样十次
sar -u 1 10
# 查看内存采样
sar -r 1 10
# 查看io采样
sar -b 1 10
# 查看磁盘采样
sar -d 1 10
# 查看进程
sar -q 1 10

在这里插入图片描述


查看网卡收发包状态

# 查看网卡收发包状态
sar –n DEV 1

下图显示了每块网卡收发包状态
rxkb/s是:每秒接收包,
txkb/s是:每秒发送包速率(以kb为单位):
在这里插入图片描述


查看历史负载

# 查看7点到11点45的 系统负载记录
sar -s 07:00:00 -e 11:45:00 -f /var/log/sa/sa22

在这里插入图片描述


使用stress进行压力测试

stress模拟系统高负载
在这里插入图片描述

-q–quiet 程序在运行的过程中不输出信息
-n–dry-run 输出程序会做什么而并不实际执行相关的操作
-t–timeout N 在 N 秒后结束程序
-c–cpu N 产生 N 个进程,每个进程都反复不停的计算随机数的平方根
-i–io N 产生 N 个进程,每个进程反复调用 sync() 将内存上的内容写到硬盘上
-m–vm N 产生 N 个进程,每个进程不断分配和释放内存
–vm-bytes B 指定分配内存的大小
–vm-stride B 不断的给部分内存赋值,让 COW(Copy On Write)发生
–vm-hang N 指示每个消耗内存的进程在分配到内存后转入睡眠状态 N 秒,然后释放内存,一直重复执行这个过程
–vm-keep 一直占用内存,区别于不断的释放和重新分配(默认是不断释放并重新分配内存)
-d–hadd N 产生 N 个不断执行 write 和 unlink 函数的进程(创建文件,写入内容,删除文件)
–hadd-bytes B 指定文件大小
–backoff N 等待N微妙后开始运行

进行高负载模拟测试

# 安装stress
yum install stress -y

# 消耗4核cpu资源
stress -c 4

# 消耗内存
# 产生两个子进程,每个进程分配 300M 内存
stress --vm 2 --vm-bytes 300M --vm-keep

cpu性能分析工具

在这里插入图片描述


查看CPU的性能

https://www.jianshu.com/p/735210d3e2dc

# -P ALL 表示监控所有CPU,后面数字1表示间隔1秒后输出一组数据
mpstat -P ALL 1

在这里插入图片描述

# 间隔1秒后输出一组数据,-u表示CPU指标
pidstat -u 1

在这里插入图片描述


网络性能分析工具

https://blog.csdn.net/omaidb/article/details/120028318
在这里插入图片描述

# 查看哪个连接流量最多
iftop -P

# 查看eth0哪个连接网络流量最多
iptop -p 

netstat常见用法

https://blog.csdn.net/omaidb/article/details/120617942


内存性能分析工具

在这里插入图片描述


vmstat查看虚拟内存状态

# 语法:vmstat [options] [delay [count]]
# 表示每2秒刷新一次
vmstat 2

# 表示每2秒刷新一次,刷新5次后退出     
vmstat 2 5

在这里插入图片描述


磁盘性能分析常用工具

https://blog.csdn.net/omaidb/article/details/120394570
在这里插入图片描述


iostat磁盘性能瓶颈分析

https://blog.csdn.net/omaidb/article/details/120394570


dstat查看哪些进程占用资源最多

参考: https://www.cnblogs.com/pc-boke/articles/10076785.html
!!!注意: 该软件只支持Centos7,需要使用epel源安装Dstat 0.7.2
Centos8安装的是pcp-dstat 5.3.1,不支持top-mem等参数
在这里插入图片描述
在这里插入图片描述

常用选项
–socket 显示常用的 socket 统计
–tcp 显示常用的TCP统计
–mem 显示内存使用率
–io 显示I/O统计
–int 显示终端统计

–disk-util 显示某一时间磁盘的忙碌状况
–freespace 显示当前磁盘空间使用率
–proc-count 显示正在运行的程序数量
–top-bio 指出块I/O最大的进程
–top-cpu 图形化显示CPU占用最大的进程
–top-io 显示正常I/O最大的进程
–top-mem 显示占用最多内存的进程

# 安装dstat
yum install -y dstat

查看每个进程使用的内存及所有进程使用的内存大小

# −计算出进程所占用的总的内存大小(KB为单位)
ps aux |sed 1\d | awk '{sum += $6};END {print sum} '

在这里插入图片描述

# −列出进程使用的内存大小,按内存大小排序(看第6列)
ps aux |sed 1\d | sort -n -k6

查看哪些进程占用内存最高

# 查看哪些进程占用内存最高
## head -20 显示前20条
ps aux --sort=-%mem | head -20

在这里插入图片描述

# 查看哪些进程占用内存最多--RHEL8不支持
dstat --top-mem 1 4

查看哪些进程占用cpu最高

# 查看哪些进程占用CPU最高
## head -20 显示前20条
ps aux --sort=-%cpu | head -20

在这里插入图片描述

# 查看哪些进程占用cpu最多--RHEL8不支持
dstat --top-cpu 3 3

在这里插入图片描述


查看哪些进程占用io最高

# 100秒内占用io最高的进程
dstat --top-bio 100 1

strace跟踪进程中的系统调用

https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/strace.html


perf查看热点函数

https://blog.csdn.net/lyn631579741/article/details/124009633

Linux Perf commands命令介绍使用
链接:https://linuxhint.com/linux-perf-commands/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

识途老码

赞赏是第一生产力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值