linux flash读写老化测试指令

说白了,使用Linux测试内存读写老化的方法有三种:dd、flashbench、fiO。
做到这一点的技巧是选择正确的场景和环境。

先用dd简单测试一下。
去年运行那个项目的时候,我们测试了纯写的时间dd if=/dev/none of=test.img bs=1 M count=5 00。
大小为 1 MB,我们写入了 5 00 次。
时间衡量的是花费的总时间。
要读取测试,请计时 cat test.img > /dev/null,将文件内容发送到黑洞 /dev/null,并计时相同。
但注意,dd太暴力了。
去年,我使用环境参数闪存了一个 USB 驱动器。
说实话,挺尴尬的。

说到flashbench,这个工具是针对闪存的。
我记得安装好久都是固定的,后来发现必须用sudo apt install flashbench。
只要运行命令flashbench -d /dev/sdx,它就会立即进行一系列的读写测试。
细节非常重要。
例如,当我一年前尝试 eMMC 时,它默认使用 4 KB 块大小。
当接触线数据较差时,结果尤其准确。
最后,Fio功能非常齐全,但参数复杂。
去年测试NVMe磁盘时,我们测试的是fio --name=randread --ioengine=libaio --rw=randread --bs=4 k --size=1 g --numjobs=1 -runtime=6 0,4 KB块,1 GB文件,一个线程运行6 0秒。
起初我以为 numjobs 是一个多功能测试,但我发现我错了。
由于硬件太弱,测试并不准确。
等等,还有,记得加上--group_reporting,不然后台进程会随机上报数据,就难看了。

总之,dd测试速度,flashbench测试闪存的功力,fiO最模拟真实的东西。
但不仅仅是逃跑。
去年有哥们忘了加上--norandum。
结果,SSD的寿命测得低于5 0%。
建议每次测试前进行备份,尤其是大数据。

如何测试linux磁盘的读写速度

说实话,当我担任系统管理员时,我经常使用这些命令来测试我的磁盘的读写速度。
以前,每当遇到系统性能瓶颈时,您都必须开始对硬件进行故障排除,这些命令很有用。

我记得有一次我们公司启动了一个新的大型项目。
服务器上的数据库文件越来越大,读写速度逐渐成为瓶颈。
为了测试写入速度,我使用命令“timeddif=/dev/zeroof=/testw.dbfbs=4 kcount=1 00000”,发现写入速度实际上要慢得多。
后来我测试了读取速度,使用命令“timeddif=/dev/sdbof=/dev/nullbs=4 k”,发现读取速度一般。

有趣的是,我还发现,如果想绕过内存缓存,在命令中添加“oflag=direct”可以让测试结果更接近实际。
还有一次,我怀疑我的硬盘缓存有问题,所以我在命令中添加了“oflag=sync”。
结果,读写速度变得更慢。
硬盘缓存似乎仍然发挥着重要作用。

后来为了更全面的测试,我使用命令“timeddif=/dev/sdbof=/testrw.dbfbs=4 k”来测试同时读写速度。
我们发现同时读写时磁盘性能会下降,这也证明了我们之前的猜测。

当然,这些命令的具体用法可能会根据您的操作系统的不同而有所不同,但基本概念是相同的。
当时我不明白为什么有些命令的性能在添加某些参数后会发生变化。
后来查资料才知道,这是操作系统针对硬件操作的一些优化策略。

简而言之,这些命令是系统管理员了解和优化硬件性能的有用工具。
但具体使用时,应根据实际情况调整参数。
我自己没有尝试过运行它,我记得数据在X左右。
请检查最新的命令语法。

linux 系统磁盘调优及分析相关命令汇总

结论:命令列表比较乱,部分命令参数错误或者需要root权限。

du-xBM--max-深度=2 /var|sort-rn|head-n1 5 正确。
du-h--max-深度=1 错误,没有-l。
du-s|sort-n|tail 是正确的。
du-b--max-depth=1 |sort-nr|perl
错误,perl语法错误。
du-h/path|sort-h 是正确的。
watch-n6 0du/var/log/messages 是正确的。
find.-typed-name'.svn'-print0|xargs-0rm-rdf 是正确的。

df-P|column-t 正确。
watch-d-n5 df 错误,缺少 -i。
df-i/dev/sda1 是正确的。
错误 df-h|grep-v^none|(readheader;echo "$header";sort-rn-k5 ),排序参数的语法不正确。
df-xtmpfs|grep-vE'(gvfs|procbususb|rootfs)' 是正确的。
df-H 正确。
fdisk -l 是正确的。
fdisk -u 是正确的。
fdisk -s /dev/sda1 是正确的。
iostat -m -d /dev/sda1 是正确的。
hdparm -t /dev/sda 是正确的。

find-L/-samefile/path/to/file-execls-ld{}+ 正确。
find./-typef-mtime+3 6 5 -execrm-f{} 是正确的。
find.-typef-size+1 00M 是正确的。
find.-typef-execls-s{};|sort-n-r|head-5 错误,语法错误。
sar-u1 6 0 是正确的。
ulimit-n6 5 5 3 5 是正确的。

建议:修复错误命令,部分命令需要root权限。