🚀 TKperf 完整安装与验证手册
📌 一、前置条件(Ubuntu环境)
- Ubuntu Server 22.04+
- Python 3.8 已安装(路径
/usr/local/python3.8/bin/python3.8
) - pip 3.8 已安装(路径
/usr/local/python3.8/bin/pip3.8
)
✅ 二、一键式安装脚本(推荐放入自动化部署脚本)
文件名:
install_tkperf.sh
#!/bin/bash
install_tkperf() {
set -e
PYTHON_BIN="/usr/local/python3.8/bin/python3.8"
PIP_BIN="/usr/local/python3.8/bin/pip3.8"
echo "🔧 更新 apt 源并安装系统依赖..."
apt update
apt install -y git gcc make libaio-dev rst2pdf hdparm sg3-utils nvme-cli
echo "🐍 安装 Python 依赖..."
$PIP_BIN install numpy matplotlib lxml simplejson setuptools --upgrade
echo "🛠️ 安装最新版本的 FIO (>=2.0.3)..."
if ! command -v fio >/dev/null; then
git clone https://github.com/axboe/fio.git /tmp/fio
cd /tmp/fio
make -j$(nproc)
make install
cd /
rm -rf /tmp/fio
fi
echo "✅ 检查 FIO 版本:$(fio --version)"
echo "🛠️ 安装 TKperf 工具..."
if ! command -v tkperf >/dev/null; then
git clone https://github.com/thomas-krenn/TKperf.git /tmp/tkperf
cd /tmp/tkperf
$PYTHON_BIN setup.py install
ln -sf /usr/local/python3.8/bin/tkperf /usr/local/bin/tkperf
ln -sf /usr/local/python3.8/bin/tkperf-cmp /usr/local/bin/tkperf-cmp
cd /
rm -rf /tmp/tkperf
fi
echo "✅ TKperf 安装完成,版本信息:"
tkperf --version
which tkperf
}
🔔 使用方式:
sudo bash install_tkperf.sh
install_tkperf
📌 三、安装完成后验证方法
✅ 验证TKperf命令存在:
tkperf --version
tkperf -h
- 若能看到帮助信息与版本号,即成功 ✅
🧪 四、验证 TKperf 测试(两种方式)
📌 (1) 安全的虚拟盘测试方式(推荐)
此方式不会影响真实硬盘数据:
➡️ 创建虚拟盘并测试:
# 创建1G虚拟盘
fallocate -l 1G /tmp/fake.img
losetup -fP /tmp/fake.img
loopdev=$(losetup -a | grep fake.img | cut -d ':' -f1)
echo "虚拟盘创建在: $loopdev"
# 快速测试(约30秒内完成)
sudo tkperf ssd test_loop $loopdev -ft -nj 1 -iod 1 -rt 10
参数含义:
-ft
强制测试-nj 1
单任务-iod 1
IO深度为1-rt 10
每项测试10秒
➡️ 验证测试结果:
ls test_loop.*
# test_loop.log test_loop.pdf test_loop.rst test_loop.xml
✅ 成功即会产生这些文件。
➡️ 清理虚拟盘:
losetup -d $loopdev
rm -f /tmp/fake.img
📌 (2) 使用真实盘测试方式(请谨慎!)
⚠️ 警告:此测试会擦除指定磁盘的数据!请确保目标盘无数据!
➡️ 执行真实盘测试:
# 假设/dev/sdx是空闲盘,请务必确认!
sudo tkperf ssd real_test /dev/sdx -ft -nj 1 -iod 1 -rt 10
约30秒~1分钟即可完成。
➡️ 验证结果:
ls real_test.*
# real_test.log real_test.pdf real_test.rst real_test.xml
📌 (3) 验证TKperf的XML重载功能(可选)
执行测试后,可使用XML重载验证功能:
sudo tkperf ssd real_test none -xml
此命令将重新加载XML数据生成报告(不会重复测试)。
🚩 五、常见错误处理方式
-
command not found: tkperf
解决:确认是否已创建软链接到/usr/local/bin
或添加路径到环境变量。ln -sf /usr/local/python3.8/bin/tkperf /usr/local/bin/tkperf
-
XMLSyntaxError
错误
解决:确保执行过实际测试并生成了.xml
文件。
📌 六、快速验证脚本(进阶可选)
如果经常需要一键快速验证环境,可以创建如下脚本:
文件名:
quick_verify_tkperf.sh
#!/bin/bash
set -e
echo "🔍 快速验证TKperf..."
fallocate -l 500M /tmp/quick.img
losetup -fP /tmp/quick.img
loopdev=$(losetup -a | grep quick.img | cut -d ':' -f1)
echo "🔧 测试设备: $loopdev"
sudo tkperf ssd quick_verify $loopdev -ft -nj 1 -iod 1 -rt 5
if [ -f quick_verify.xml ]; then
echo "✅ TKperf环境验证成功!"
else
echo "❌ 测试失败,请检查环境!"
fi
losetup -d $loopdev
rm -f /tmp/quick.img
执行方法:
sudo bash quick_verify_tkperf.sh
🎯 七、总结表格(安装与验证)
步骤 | 内容 | 脚本/命令 |
---|---|---|
1 | 安装 | bash install_tkperf.sh; install_tkperf |
2 | 验证命令 | tkperf --version |
3 | 虚拟盘测试 | fallocate , losetup , tkperf ssd ... |
4 | 真实盘测试 | tkperf ssd real_test /dev/sdx ... |
5 | XML 重载 | tkperf ssd testname none -xml |