不论是做 Linux 基准测试还是排查系统性能问题,都需要借助很多工具辅助,很多工具不包含在操作系统中,或者版本过于老旧,这时候就需要单独安装。这里以 sysbench 为例演示 Linux 性能工具安装过程。
1、CentOS 解决 yum 源不可用问题
(1)yum doesn't have enough cached data
yum install sysbench
安装 sysbench 报错:
One of the configured repositories failed (Unknown),
and yum doesn't have enough cached data to continue. At this point the only
safe thing yum can do is fail. There are a few ways to work "fix" this:
...
Cannot retrieve metalink for repository: epel/x86_64. Please verify its path and try again
使用的 CentOS 7.9 yum 源,CentOS-Base.repo :
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
(2)使用阿里云 yum 源
删除所有 yum 源配置文件:
rm -rf /var/cache/yum/*
yum clean all
yum update
使用可访问的 yum 源并重新生成,这里使用阿里云,如果跳过安全认证可以添加 --no-check-certificate 参数:
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
成功后会打印进度并重新生成 /etc/yum.repos.d/CentOS-Base.repo,yum 源就变成了阿里云,base 块如下:
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
再使用 yum makecache 生成缓存,fastestmirror 插件读取镜像源就变成了阿里云:
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.aliyun.com
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
最终生成的终端打印 Metadata Cache Created 说明 yum 可以正常工作了。
2、二进制软件包安装 sysbench
Linux 安装 sysbench 的最简单方式就是直接从 packagecloud 托管的二进制软件包安装,每次 sysbench 发布后都会自动更新软件源。
直接通过分发软件包安装:
curl -s https://packagecloud.io/install/repositories/akopytov/sysbench/script.rpm.sh | sudo bash
sudo yum -y install sysbench
安装成功会显示 sysbench 版本号和依赖的数据库版本:
Installed:
sysbench.x86_64 0:1.0.20-1.el7
Dependency Installed:
postgresql-libs.x86_64 0:9.2.24-9.el7_9
Complete!
3、源码安装 sysbench
(1)安装数据库依赖
源码安装 sysbench 需要先安装数据库,比如 MySQL 依赖:
yum install mysql-devel
(2)源码安装
阿里云仓库没有 sysbench 安装包,从 github 上下载 src,源码安装:
tar -xvzf sysbench-1.0.20.tar.gz
cd sysbench-1.0.20/
./autogen.sh
./configure
make -j
make install
终端输入 sysbench,显示如下说明安装成功,后面可以使用 sysbench 进行基准测试了:
Reading the script from the standard input:
4、sysbench 使用示例
sysbench 常用来作为系统基准测试。
比如模拟多线程切换,这里开启 50 个线程,持续运行 5 分钟:
sysbench --threads=50 --time=300 threads run
成功运行后终端会打印:
General statistics:
total time: 300.0269s
total number of events: 430957
Latency (ms):
min: 0.20
avg: 34.81
max: 1385.35
95th percentile: 137.35
sum: 14999819.74
Threads fairness:
events (avg/stddev): 8619.1400/188.42
execution time (avg/stddev): 299.9964/0.01