网站首页 > 技术文章 正文
简介
FIO是测试IOPS的非常好的工具,用来对硬件进行压力测试和验证。磁盘IO是检查磁盘性能的重要指标,可以按照负载情况分成照顺序读写,随机读写两大类。
目前主流的第三方IO测试工具有fio、iometer 、 Orion,这三种工具各有千秋,在linux 下也可以使用dd 进行简单的磁盘(文件系统)测试(文末补充)。
fio在Linux系统下使用比较方便,iometer在window系统下使用比较方便,Orion是oracle的IO测试软件,可在没有安装oracle数据库的情况下模拟oracle数据库场景的读写。
Multithreaded IO generation tool , FIO 是一个多线程io生成工具,可以生成多种IO模式,用来测试磁盘设备的性能(也包含文件系统:如针对网络文件系统 NFS 的IO测试); Description : fio is an I/O tool that will spawn a number of threads or processes doing : a particular type of io action as specified by the user. fio takes a : number of global parameters, each inherited by the thread unless : otherwise parameters given to them overriding that setting is given. : The typical use of fio is to write a job file matching the io load : one wants to simulate. |
安装
测试磁盘之前,磁盘最好是空的,也就是格式化的,如果磁盘已经有了内容,
需要卸载-格式化-挂载
# 卸载磁盘
umount /mnt/datadir1
# 格式化磁盘
mkfs.ext4 /dev/sdd
# 挂载磁盘
mount -t ext4 /dev/sdd /mnt/datadir1
# 自动挂载,在里面添加该盘
vim /etc/fstab (见下图,可以在该文件下设置挂载)
安装fio
yum install fio
使用简介
从测试角度出发,一般有如下的测试设计:
序号 | 模块 | 用例 | 结果 |
1 | 磁盘IO测试 | 1M顺序写吞吐量 | IOPS=353, BW=353MiB/s (371MB/s)(50.0GiB/144874msec) |
2 | 磁盘IO测试 | 1M顺序读吞吐量 | IOPS=1349, BW=1350MiB/s (1415 MB/s)(50.0GiB/37937msec) |
3 | 磁盘IO测试 | 4K随机写IOPS | IOPS=6057, BW=23.7MiB/s (24.8MB/s)(10.0GiB/432743msec) |
4 | 磁盘IO测试 | 4K随机读IOPS | IOPS=20.0k, BW=81.9MiB/s (85.9MB/s)(10.0GiB/125065msec) |
说明:
- IOPS IOPS(Input/Output Operations Per Second)每秒读写的次数
2. 50.0GiB/144874msec=353MiB/s=371MB/s
MiB/s的意思是每秒中传输2^20 byte的数据,不太常用,一般需要转换成MB/S,MB/s=MiB/s *1.024
测试命令:
fio -direct=1 -iodepth=32 -rw=write -ioengine=libaio -bs=1024k -size=50G -numjobs=1 -runtime=600 -group_reporting -filename=/mnt/test/fiotest.txt -name=Write_BandWidth_Test fio -direct=1 -iodepth=32 -rw=read -ioengine=libaio -bs=1024k -size=50G -numjobs=1 -runtime=600 -group_reporting -filename=/mnt/test/fiotest.txt -name=Read_BandWidth_Test fio -direct=1 -iodepth=128 -rw=randwrite -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/mnt/test/fiotest.txt -name=Rand_Write_IOPS_Test fio -direct=1 -iodepth=128 -rw=randread -ioengine=libaio -bs=4k -size=10G -numjobs=1 -runtime=600 -group_reporting -filename=/mnt/test/fiotest.txt -name=Rand_Read_IOPS_Test |
命令参数说明:
filename=/dev/sdb1 测试文件名称,通常选择需要测试的盘的data目录。
rw=
bs=1024k 单次io的块文件大小为1024k
此外
|
dd简单测试磁盘 (dd 是linux自带的,不用安装,功能没有fio全面,适用于简单的磁盘测试)
[root@docker ~]# dd if=/dev/zero of=test bs=8k count=10000 oflag=direct |
[root@docker ~]# dd if=test of=/dev/null bs=8k count=10000 iflag=direct |
/dev/null,它是空设备,也称为位桶(bit bucket)、回收站、无底洞,可以向它输出任何数据。任何写入它的输出都会被抛弃。如果不想让消息以标准输出显示或写入文件,那么可以将消息重定向到位桶。
/dev/zero,是一个输入设备,可用它来初始化文件。该设备无穷尽地提供0,可以使用任何需要的数目——设备提供的要多的多。他可以用于向设备或文件写入字符串0。
if=file 输入文件名,缺省为标准输入。 从file读取,如if=/dev/zero,该设备无穷尽地提供0,(不产生读磁盘IO)
of=file 输出文件名,缺省为标准输出。 向file写出,可以写文件,可以写裸设备。如of=/dev/null,"黑洞",
ibs=bytes 一次读入 bytes 个字节(即一个块大小为 bytes 个字节)。
obs=bytes 一次写 bytes 个字节(即一个块大小为 bytes 个字节)。
bs=bytes 同时设置读写块的大小为 bytes ,可代替 ibs 和 obs。如bs=8k 每次读或写的大小,即一个块的大小为8K。
cbs=bytes 一次转换 bytes 个字节,即转换缓冲区大小。
skip=blocks 从输入文件开头跳过 blocks 个块后再开始复制。
seek=blocks 从输出文件开头跳过 blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。
count=blocks 仅拷贝 blocks 个块,块大小等于 ibs 指定的字节数。
猜你喜欢
- 2024-11-17 别再用mybatis了,mybatis-plus 这个神级工具一发入魂
- 2024-11-17 hadoop(hadoop怎么读)
- 2024-11-17 mybatis plus 看这篇就够了,一发入魂
- 2024-11-17 那些难忘的维护之夜(那些难忘的维护之夜英语)
- 2024-11-17 MyBatis-Plus保姆级快速上手教程(mybatis plus怎么样)
- 2024-11-17 谁来教我渗透测试——黑客应该掌握的Windows基础
- 2024-11-17 MyBatis-Plus,看这一篇就够了(mybatis_plus)
- 2024-11-17 以现在的眼光来看,Windows 95是怎样的操作系统?
- 2024-11-17 YMS邮件智慧管理系统-使用手册.pdf
- 2024-11-17 维护之夜,说点故事和经验(维护剧情)
你 发表评论:
欢迎- 07-10Oracle 与 Google Cloud 携手大幅扩展多云服务
- 07-10分享收藏的 oracle 11.2.0.4各平台的下载地址
- 07-10Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- 07-10Oracle Database@Azure 推进到南美等新区域并增加了新服务
- 07-10Oracle宣布推出 Oracle Database@AWS 的有限预览版
- 07-10Oracle与Nextcloud合作,推出主权云上的安全协作平台
- 07-10NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 07-10对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 605℃几个Oracle空值处理函数 oracle处理null值的函数
- 597℃Oracle分析函数之Lag和Lead()使用
- 584℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 581℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 576℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 570℃【数据统计分析】详解Oracle分组函数之CUBE
- 556℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 550℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- Oracle 与 Google Cloud 携手大幅扩展多云服务
- 分享收藏的 oracle 11.2.0.4各平台的下载地址
- Oracle 和 Microsoft 推出 Oracle Exadata 数据库服务
- Oracle Database@Azure 推进到南美等新区域并增加了新服务
- Oracle宣布推出 Oracle Database@AWS 的有限预览版
- Oracle与Nextcloud合作,推出主权云上的安全协作平台
- NodeRED魔改版连接MsSql、PostgreSQL、MySQL、OracleDB存储无忧
- 对于企业数据云备份,“多备份”承诺的是成本更低,管理更高效#36氪开放日深圳站#
- 解读丨《归档文件整理规则》— 电子文件元数据存储
- Data Guard跳归档恢复的实践(dataguard failover)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (57)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)