Linux写缓存的工作原理
让我们首先解释什么是回写缓存以及它如何工作,以便更好地理解 Linux 写入缓存。写入缓存是大多数硬盘驱动器上提供的一项功能,允许它们在永久写入磁盘之前将所有数据收集到驱动器的缓存中。一旦硬盘缓存中收集到一定数量的数据,整个数据块就会通过单个写入事件进行传输和存储。
这种写入方法的结果是减少了写入事件,从而改善了硬盘驱动器的数据传输并产生更快的写入速度。
在本教程中,您将了解写入缓存在 Linux 系统上的工作原理。您还将了解如何检查其中一个磁盘上是否启用了缓存,以及如何打开或关闭该设置。
在本教程中您将学习:
如何在主要 Linux 发行版上安装 hdparm
如何使用hdparm查看硬盘缓存设置
如何使用 hdparm 启用或禁用 HDD 写入缓存
在主要 Linux 发行版上安装 hdparm
为了检查硬盘驱动器的缓存设置,并通过命令行启用或禁用驱动器缓存,您需要安装 hdparm
软件包。几乎所有 Linux 发行版的官方存储库中都提供了该软件。
在某些系统上,hdparm 可能已默认安装。但如果没有,您可以使用下面适当的命令通过系统的包管理器安装该程序。
要在 Ubuntu、Debian 和 Linux Mint 上安装 hdparm:
$ sudo apt install hdparm
要在 CentOS、Fedora、AlmaLinux 和 Red Hat 上安装 hdparm:
$ sudo dnf install hdparm
要在 Arch Linux 和 Manjaro 上安装 hdparm:
$ sudo pacman -S hdparm
安装后,请查看以下示例以在 Linux 中配置硬盘驱动器缓存。
Linux 写缓存设置
大多数硬盘驱动器上默认启用回写式缓存。这项技术对于基于闪存技术且写入/擦除周期数量有限的 SSD(固态硬盘)尤其重要。通过首先将数据传输到易失性高速缓冲存储器,然后将其全部写入单个批次,回写式高速缓存延长了大多数固态硬盘的预期寿命。
并非所有系统都属于同一个“开启回写式缓存”建议组,因为回写式缓存在某些事件(例如断电等)下存在数据丢失的风险。在硬盘的缓存中没有机会被存储,并且会丢失。这一事实对于数据库服务器和类似系统尤其重要。
使用 hdparm 调整硬盘缓存设置
查看下面的 hdparm
示例,了解如何调整系统上 HDD 的缓存设置。
在开始之前,您唯一需要了解的是您希望启用或禁用缓存的驱动器设备文件的路径。在下面的示例中,我们将使用路径 /dev/sda
处的硬盘驱动器。您可以使用以下命令查看所有连接的存储设备及其相应的设备路径的列表:
# fdisk -l
使用以下带有
-W
选项的hdparm
命令来检查驱动器是否打开或关闭了写入缓存。$ sudo hdparm -W /dev/sda /dev/sda: write-caching = 1 (on)
要禁用驱动器上的写入缓存,请使用
-W 0
选项。$ sudo hdparm -W 0 /dev/sda /dev/sda: setting drive write-caching to 0 (off)
要在驱动器上启用写入缓存(建议在大多数情况下使用),请使用
-W 1
选项。$ sudo hdparm -W 1 /dev/sda /dev/sda: setting drive write-caching to 1 (on)
结束语
Linux 写入缓存 是一项可延长硬盘寿命并提供更快写入结果的功能。一些用户可能发现需要关闭写入缓存的主要原因是数据库服务器或类似系统不断对磁盘进行大量写入。如本指南中所示,使用 Linux 上的 hdparm
实用程序可以轻松设置打开或关闭。