linux内存做硬盘缓存

linux内存做硬盘缓存,第1张

Linux中要查看硬盘缓存大小,可以使用hdparm命令。 1、在终端中执行如下命令。 sudo hdparm -I /dev/sdb2、执行效果如下图所示,其中cache/buffer size行即为缓存大校 说明:-I:直接读取硬盘所提供的硬件规格信息,/dev/sdb指的电脑中的第二块

linux的shell用一个exec函数把用户的命令来执行,数据写入的时候,先把数据写入到内核的缓冲区,使用write函数(linux的系统调用函数),在数据去满或者sync的时候,再把数据写入到磁盘,把数据写入到磁盘的时候使用cpu来写,写的细节,大概是cpu把所有的外设(注入磁盘,键盘,鼠标等)都有一个端口可以直接访问,不过需要有对应的驱动程序,写的时候就通过对应的接口来写,真正想彻底了解的话,必须要读linux内核代码了。。。。

1、先熟悉两个特殊的设备:

(1)/dev/null:回收站、无底洞。

(2)/dev/zero:产生字符。

2、测试磁盘写能力

代码如下:

time dd if=/dev/zero of=/testw.dbf bs=4k count=100000

因为/dev//zero是一个伪设备,它只产生空字符流,对它不会产生IO,所以,IO都会集中在of文件中,of文件只用于写,所以这个命令相当于测试磁盘的写能力。命令结尾添加oflag=direct将跳过内存缓存,添加oflag=sync将跳过hdd缓存。

3、测试磁盘读能力

代码如下:

time dd if=/dev/sdb of=/dev/null bs=4k

因为/dev/sdb是一个物理分区,对它的读取会产生IO,/dev/null是伪设备,相当于黑洞,of到该设备不会产生IO,所以,这个命令的IO只发生在/dev/sdb上,也相当于测试磁盘的读能力。(Ctrl+c终止测试)

4、测试同时读写能力

代码如下:

time dd if=/dev/sdb of=/testrw.dbf bs=4k

在这个命令下,一个是物理分区,一个是实际的文件,对它们的读写都会产生IO(对/dev/sdb是读,对/testrw.dbf是写),假设它们都在一个磁盘中,这个命令就相当于测试磁盘的同时读写能力。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7607525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存