日本电子维修技术 SSD分享一个自己做的小工具FIO GUI




就是给fio做了个简陋的gui,fio在linux下都有gfio了,windows下也应该有个类似的gui。

设置的跑分项目完全cosplay crystaldiskmark,可以对比的看看。

下载地址:
链接:https://pan.baidu.com/s/14TZIRMLiLWks8zjQn7BwSg  密码:n9zs

源代码:链接:https://pan.baidu.com/s/1AiR9fazhCMVErgfdtUnTSA  密码:5lp6
鼓励大家修改。

用法很简单。

解压,用管理员权限运行FIO_GUI.exe,选择要测试的磁盘,选择fio.exe的位置(自带了fio 3.18),然后run就行了。

说实话我觉得fio和io meter是同一个玩意,但io meter太久没更新了,fio虽然一直在更新,但用起来又比较繁琐,于是做了这个傻瓜化的gui。

1.JPG (109.46 KB, 下载次数: 0)

2020-2-19 14:00 上传

2.JPG (159.21 KB, 下载次数: 0)

2020-2-19 14:00 上传

3.JPG (152.98 KB, 下载次数: 0)

2020-2-19 14:00 上传



说明:程序没有做多线程异步,所以运行时界面是freeze的,所以放着就行了,跑完后会弹出对话框。测试方法和cdm还是有区别,cdm是Space模式,也就是设定一个大小跑满为止,这个程序默认是跑30秒,可以通过手动调整为cdm的模式,不过个人认为fio还是用time模式比较准确。
kb base的换算模式和cdm保持一直,也就是跑的时候用1024(MiB)做单位,最后显示结果的时候用1000(MB)来换算。



评论

支持树导, 虽然Win下跑fio有点不太健康...

需要安装.Net Core

评论

wpf程序,要装.net core 3.1

评论

左边磁盘选择支持Raw吗, 我手上这台都有分区, 没法证实

评论

需要换其他的ioengine,还没做这个。主要是目前ioengine只写了支持windowsaio。反正对比的是cdm。

评论

了解   

评论
第一排测到后面的写就跳出了, 不知为何, 试了两次都是如此

评论

是用管理员权限运行的么?

评论

哈还真是, Administrator账户还需要...

评论
这个还行,之前考虑过要做一个来取代iometer,然后没时间加上iometer很稳定就忘了。

这两天做了跨工具、系统的磁盘工具测试,其实win下iometer比fio还好点。。。感觉这种东西其实本身很简单,fio只是加了不少对应新标准新特性的功能,一般也用不着。等待epyc到货中。。。

8275CL_windows_HoffPoffCoff.JPG (256.72 KB, 下载次数: 0)

2020-2-19 14:28 上传





评论

昨天发你的两个东西咋样了

评论
其实可以用electron来做gui

评论

昨晚睡早了, 晚上跑

评论

感谢

评论

iometer太久没更新了。

fio其实不止磁盘测试,它支持的io engine太多了,可以做一个统一标准的io测试平台。

ioengine=str
Defines how the job issues I/O to the file. The following types are defined:

sync
Basic read(2) or write(2) I/O. lseek(2) is used to position the I/O location. See fsync and fdatasync for syncing write I/Os.
psync
Basic pread(2) or pwrite(2) I/O. Default on all supported operating systems except for Windows.
vsync
Basic readv(2) or writev(2) I/O. Will emulate queuing by coalescing adjacent I/Os into a single submission.
pvsync
Basic preadv(2) or pwritev(2) I/O.
pvsync2
Basic preadv2(2) or pwritev2(2) I/O.
io_uring
Fast Linux native asynchronous I/O. Supports async IO for both direct and buffered IO. This engine defines engine specific options.
libaio
Linux native asynchronous I/O. Note that Linux may only support queued behavior with non-buffered I/O (set direct=1 or buffered=0). This engine defines engine specific options.
posixaio
POSIX asynchronous I/O using aio_read(3) and aio_write(3).
solarisaio
Solaris native asynchronous I/O.
windowsaio
Windows native asynchronous I/O. Default on Windows.
mmap
File is memory mapped with mmap(2) and data copied to/from using memcpy(3).
splice
splice(2) is used to transfer the data and vmsplice(2) to transfer data from user space to the kernel.
sg
SCSI generic sg v3 I/O. May either be synchronous using the SG_IO ioctl, or if the target is an sg character device we use read(2) and write(2) for asynchronous I/O. Requires filename option to specify either block or character devices. This engine supports trim operations. The sg engine includes engine specific options.
null
Doesn’t transfer any data, just pretends to. This is mainly used to exercise fio itself and for debugging/testing purposes.
net
Transfer over the network to given host:port. Depending on the protocol used, the hostname, port, listen and filename options are used to specify what sort of connection to make, while the protocol option determines which protocol will be used. This engine defines engine specific options.
netsplice
Like net, but uses splice(2) and vmsplice(2) to map data and send/receive. This engine defines engine specific options.
cpuio
Doesn’t transfer any data, but burns CPU cycles according to the cpuload and cpuchunks options. Setting cpuload=85 will cause that job to do nothing but burn 85% of the CPU. In case of SMP machines, use numjobs=<nr_of_cpu> to get desired CPU usage, as the cpuload only loads a single CPU at the desired rate. A job never finishes unless there is at least one non-cpuio job.
guasi
The GUASI I/O engine is the Generic Userspace Asynchronous Syscall Interface approach to async I/O. See

http://www.xmailserver.org/guasi-lib.html

for more info on GUASI.

rdma
The RDMA I/O engine supports both RDMA memory semantics (RDMA_WRITE/RDMA_READ) and channel semantics (Send/Recv) for the InfiniBand, RoCE and iWARP protocols. This engine defines engine specific options.
falloc
I/O engine that does regular fallocate to simulate data transfer as fio ioengine.

DDIR_READ
does fallocate(,mode = FALLOC_FL_KEEP_SIZE,).
DDIR_WRITE
does fallocate(,mode = 0).
DDIR_TRIM
does fallocate(,mode = FALLOC_FL_KEEP_SIZE|FALLOC_FL_PUNCH_HOLE).
ftruncate
I/O engine that sends ftruncate(2) operations in response to write (DDIR_WRITE) events. Each ftruncate issued sets the file’s size to the current block offset. blocksize is ignored.
e4defrag
I/O engine that does regular EXT4_IOC_MOVE_EXT ioctls to simulate defragment activity in request to DDIR_WRITE event.
rados
I/O engine supporting direct access to Ceph Reliable Autonomic Distributed Object Store (RADOS) via librados. This ioengine defines engine specific options.
rbd
I/O engine supporting direct access to Ceph Rados Block Devices (RBD) via librbd without the need to use the kernel rbd driver. This ioengine defines engine specific options.
http
I/O engine supporting GET/PUT requests over HTTP(S) with libcurl to a WebDAV or S3 endpoint. This ioengine defines engine specific options.

This engine only supports direct IO of iodepth=1; you need to scale this via numjobs. blocksize defines the size of the objects to be created.

TRIM is translated to object deletion.

gfapi
Using GlusterFS libgfapi sync interface to direct access to GlusterFS volumes without having to go through FUSE. This ioengine defines engine specific options.
gfapi_async
Using GlusterFS libgfapi async interface to direct access to GlusterFS volumes without having to go through FUSE. This ioengine defines engine specific options.
libhdfs
Read and write through Hadoop (HDFS). The filename option is used to specify host,port of the hdfs name-node to connect. This engine interprets offsets a little differently. In HDFS, files once created cannot be modified so random writes are not possible. To imitate this the libhdfs engine expects a bunch of small files to be created over HDFS and will randomly pick a file from them based on the offset generated by fio backend (see the example job file to create such files, use rw=write option). Please note, it may be necessary to set environment variables to work with HDFS/libhdfs properly. Each job uses its own connection to HDFS.
mtd
Read, write and erase an MTD character device (e.g., /dev/mtd0). Discards are treated as erases. Depending on the underlying device type, the I/O may have to go in a certain pattern, e.g., on NAND, writing sequentially to erase blocks and discarding before overwriting. The trimwrite mode works well for this constraint.
pmemblk
Read and write using filesystem DAX to a file on a filesystem mounted with DAX on a persistent memory device through the PMDK libpmemblk library.
dev-dax
Read and write using device DAX to a persistent memory device (e.g., /dev/dax0.0) through the PMDK libpmem library.
external
Prefix to specify loading an external I/O engine object file. Append the engine filename, e.g. ioengine=external:/tmp/foo.o to load ioengine foo.o in /tmp. The path can be either absolute or relative. See engines/skeleton_external.c for details of writing an external I/O engine.
filecreate
Simply create the files and do no I/O to them. You still need to set filesize so that all the accounting still occurs, but no actual I/O will be done other than creating the file.
filestat
Simply do stat() and do no I/O to the file. You need to set ‘filesize’ and ‘nrfiles’, so that files will be created. This engine is to measure file lookup and meta data access.
libpmem
Read and write using mmap I/O to a file on a filesystem mounted with DAX on a persistent memory device through the PMDK libpmem library.
ime_psync
Synchronous read and write using DDN’s Infinite Memory Engine (IME). This engine is very basic and issues calls to IME whenever an IO is queued.
ime_psyncv
Synchronous read and write using DDN’s Infinite Memory Engine (IME). This engine uses iovecs and will try to stack as much IOs as possible (if the IOs are “contiguous” and the IO depth is not exceeded) before issuing a call to IME.
ime_aio
Asynchronous read and write using DDN’s Infinite Memory Engine (IME). This engine will try to stack as much IOs as possible by creating requests for IME. FIO will then decide when to commit these requests.
libiscsi
Read and write iscsi lun with libiscsi.
nbd
Read and write a Network Block Device (NBD).

评论
不明觉厉~

评论

ioengine是很多,我记得30多种。在linux下选几个能跑的异步的跑了一遍基本没有差别,但是都比win下低几万iops。感觉要做跨系统测试还要调教。如果这个工程继续的话希望加上以下项目(读记录1000s写记录5000-15000s带宽及平均最大延迟每秒的散点图和统计数据)以及一个qd16x16的项目。另外家用游戏之类io我根据游戏解包和系统抓取做了2个,还在完善中。

profile.JPG (142.08 KB, 下载次数: 0)

2020-2-19 14:49 上传


目前测试情况看fio主要增强的是功能而不是性能,延迟方面测DCPM两者都没什么区别。所以要更新的话希望功能做的比iom更全,数据模型我可以提供


评论
树导源码放出来不呀?肯定很多人会PR

评论
另外iometer的可以试试那个傻瓜式的ez-iometer

评论

源码:
链接:https://pan.baidu.com/s/1AiR9fazhCMVErgfdtUnTSA  密码:5lp6

评论
目测C#开发的?支持树导

评论

是的,wpf小程序,简单快捷。不过我没用依赖属性,估计会被专业的吐槽。

评论

感觉我也应该学一下,py虽然可以封装但是很麻烦,有些东西也不好封
C# 开发win的本地小程序很快呀

评论

我基本上是哪种方便用哪个。

评论
感谢大佬分享

评论

这程序在笔记本上用正常,然后目录复制到台式机,就不能用,这正常吗?

评论

两个条件,安装.net core 3.1,用管理员权限运行。

评论

是这样的,就是点了运行没反应。 电路 电子 维修 我现在把定影部分拆出来了。想换下滚,因为卡纸。但是我发现灯管挡住了。拆不了。不会拆。论坛里的高手拆解过吗? 评论 认真看,认真瞧。果然有收 电路 电子 维修 求创维42c08RD电路图 评论 电视的图纸很少见 评论 电视的图纸很少见 评论 创维的图纸你要说 版号,不然无能为力 评论 板号5800-p42ALM-0050 168P-P42CLM-01
 ·日本中文新闻 唐田绘里香为新剧《极恶女王》剃光头 展现演员决心
·日本中文新闻 真子小室夫妇新居引发隐私担忧
·日本中文新闻 前AKB48成员柏木由纪与搞笑艺人交往曝光
·日本学校 {日本国际学校}梅田インターナショナルスクール
·日本学校 LINE:sm287 陳雨菲、20歳、台湾からの留学生、東京に来たばかり
·日本留学生活 出售平成22年走行48000km 代步小车
·日本华人网络交流 円相場 一時1ドル=140円台まで上昇?
·日本华人网络交流 问日本华人一个问题
·日本旅游代购 富山接机
 ·生活百科 英国转澳大利亚转换插头
·汽车 【求助】修车遇到困难怎么办?

维修经验

CPUcpu-z 1.77版低调发布

日本维修技术更新: New benchmark “submit and compare” feature New clocks dialog reporting all system’s clock speeds in real-time Preliminary support for Intel Kaby Lake AMD Bristol Ridge processors 主要是增加了支持I、A两个新架构的 ...

维修经验

CPU这几天经常开机黑屏,热重启后又正常

日本维修技术这几天经常开机黑屏,热重启后又正常,今天热重启也不管用了。折腾半天总算点亮,显示超频失败,以前出这个画面我是不理它的,直接重启就能正常进系统了,今天不敢托大,因为 ...

维修经验

CPU超频求助!关于华擎H170和6700K

日本维修技术问题见楼主的show贴 https://www.chiphell.com/thread-1634895-1-1.html 这次华擎的H170 Hyper最大的特色应该是自带时钟发生器可以自由超外频 可是楼主好久没有折腾超频了。。。 两图中除了CPU外频 以 ...

维修经验

CPU液态金属会侵蚀cpu核心吗?

日本维修技术前阵子看到有人说,液态金属时间长了会侵蚀cpu铜盖,那么问题来了,这货会不会侵蚀核心呢? 评论 这玩意儿好像只对铝起反应 评论 不是说,cpu的盖子是铜的吗。。。 评论 不会,核 ...

维修经验

CPUm6i究竟支不支持e3 1231v3

日本维修技术官网上看支持列表没写有e3 1231v3,装机帖又有人晒,百度也没个明确答案,那究竟能不能点亮?有在用的chher说一下么 评论 升级最新bios肯定可以支持 评论 我的p67evo官网上也没说支持12 ...

维修经验

CPU华擎 HYPER 妖板 正确玩法

日本维修技术600元的 B150,10相供电,释放洪荒之力 注意必须官网 Beta 区的 BIOS 有 AVX 的 CPU 可能会掉缓存 启动时按 X 键激活 SKY OC,重启后进入 BIOS 160924164727.jpg (95.63 KB, 下载次数: 1) 2016-9-24 17:47 上传 ...

维修经验

CPUE5 2686 V3和i7 6800K如何选择

日本维修技术默认用,不超频,两者功耗是一模一样的 E5 2686 V3:2.0主频,3.5睿频, 18核心36线程 ,45M L3 咸鱼大约2500~3000元 i7 6800K : 3.5主频,3.8睿频 ,6核心12线程 ,盒装3000元 评论 性能应该是26 ...

维修经验

CPUHD530硬解4K能力还是有点弱呀!

日本维修技术播放器用PotPlay 64bit,各种优化后,跑4K @120Hz视频只能到70帧左右的速度,勉强能用! 显示器用的4K的优派VP2780 未标题-1.jpg (211.97 KB, 下载次数: 0) 2016-9-26 21:29 上传 评论 这个估计你没优化 ...

维修经验

CPU6900k 1.25V到4.2体质怎么样

日本维修技术如图,体质怎么样,ring是35,没敢试了,都说ring高了毁硬件 评论 不错的U,但不算雕,上4.4就大雕了,这电压上4.5的目前没见有人发图 评论 谢谢前辈告知 评论 我这个用1.2V超的4.2,R ...

维修经验

CPUI3 6100 华擎B150M pro4超4.5g测试。

日本维修技术看看论坛没多少i3 6100的帖子,就转下自己发的show贴里面的数据,给大家参考下。家里还有当年的神U i3 540 oc 4.5G在给老妈用。 不知道数据上正常吗?有6100的朋友可以告诉下,另外是不有 ...

维修经验

CPU7系u会兼容100系主板吗?

日本维修技术RT,听说要推200系板,100系还能用吗以后。。 评论 兼容的 评论 感谢!以后换u就行了,目前消息200系板会有新的特性吗? 评论 24条PCI-E 3.0通道、支持Intel Optane混合存储技术、十个USB 3 ...

维修经验

CPU有心入5820k了,求教下温度问题

日本维修技术一直徘徊在6700k和5820k之间,6700k现在这德行直接把我推向了5820k啊,从2600k升级上来,三大件都要换,现在唯一疑惑的是IB-E ex这种顶级风冷能不能压住4.5g的5820呢?毕竟刚刚买一个多月。 ...

维修经验

CPU6600&amp;6600K才100的差价

日本维修技术太少了吧。。。 6600.JPG (106.91 KB, 下载次数: 0) 2016-10-1 10:30 上传 评论 毕竟只是i5而已…… 评论 上z170 6600也能超,等于没区别,差价能有100已经不错了 评论 然后又见不超频人士推荐超频 ...