且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

sysbench、iostat测试服务器的iops

更新时间:2022-03-10 03:47:54

1.对于一台安装mysql数据库的服务器来说比较重要的资源就是iops(I/O per second)与内存,所以在安装部署一台数据库服务器来说***先测试一下该服务器的iops性能,这里使用sysbench测试。
2.sysbench的安装与使用
下载地址https://github.com/akopytov/sysbench/releases 找到对应版本下载
解压tar包:
cd sysbench
./autogen.sh
./configure
make && make install
3.使用某一目录生成测试文件:
cd /data/test
sysbench --test=fileio --file-num=4 --file-block-size=8k --file-total-size=4G --file-test-mod=rndrd --file-extra-flags=direct --max-requests=0 --time=1200 --threads=4 prepare
--test=fileio ##测试服务器的io性能,还可以测试内存,cpu等
--file-num=4 ##生成4个测试文件
--file-block-size=8k ##文件块大小,这个值***与mysql数据库的innodb_page_size大小一致
--file-total-size=4G ##4个文件总大小
--file-test-mod=rndrd ##测试随机io读性能,随机io写为rndwr,一般只用测试随机读写io,顺序io性能不测试
--file-extra-flags=direct ##测试文件写入磁盘,跳过缓存,对应mysql中的参数innodb_flush_method=O_DIRECT,直接跳过先写入文件系统缓存,直接落盘。会影响mysql性能,但是可以提高数据安全性.
--max-requests=0##最多请求次数,0表示不限制
--time=1200 ##最大持续时间
--threads=4 ##处理线程数
prepare ##生成文件,对应参数还有run开始测试,cleanup清理测试文件
sysbench、iostat测试服务器的iops
生成对应文件后开始测试,使用run参数
3.开始测试磁盘随机读性能
sysbench、iostat测试服务器的iops
--report-interval=3 每3秒生成一次报告信息
4.在运行sysbench时,通过iostat查看磁盘信息:
sysbench、iostat测试服务器的iops
iostat -xm 3##每3秒刷新一次信息,xm扩展输出信息的单位为m/s
比较重要的值为r/s,w/s,%util这边查看到%util为100.说明磁盘基本满载,达到性能上限.
5.查看sysbench运行完成信息并计算iops值。
sysbench、iostat测试服务器的iops
在上面中,测试的是随机读性能,可以通过这个参数计算出对于数据库比较重要的iops值:
4.67X1024/8(file-block-size)=597 ##磁盘这就是每秒随机读性能,属于比较高的值,正常SSD磁盘基本在300iops,另外在正式环境中应该测试时间设置为一天或两天测试出的值,才是比较准确的.
6.查看服务器磁盘调度算法:
sysbench、iostat测试服务器的iops
这里直接为deadline,无需修改。如果为 noop或cfq建议改为deadline. 修改方法echo deladline >/sys/block/xvde/queue/scheduler