工作人员,这个问题适合任何相信Debian linux的人,更准确地说是Raspbian,这是一个在Raspberry Pi上运行的版本:
因为Raspberry Pi的所有用户都应该知道:操作系统安装在SD卡上.问题是SD卡是闪存,这种类型的存储器仅支持有限数量的写操作.
我想知道Raspbian是否在闲置时写入SD卡.如果发生这种情况,我该怎么禁用?
我找到了这个:
DavidHärdeman在闪存设备上运行Linux的提示
如果您在USB闪存密钥上运行NSLU2,那么您可能需要做很多事情以减少底层闪存设备的磨损(因为它只支持有限数量的写入).
注意:本文档目前描述了Debian etch(4.0),需要更新到Debian squeeze(6.0)和Debian wheezy(7.0).一些提示可能仍然适用,但有些可能不适用.
默认情况下,ext3文件系统每五秒将元数据更改写入磁盘.这可以通过使用commit = N参数挂载根文件系统来增加,该参数告诉内核将写入延迟到每N秒.
内核为每个已读取的文件写入新的atime,为每次读取生成一次写入.可以通过使用noatime选项安装文件系统来禁用此功能.上述两个都可以通过添加例如noatime,commit = 120,...到/ etc/fstab来完成.这也可以通过运行命令在已安装的文件系统上完成:
mount -o remount,noatime,commit = 120 /
系统将每天运行updatedb,这将创建系统上所有文件的数据库,以便与locate命令一起使用.这也会对文件系统造成一些压力,因此您可能希望通过添加来禁用它
退出0
早在/etc/cron.daily/find脚本中.
在记录一些新信息后,syslogd将在默认安装中直接将大量日志文件同步到磁盘.您可能希望更改/etc/syslog.conf,以便每个文件名以 - (减号)开头,这意味着写入不会立即同步(这会增加系统崩溃时某些日志消息丢失的风险).例如,一行如下:
kern.*/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 restart
如果您在闪存设备上有交换分区或交换文件,您可能希望每隔一段时间将其移动到磁盘的不同部分,以确保磁盘的不同部分受到它可以生成的频繁写入的影响.对于交换文件,可以通过在删除旧交换文件之前创建新的交换文件来完成.
如果您在闪存设备上存储了交换分区或交换文件,则可以通过将/ 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低很多,以允许内核一次写出脏数据块.
可以使用自定义init脚本(例如此示例脚本)来调整所有上述内核参数.将其存储到例如/etc/init.d/kernel-params,使其可执行
chmod a + x /etc/init.d/kernel-params
并确保它是通过运行执行的
update-rc.d kernel-params默认值
注意:大多数这些设置通过增加内存使用量来减少写入磁盘的次数.这增加了内存不足情况的风险(这可能会触发内核中可怕的OOM杀手).甚至在有可用空闲内存时也会发生这种情况(例如,当内核需要分配多个连续页面并且只有碎片化的可用页面可用时).
与任何调整一样,建议您密切关注可用内存量并调整调整(例如,通过使用不太激进的缓存并增加swappiness),具体取决于您的工作负载. …