linux 下对SSD 进行读写测试

1、列举 PCIE设备

lspci

在这里插入图片描述

2、mount ssd 设备

mkdir /ssd
mount /dev/nvme0n1p1 /ssd

3、对SSD 进行写操作

cd /ssd
dd if=/dev/urandom of test.txt bs=1M count=1

dd
用指定大小的块拷贝一个文件,并在拷贝的同时进行指定的转换。

  1. if=文件名:输入文件名,缺省为标准输入。即指定源文件。< if=input file >
  2. of=文件名:输出文件名,缺省为标准输出。即指定目的文件。< of=output file >
  3. ibs=bytes:一次读入bytes个字节,即指定一个块大小为bytes个字节。
    obs=bytes:一次输出bytes个字节,即指定一个块大小为bytes个字节。
    bs=bytes:同时设置读入/输出的块大小为bytes个字节。
  4. cbs=bytes:一次转换bytes个字节,即指定转换缓冲区大小。
  5. skip=blocks:从输入文件开头跳过blocks个块后再开始复制。
  6. seek=blocks:从输出文件开头跳过blocks个块后再开始复制。 注意:通常只用当输出文件是磁盘或磁带时才有效,即备份到磁盘或磁带时才有效。
  7. count=blocks:仅拷贝blocks个块,块大小等于ibs指定的字节数。
  8. conv=conversion:用指定的参数转换文件。
    ascii:转换ebcdic为ascii
    ebcdic:转换ascii为ebcdic
    ibm:转换ascii为alternate ebcdic
    block:把每一行转换为长度为cbs,不足部分用空格填充
    unblock:使每一行的长度都为cbs,不足部分用空格填充
    lcase:把大写字符转换为小写字符
    ucase:把小写字符转换为大写字符
    swab:交换输入的每对字节
    noerror:出错时不停止
    notrunc:不截短输出文件
    sync:将每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

4、对SSD 进行读操作

4.1 Linux释放cache

需要注意, linux 内部有cache 机制, 这会导致它在寻找磁盘之前到磁盘缓存寻找的方式。如果它发现该资源在缓存中,则该请求不会发送到磁盘。如果我们清理缓存,磁盘缓存就起不到作用了,系统会到磁盘上寻找资源。
因此, 进行读之前,需要进行清cache 的操作,具体如下:

echo xx > /proc/sys/vm/drop_caches

其中 xx 的值为是0-3之间的数字,代表不同的含义:

0:不释放(系统默认值)

1:释放页缓存

2:释放dentries和inodes

3:释放所有缓存

4.2 从ssd 中拷贝文件,进行读操作
cp /ssd/test.txt  /dev/test2.txt

猜你喜欢

转载自blog.csdn.net/shenjin_s/article/details/126871923