[转帖]Linux文件系统的几个性能测试软件小结
https://developer.aliyun.com/article/297631#:~:text=Linux%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%87%A0%E4%B8%AA%E6%80%A7%E8%83%BD%E6%B5%8B%E8%AF%95%E8%BD%AF%E4%BB%B6%E5%B0%8F%E7%BB%93%201%201.Iozone%20iozone%E6%98%AF%E4%B8%80%E4%B8%AA%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84benchmark%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%8F%AF%E4%BB%A5%E6%B5%8B%E8%AF%95%E4%B8%8D%E5%90%8C%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B8%AD%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E8%AF%BB%E5%86%99%E6%80%A7%E8%83%BD%E3%80%82%20%E5%8F%AF%E4%BB%A5%E6%B5%8B%E8%AF%95%20Read%2C%20write%2C%20re-read%2C,...%203%203.Simul%20Simul%E6%98%AF%E4%B8%80%E4%B8%AA%E5%B9%B6%E8%A1%8C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%B5%8B%E8%AF%95%E5%B7%A5%E5%85%B7%EF%BC%8C%E5%AE%83%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E6%A8%A1%E6%8B%9F%E5%A4%9A%E4%B8%AA%E7%BB%93%E7%82%B9%E5%92%8C%E8%BF%9B%E7%A8%8B%E6%9D%A5%E6%89%A7%E8%A1%8C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E6%93%8D%E4%BD%9C%E6%9D%A5%E6%B5%8B%E8%AF%95%E5%B9%B6%E8%A1%8C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E7%9A%84%E5%87%86%E7%A1%AE%E6%80%A7%E5%92%8C%E4%B8%80%E8%87%B4%E6%80%A7%E3%80%82%20%E4%B8%BB%E8%A6%81%E5%8F%82%E6%95%B0%E5%90%AB%E4%B9%89%EF%BC%9A%20...%204%204.Fdtree

曾经测试Linux系统下的分布式集群系统的性能,使用了一些测试软件,公司让我给部门同事做一次基础培训,于是翻看以前所写的记录资料挑选了其中几个,所记之处并不完全,只记录使用的功能。
1.Iozone
iozone是一个文件系统的benchmark工具,可以测试不同的操作系统中文件系统的读写性能。
可以测试 Read, write, re-read, re-write, readbackwards, read strided, fread, fwrite, random read, pread, mmap, aio_read,aio_write 等等不同的模式下的硬盘的性能。
测试参数: -i # 用来指定测试内容,我主要用到以下两种:
0=write/rewrite
1=read/re-read
例如测试写:-i 0,测试读和写:-i 0 -i 1。
-R 产生execl格式的输出日志
-b 将产生二进制的execl的日志文件名
-s 测试的文件大小
-r 文件块大小
-a 在希望的文件系统上测试,不过只有-a的话会进行全面测试,要花费很长时间,最好用-i指定测试范围。

上图显示了一个iozone的测试ext3本地文件系统结果的一部分,测试文件块的大小为1m,测试文件的大小4G,测试包括文件的关闭时间和flush时间,测试内容包含写/重写、读/重读,测试时产生的二进制日志会保存在/home目录下的test.xls中。
通常情况下,测试的文件大小要求至少是系统cache的两倍以上,这样,测试的结果才是真是可信的。如果小于cache的两倍,文件的读写测试读写的将是cache的速度,测试的结果大打折扣。
2.Mdtest
Mdtest是一个测试文件系统元数据性能的工具。
我们经常用到的一些参数的含义:
-d 测试运行的目录
-i 测试循环的次数
-n 每个进程将要创建/统计/删除的目录和文件数目
-w 文件创建以后写入多少bytes
-p 循环前的时间延迟
-D 只针对目录进行测试
-F 只针对文件进行测试

上图是一个mdtest的测试结果,测试参数为:测试运行的目录为/mnt/aaa,创建/统计/删除的目录和文件数为30000,反复执行3次。
从上图可看到目录创建每秒能够完成的操作数最大为7016.495次,每秒能够完成的操作数平均为6691.628次;文件创建每秒能够完成的操作数最大为63521.371次,每秒能够完成的操作数平均为62325.578次。(因测试为本地文件系统,故数值比较大)
3.Simul
Simul是一个并行文件系统的测试工具,它可以同时模拟多个结点和进程来执行文件系统的操作来测试并行文件系统的准确性和一致性。
主要参数含义:
-d 测试将要运行的目录
-f 开始测试时的测试编号(缺省为0)
-l 最后测试时的测试编号(缺省为39)
-i 测试过程中包含的测试编号
-e 测试过程中不包括的测试编号
-n每次测试重复的次数
-N 所有的测试重复的次数

由上图可知,测试目录为/mnt/aaa/,测试执行0到39的所有测试,测试结果为All test passed!
4.Fdtree
Fdtree是一个用来测试文件系统元数据性能的工具,同时也可以用来进行压力测试。
参数含义:
-C 只创建目录树
-D 打开调试
-R 只移除目录树
-l 创建目录的递归等级,默认为4
-d 每个等级所要创建的目录个数
-f 每个目录下所要创建的文件个数
-o 开始测试时的路径名
-s 文件大小(是以block计算的,linux下block大小为4096Bytes),默认为10
fdtree.bash –d 1 –l 2 –f 10000 –s10000
这个例子是一个文件压力的测试,创造的目录结构的等级为2,每个等级下创建1个目录,每个目录下文件的个数为10K,每个文件的大小为10000*4096Bytes=40.96MB,总的数据大小为2*10000*40.96MB=819.2GB。
fdtree.bash -d 10000 -l 100
这个例子是一个目录压力的测试,创造的目录结构的等级为100,每个等级下目录的个数为10K。第一等级下的总目录个数为10K,第二等级下的总目录总个数为10K*10K,第三等级下的总目录个数为10K*10K*10K,依次类推!

上图显示了一个Fdtree的测试结果,目录等级为5,每个等级下创建目录的个数为5,每个目录下文件的个数为5,文件大小为40KB。
[转帖]Linux文件系统的几个性能测试软件小结的更多相关文章
- Linux文件系统的几个性能测试软件小结
曾经测试Linux系统下的分布式集群系统的性能,使用了一些测试软件,公司让我给部门同事做一次基础培训,于是翻看以前所写的记录资料挑选了其中几个,所记之处并不完全,只记录使用的功能. 1.Iozone ...
- [转帖]Linux文件系统详解
Linux文件系统详解 https://www.cnblogs.com/alantu2018/p/8461749.html 贼复杂.. 从操作系统的角度详解Linux文件系统层次.文件系统分类.文件系 ...
- Windows与Linux文件系统互访的几种方法
首先,我们知道基于文件的几种服务:ftp,sftp,这两种服务都是文件传输服务,偏重于网络传输,并不是实时互访.通常,我们需要在远程和本地 同时操作同一个目录,如:在Windows下使用各种强大的ID ...
- Linux文件系统学习(一)之相关概念⭐⭐⭐
“一切皆是文件”是 Unix/Linux 的基本哲学之一.不仅普通的文件,目录.字符设备.块设备.套接字等在 Unix/Linux 中都是以文件被对待:它们虽然类型不同,但是对其提供的却是同一套操作界 ...
- [转帖]linux操作系统测试工具
linux操作系统测试工具 http://cfdtesting.com/879156.html 作者: minions_222 来源: CFDTesting.com采编 发布于: ...
- linux文件系统体系结构 和 虚拟文件系统(VFS)
图 1. Linux 文件系统组件的体系结构 用户空间包含一些应用程序(例如,文件系统的使用者)和 GNU C 库(glibc),它们为文件系统调用(打开.读取.写和关闭)提供用户接口.系统调用接口的 ...
- Linux文件系统
今天学习了Linux文件系统,现在来做个小总结. 首先Linux中一切都是文件,下面这个清单是Linux系统的顶层目录结构. 清单 1. Linux 系统的顶层目录结构 / 根目录 ├── bin 存 ...
- linux 文件系统简介
linux文件系统简介 文件系统是linux的一个十分基础的知识,同时也是学习linux的必备知识. 本文将站在一个较高的视图来了解linux的文件系统,主要包括了linux磁盘分区和目录.挂载基 ...
- Linux文件系统层次结构标准
该标准的目的是定义Linux文件系统的标准路径,使得开发者和用户可以在合理的位置找到需要的东西. Linux的文件布局的大体想法是将文件和目录分为如下3组: 对运行Linux的某一特定系统唯一的文件和 ...
- linux文件系统节点详解
linux文件系统有两层结构,逻辑结构和物理结构.也就是inode和block. 每个文件都有一个inode, 记录文件属性:权限,时间还有最重要的block号码. block是实际存放文件内容的地方 ...
随机推荐
- Boost程序库完全开发指南:1-开发环境和构建工具
Boost官方于2019年12月发布的1.72版编写,共包含160余个库/组件,涵盖字符串与文本处理.容器.迭代器.算法.图像处理.模板元编程.并发编程等多个领域,使用Boost,将大大增强C++ ...
- 最新系统MacOs13 Ventura(M1/M2芯片) + Parallels Desktop 18(PD18史上最强虚拟机)永久使用攻略
众神殿内,高朋满座,胜友如云,Vmware.VirtualBox.Utm等虚拟机大神群英荟萃,只见位于C位王座上的Parallels怅惘抬头,缓缓逡巡,睥睨群小,目光到处,无人敢抬头对视. 是的,如果 ...
- GaussDB技术解读丨数据库迁移创新实践
本文分享自华为云社区<DTCC 2023专家解读丨GaussDB技术解读系列之数据库迁移创新实践>,作者:GaussDB 数据库. 近日,以"数智赋能 共筑未来"为主题 ...
- 执行计划缓存,Prepared Statement性能跃升的秘密
摘要:一起看一下GaussDB(for MySQL)是如何对执行计划进行缓存并加速Prepared Statement性能的. 本文分享自华为云社区<执行计划缓存,Prepared Statem ...
- 介绍3种ssh远程连接的方式
摘要:SSH(安全外壳协议 Secure Shell Protocol,简称SSH)是一种加密的网络传输协议,用于在网络中实现客户端和服务端的连接,典型的如我们在本地电脑通过 SSH连接远程服务器. ...
- JS遍历循环方法性能对比:for/while/for in/for of/map/foreach/every
这周codeReview例会,又遇到map与foreach到底谁问题.单独图方便,我会选择用map一个函数搞定一切.但是从语义的角度来讲,如果只是单纯遍历,还是推荐选择foreach.其实formap ...
- 火山引擎DataLeap的Data Catalog系统公有云实践 (上)
更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群 前言 Data Catalog 通过汇总技术和业务元数据,解决大数据生产者组织梳理数据.数据消费者找数和理解数的业 ...
- Spring Boot Admin 查看 Client 日志
日志配置如下:如何将不同业务模块产生的日志 分多文件记录 此时 Spring Boot Admin 中看不了 Client 的日志 Logfile ViewerBy default the logfi ...
- C++11实用特性1
1 原始字面量 有时候在输出一个路径字符串时,编译器会将其中的部分内容识别成转义字符进行输出,可以用R "xxx(原始字符串)xxx"其中()两边的字符串可以省略.原始字面量R可以 ...
- Codeforces 670C (离散化入门题)
原题链接:https://codeforces.com/problemset/problem/670/C 题目大意: 有 n 个人,每人会且仅会一种语言. (n ≤ 2e5) 语言有各自的编号(≤ 1 ...