如何限制根分区磁盘访问以允许驱动器进入待机模式?

如何限制根分区磁盘访问以允许驱动器进入待机模式?

当我的系统上没有用户时,我希望硬盘可以进入低功耗状态。我意识到这可能无法连续 24 小时 100% 实现,但系统在不使用时可以保持空闲几个小时似乎是合理的。

我的系统是无头的,并且运行有限数量的服务。主要服务是:exim4、mythtv-backend、nfs、samba、cups、apt-cacher-ng

假设驱动器已启用进入待机模式。另外,增加写回超时时间也是不可接受的,因为我的系统没有 UPS。

答案1

hdparm让您设置驱动器的旋转时间(磁盘进入待机模式之前不活动的时间)或将其置于待机或睡眠状态。

# set spindown time for sda drive to 1 min
sudo hdparm -S 12 /dev/sda 
# set sdb drive to standby mode
sudo hdparm -y /dev/sdb
# put sdc drive to sleep
sudo hdparm -Y /dev/sdc
# check drive state (active/standby/sleeping)
sudo hdpam -C /dev/sdc

/etc/hdparm.conf包含在启动时自动运行的 hdparm 命令。以下是我的一个代码片段:

/dev/sda {
  # apm 127: Highest performance that allows spindown
  apm = 127
  # spindown 120 = 10 min 
  spindown_time = 120
}

并非所有命令都适用于所有硬盘型号,您需要进行试验。

笔记本模式也适用于非笔记本电脑,其目的是让磁盘尽可能处于睡眠状态。

电源TOP是一个用于追踪不必要的后台活动的实用程序。

lesswatts.org有许多关于硬盘减速的提示。

写回超时:据我所知,如果不 a) 增加写回超时和 b) 禁用系统日志同步,主磁盘就不可能空闲。

一种解决方法可能是使用 SSD 作为根磁盘,因为它们的电量本来就比较低?

追踪活动:可以根据以下信息调试磁盘访问来自哪里:laptop-mode 常见问题- 参见 5 Spinup 调试。

引用:

我的磁盘一直在旋转,但我不知道是什么原因造成的。我可以调试它吗?

是的,你可以。但首先,请检查你是否已将 syslog.conf 修改为不同步,如上一节的最后一个问题所述。要调试磁盘活动,你可以执行以下操作:

echo 1 > /proc/sys/vm/block_dump

(警告:你执行此操作之前必须禁用 syslogd或者您必须确保内核输出未被记录。如果您忘记了这一点,您的系统可能会陷入反馈循环,其中 syslogd 导致磁盘活动,这导致内核输出,这导致 syslogd 进行更多磁盘活动,等等!)

这将在内核中启用文件/磁盘活动调试。您可以使用 dmesg 读取输出。完成后,使用以下命令禁用块转储

echo 0 > /proc/sys/vm/block_dump

禁用 syslogd 同步:请参阅笔记本电脑模式常见问题解答和 lesswatts.org /etc/syslog.conf

在最近的 Ubuntu 中这个文件不存在,请改为查找/etc/rsyslog.d/*.conf

语法是相同的 - 在每个日志文件前面加上破折号,如下所示:

kern.*              -/var/log/kern.log

dirty_writeback_centisecs这将关闭 syslog 守护进程的同步,这意味着日志将以间隔(默认每 5 秒)写入磁盘,而不是每次有新的日志条目时写入。

答案2

如果您有足够的 RAM,您可以使用 tmpfs 将临时文件系统移动到内存。编辑 /etc/fstab 并添加:

tmpfs       /tmp        tmpfs   defaults    0   0
tmpfs       /var/run        tmpfs   defaults    0   0
tmpfs       /var/lock       tmpfs   defaults    0   0

答案3

在我的笔记本电脑上,我将 /var/log 安装到 tmpfs ram 驱动器。这样可以大大减少磁盘写入,但当然,重新启动时所有日志消息都会被丢弃。当您运行 exim 等服务时,您可能不希望出现这种情况。

tmpfs /var/log tmpfs defaults,noatime,mode=1777 0 0

并在 /etc/rc.local

mkdir /var/log/apt

答案4

将其安装到noatime

更多 RAM 也有帮助(更大的缓冲区和缓存)

相关内容