使用Unixbench跑分

参考: https://blog.51cto.com/u_15127659/4541918
项目地址:
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

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

在这里插入图片描述

查看历史负载

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

在这里插入图片描述

使用stress进行压力测试

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

-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 指定文件大小
 -t, --timeout N 在 N 秒后结束程序
 –backoff N 等待N微妙后开始运行
 -q, --quiet 程序在运行的过程中不输出信息
 -n, --dry-run 输出程序会做什么而并不实际执行相关的操作
 –version 显示版本号
 -v, --verbose 显示详细的信息

进行高负载模拟测试

# 安装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

在这里插入图片描述

网络性能分析工具

在这里插入图片描述

内存性能分析工具

在这里插入图片描述

磁盘性能分析常用工具

在这里插入图片描述

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

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

常用选项
–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

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

dstat --top-mem 1 4

查看哪些进程占用cpu最多

在这里插入图片描述

dstat --top-cpu 3 3

查看哪些进程占用io最高

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

查看eth0哪个连接网络流量最多