工作人员,这个问题适用于任何相信 Debian linux 的人,更准确地说是 Raspbian,它是在 Raspberry Pi 板上运行的版本:
Raspberry Pi 的所有用户都应该知道:操作系统安装在 SD 卡上。而且问题是SD卡是闪存,这种类型的内存只支持有限数量的写操作。
我想知道Raspbian是否在空闲时写入SD卡。如果发生这种情况,我该如何禁用?
我找到了这个:
David Härdeman 在闪存设备上运行 Linux 的技巧
如果您在 USB 闪存盘上运行 NSLU2,您可能需要做很多事情来减少底层闪存设备的磨损(因为它只支持有限数量的写入)。
注意:本文档当前描述的是 Debian etch (4.0),需要更新到 Debian squeeze (6.0) 和 Debian wheezy (7.0)。有些提示可能仍然适用,但有些可能不适用。
默认情况下,ext3 文件系统每五秒将元数据更改写入磁盘。这可以通过使用 commit=N 参数安装根文件系统来增加,该参数告诉内核延迟写入每 N 秒。
内核为每个已读取的文件写入一个新的 atime,为每次读取生成一个写入。这可以通过使用 noatime 选项挂载文件系统来禁用。上述两项都可以通过在 /etc/fstab 中添加例如 noatime,commit=120,... 来完成。这也可以通过运行以下命令在已挂载的文件系统上完成:
mount -o remount,noatime,commit=120 /
系统每天都会运行 updatedb,它会为系统上的所有文件创建一个数据库,以便与 locate 命令一起使用。这也会给文件系统带来一些压力,所以你可能想通过添加来禁用它
出口 0
在 /etc/cron.daily/find 脚本的早期。
syslogd 在默认安装中会在记录一些新信息后直接将大量日志文件同步到磁盘。您可能需要更改 /etc/syslog.conf 以便每个文件名都以 -(减号)开头,这意味着写入不会立即同步(这会增加系统崩溃时丢失某些日志消息的风险)。例如,如下一行:
内核。* /var/log/kern.log
将更改为:
kern.* -/var/log/kern.log
您可能还希望通过将某些消息类别记录到 /dev/null 来完全禁用它们,有关详细信息,请参阅 syslog.conf(5)。
此外,syslogd 喜欢每 20 分钟写一次 -- MARK -- 行来记录文件,以表明 syslog 仍在运行。这可以通过更改 /etc/default/syslogd 中的 SYSLOGD 来禁用,以便它读取
SYSLOGD="-m 0"
进行任何更改后,您需要通过运行重新启动 syslogd
/etc/init.d/syslogd 重启
如果您在闪存设备上有一个交换分区或交换文件,您可能希望不时将其移动到磁盘的不同部分,以确保磁盘的不同部分受到它可能生成的频繁写入的影响. 对于交换文件,这可以通过在删除旧交换文件之前创建一个新交换文件来完成。
如果您在闪存设备上存储了交换分区或交换文件,则可以通过将 /proc/sys/vm/swappiness 设置为零来确保尽可能少地使用它。
内核还有一个名为laptop_mode 的设置,它可以延迟写入磁盘(最初是为了让笔记本电脑磁盘在不使用时减速,因此得名)。/proc/sys/vm/ 下的许多文件控制它的工作方式:
/proc/sys/vm/laptop_mode:读取后多少秒应该开始写出更改的文件(这是基于读取将导致原本旋转的磁盘再次旋转的假设)。
/proc/sys/vm/dirty_writeback_centisecs:内核应该多久检查一次是否有“脏”(已更改)数据写入磁盘(以厘秒为单位)。
/proc/sys/vm/dirty_expire_centisecs:在内核认为“脏”数据足够老可以写入磁盘之前,它应该有多老。通常将其设置为与上面的dirty_writeback_centisecs 相同的值是一个好主意。
/proc/sys/vm/dirty_ratio:在生成数据的进程将被强制写出之前用于存储脏数据的最大内存量(百分比)。将其设置为较高的值应该不是问题,因为如果系统内存不足,也会发生写出。
/proc/sys/vm/dirty_background_ratio:允许停止将脏数据写入磁盘的较低内存量(百分比)。这应该比上面的dirty_ratio低很多,以允许内核一次性写出大块的脏数据。
上述所有内核参数都可以使用自定义初始化脚本进行调整,例如这个示例脚本。将其存储到例如 /etc/init.d/kernel-params,使其可执行
chmod a+x /etc/init.d/kernel-params
并确保它通过运行执行
update-rc.d 内核参数默认值
注意:大多数这些设置通过增加内存使用量来减少写入磁盘的次数。这增加了内存不足情况的风险(这可能会触发内核中可怕的 OOM 杀手)。这甚至会在有可用内存可用时发生(例如,当内核需要分配多个连续页面并且只有零碎的空闲页面可用时)。
与任何调整一样,建议您密切关注可用内存的数量并根据您的工作负载调整调整(例如,通过使用不那么激进的缓存和增加交换性)。
本文由 David Härdeman 提供
返回到 NSLU2 页面上的 Debian。
http://www.cyrius.com/debian/nslu2/linux-on-flash/
有人有更多提示吗?