Здравейте колеги,
Написах едно скриптче за fio да си тестваме дисковете. Идеята ми е резултатът да наподобява този на CrystalDiskMark:
GeSHi (Bash):
#!/bin/bash
## Test your drive using fio. The output should be similar to CrystalDiskMark on Windows
## fio_like_crystaldiskmark.sh
## by @makeme v.2020-08-07
if ! [ -x "$(command -v fio)" ]; then
echo 'Please install fio' >&2
exit 1
fi
filename=fiotest_
OPTIONS="--size=1G --ioengine=libaio --runtime=60 --direct=1"
## TESTS
SEQ1M_Q8T1_read ()
{
fio --name=$filename$FUNCNAME --bs=1M --rw=read --max-jobs=1 --iodepth=16 $OPTIONS | grep READ | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename*
}
SEQ1M_Q8T1_write ()
{
fio --name=$filename$FUNCNAME --bs=1M --rw=write --max-jobs=1 --iodepth=16 $OPTIONS | grep WRITE | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename*
}
SEQ1M_Q1T1_read ()
{
fio --name=$filename$FUNCNAME --bs=1M --rw=read --max-jobs=1 --iodepth=2 $OPTIONS | grep READ | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename*
}
SEQ1M_Q1T1_write ()
{
fio --name=$filename$FUNCNAME --bs=1M --rw=write --max-jobs=1 --iodepth=2 $OPTIONS | grep WRITE | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename*
}
RADN4K_Q32T16_read ()
{
fio --name=$filename$FUNCNAME --bs=4k --rw=randread --max-jobs=16 --iodepth=64 $OPTIONS | grep READ | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename*
}
RADN4K_Q32T16_write ()
{
fio --name=$filename$FUNCNAME --bs=4k --rw=randwrite --max-jobs=16 --iodepth=64 $OPTIONS | grep WRITE | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename*
}
RADN4K_Q1T1_read ()
{
fio --name=$filename$FUNCNAME --bs=4k --rw=randread --max-jobs=1 --iodepth=2 $OPTIONS | grep READ | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename*
}
RADN4K_Q1T1_write ()
{
fio --name=$filename$FUNCNAME --bs=4k --rw=randwrite --max-jobs=1 --iodepth=2 $OPTIONS | grep WRITE | awk '{print $3}' | sed 's/(//;s/),//' && rm $filename*
}
## Little info before test
df -h .
echo
## Let's go
echo -e "TestName READ WRITE" "\n"\
"SEQ1M_Q8T1" $(SEQ1M_Q8T1_read) $(SEQ1M_Q8T1_write)"\n"\
"SEQ1M_Q1T1" $(SEQ1M_Q1T1_read) $(SEQ1M_Q1T1_write)"\n"\
"RADN4K_Q32T16" $(RADN4K_Q32T16_read) $(RADN4K_Q32T16_write)"\n"\
"RADN4K_Q1T1" $(RADN4K_Q1T1_read) $(RADN4K_Q1T1_write) | column -t
Инсталиране от гит:GeSHi (Bash):
wget https://raw.githubusercontent.com/makemegit/fio_like_crystaldiskmark/master/fio_like_crystaldiskmark.sh
chmod +x fio_like_crystaldiskmark.sh
./fio_like_crystaldiskmark.sh
Стартира се в настоящата директория, за да се тества диска във който се намираш в момента.
Ще се радвам да си тествате дисковете и да пейстнете тук резултатите заедно с модела.Ето и моите на лаптопа:
Samsung 970 Evo NVMeGeSHi (Bash):
$ fio_like_crystaldiskmark.sh
Filesystem Size Used Avail Use% Mounted on
/dev/nvme0n1p1 458G 309G 126G 72% /
TestName READ WRITE
SEQ1M_Q8T1 3335MB/s 3140MB/s
SEQ1M_Q1T1 3264MB/s 2942MB/s
RADN4K_Q32T16 919MB/s 302MB/s
RADN4K_Q1T1 84.0MB/s 196MB/s
Seagate Barracuda Pro ST1000LM049 SATA 6Gb/s 2.5 HDDGeSHi (Bash):
$ fio_like_crystaldiskmark.sh
Filesystem Size Used Avail Use% Mounted on
/dev/sda 916G 490G 380G 57% /storage
TestName READ WRITE
SEQ1M_Q8T1 132MB/s 137MB/s
SEQ1M_Q1T1 136MB/s 141MB/s
RADN4K_Q32T16 749kB/s 544kB/s
RADN4K_Q1T1 168kB/s 177kB/s
*8 минути е максималното време за тестване, но ако желаете може да го намалите от "--runtime=60" (сега е 8 теста по макс 1 мин)
https://github.com/makemegit/fio_like_crystaldiskmark