Linux 版 (精华区)

发信人: clx (楚留香), 信区: Unix
标  题: 使用电池供电的 Linux Mini-HOWTO(05)
发信站: 紫 丁 香 (Sun Jun 28 10:08:44 1998), 转信

使用电池供电的 Linux Mini-HOWTO (迷你HOWTO) : 改变某些一般的
系统设定 
Previous: 先进能源管理 APM
Next: 附录 


4. 改变某些一般的系统设定 

在我拿到 Linux 并在我的笔记电脑上安装、执行後, 我发觉它会
每几秒就 会存取一次硬碟,就算并没有任何的使用者签入系统内!
这就是硬碟可能就 从没有进入它的能源省电模式。能够减少硬碟的
动作的话就可以很明显地增 加电池的使用时间,以下是我所□集的
配方。 

我使用 RedHat 4.1 测试了所有的方法,有些建构设定的地方可能
会与你所 使用的 Linux 供应版本不同。(如果真如此,请您让我知
道。)

4.1. crond 精灵与 atrun精灵

请检查你的 /etc/crontab 档案看看是否它会在每分钟动作一次 。你
会看到 atrun 常会出现在□面。

使用 at 命令可以让你将未来要做的命令放在命令停待区内, 时间
到 了就会执行它们。 有些 Linux 系统使用自订的 atd 精□来做这
个工 作, 其他的 (例如 RedHat) 让 crond 精灵每分钟执行 atrun
一次。

大部份的系统上是否需如此做的, 因为 at 命令很少会依赖一定的
时 间内被执行, 因此如果你在你的 /etc/crontab 档案内发现下面
这行:

     # Run any at jobs every minute
     * * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun

你就可以安全地把它改成:

     # Run any at jobs every hour
     00 * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun

细节请阅读 man 5 crontab。 有些人就算在没有执行 crond 精 灵下还
是可以动作,因此如果你知道你在做什麽,你可以考虑完全地把它
给 关闭掉。

4.2. update / bdflush 精灵

Linux 在任何时候都在处理著很多的已开启档案的缓冲区,来做系
统很确认 档案有任何改变时能够愈快存档愈好,不然等到系统当机
时已做的改变就会 不见了。

update / bdflush 精灵就是用来照顾这件时的。(这是同一个程 式的
两个名字, 因此你可以使用两个其中的一个名字来启动这个精灵。
) 原来的设定会让这个精灵每 5 秒钟呼叫 flush 以及每 30 秒钟呼
叫 sync 一次。

在我的 Fujitsu 富士通磁碟上会造成不停的存取。(好像这个硬碟
就算跟本 什麽也没改变的状况下会将它的记忆体快取给清除掉。但
这要看你的硬碟的 轫体: 有些朋友告诉我说就算没有做像下面那样
的修改他们的硬碟还是可以 进入本身的省电模式下。)

因为 Linux 并像以前那样常当机了, 我就将两个数值都改成为
3600 秒 (=1 小时 )。这样一点也不会造成任何问题,而且原本常
会有的磁碟存取动 作就停止了。 (但是如果我的系统现在当机了,
当然一定会有许多破损的档 案了。)

RedHat 4.1: 在 /etc/inittab 内,将 update 呼叫改成:

     ud::once:/sbin/update -s 3600 -f 3600

Suse 4.4.1: update is called in /sbin/init.d/boot.

Slackware: update is called in /etc/rc.d/rc.S.

See man update for details.

4.3. syslogd 精灵

syslogd 精灵负责很多在 /var/log/ 目录内可找到的 Linux 系统日志
档案。原定 syslogd 会在每次有系统讯息被记录时同
 步存到日志档
案内。

你可以在 /etc/syslog.conf 内使用斜号 / 接在档案名称前将这 个功
能关闭。以下是我在我的系统内找到的 syslog.conf例子:

     # Log anything (except mail) of level info or higher.
     # Don't log private authentication messages!
     *.info;mail.none;authpriv.none -/var/log/messages

同样的,如果当系统当机时,问题讯息是不会被存到磁碟内的。
Dilemma...

4.4. init 命令

在开机时, 初始时的处理程式以及精灵们是经由 init 命令来开始
执 行的。这个命令 (又是它 ) 在每次它所建立的处理程式前会呼
叫 sync。

你可以在原始程式码中将这个 sync() 呼叫给移走,然後再重新编译
它。

要避免发生档案缓冲遗失的问题,你应该在你的系统的 
/etc/rc.d/init.d/halt 命令手稿内在卸下档案系统前加上对 sync 的呼
叫。

4.5. swap 磁区

Linux swap 磁区是用来以虚拟记忆体的方式来增加实体记忆体的空
间。 这 也是硬碟会存取的可能原因。如果你的笔记电脑已经有许
多动态记忆体 RAM 了或是你使用很简单的应用程式 (想到 vi), 您
可以考虑把它给关闭 。

这当然要看你打算做什麽。4 到 8 MB 并不足够,这时你该使用
swap 磁区 。有 8 到 16 MB 时,文字画面式的应用程式可以很好
地工作,如果你能避 免使用太多的多工功能, 你可以安全地把
swap 功能给关掉。 X-Windows 环境需要很多的动态记忆体,你最
好不要在没有 swap 下使用它,除非你有 16MB 以上。

(附注: 我那台有 16 MB 的笔记电脑在关闭 swap 磁区下可以执行
一个 emacs 工作、 4 个 bash shells 还有编译一个核心都没有发生
记忆体不够的情况。这对我来说就够了。)

如果你已经安装 swap 磁区了,你可以在 /etc/rc.d/rc.sysinit 内的 
swapon 命令前加个 hash 符号即可把它给关闭。 如果你不想把 它
永远地移除,那就让系统在开机时问你是否要使用 swap 磁区。在 
/etc/rc.d/rc.sysinit (RedHat 4.1) 或 /sbin/init.d/boot (Suse 4.4.1)
□头:

     echo "Should the system use swap?"
     echo "  0: No."
     echo "  1: Yes."
     /bin/echo "Your choice: \c"
     read SWAPCHOICE

     case "$SWAPCHOICE" in
         0)
             # Do nothing.
             echo "(Swap partitions disabled)"
             ;;
         *)
             # Start up swapping.
             echo "Activating swap partitions"
             swapon -a
     esac

那麽你就可以在使用交流电源时开启 swap 磁区,而使用电池是就
会关闭言 这功能。

4.6. apache httpd 网页伺服器精灵 

我使用我的笔记电脑来发展、测试给网站使用的 cgi 命令手稿,
这也就是 为什麽我在它上面架了个区域网站的原因。如果你最想做
的只是有时候用来 测试一个命令手稿或是检查某个网页而已,那麽
标准的建构似乎是太多了。

在 httpd.conf □,只要把 MinSpareServers 以及 StartServers 的值改成
1。 这对本地端的测试站已经很够了。

如果你想关闭网站伺服器的签入,你必须重新编译 httpd 精灵,细
节 请阅读文件。 

Grant Taylor 重新编译了 apache 的签入後发觉这样子 `` 并不会
让它停 止 churning 磁碟。 所以我使用另一个, IMHO 比较好的
解决方法: 我把 apache 建构成从 inetd 来执行取代原本由自己
来。 '' 细节请阅读 man inetd。

4.7. XFree86 套件

为笔记电脑建构 XFree86 是另一个话题了, 再次,我必须请你参
考 Linux 笔记电脑网页,在那儿你可以找到很多的协助 

X 的控制台在空白时只会把萤幕变成黑色, 但并不是把它关掉。
就如同在 备注关於控制台变成空白 中提到的,你可以使用 xset 的
dpms 选项来改变它。然而,这项 功能得看你的笔记电脑的绘图晶
片以及 bios 了.

Grant Taylor 使用以下的设定以及 apmd 和萤幕保护程式的协助来
传 送使他的笔记电脑进入睡眠状态。

     # Run xscreensaver with APM program
     xscreensaver -timeout 5 \
                  -xrm xscreensaver.programs:apm_standby \ 
                  -xrm xscreensaver.colorPrograms:apm_standby &

这个 ``apm_standby 是个只允许特定人士来执行 apm -S 的 suid perl
手稿。''

4.8. emacs 编辑程式

好的, emacs 并非不是个编辑器, 但是个生活方式。 以下是由
Florent Chabaud 提供的密诀: `` 如果你使用 emacs,也许你已发
现 到这个编辑器会做自动存档的动作, 当然这很有用而且也 不该
把 它关掉,但原本内定的参数可以被修改来针对笔记电脑的使用。

我在 /usr/share/emacs/site-lisp/site-start.el 档案内加入 了下列几
行:

     (setq auto-save-interval 2500)
     (setq auto-save-timeout nil)

这样可以关闭以时间为基准的自动存档功能,以改以每 2500 次键
盘的动作 时自动存档一次。当然,如果你正好在打一扁文件时,最
後的那个参数应该 把它减少,如果正在写程式那麽它已可满足需求
了。因为每一个动作 (上、 下、左、倒退、贴,等等......) 都列
入计算, 2500 次按键盘会很快就到 达的。''

4.9. 如何找出更多最佳化的方法

如果你的 Linux 系统仍旧会常去存取硬碟, 你可以使用 ps ax 命
令 来看看内部到底是怎麽了。这会显示出所有正在执行的程式与它
们的名称, 有时候它们会秀出每个处理中的程式之命令列参数。

现在请阅读每个处理中的程式之 man 页来了解它们在做啥麽以及如
何 改变它的行为。用这个方法,你似乎可以找到大部份的处理中程
式所负责的 是什麽。你可能会发现 strace 是很有帮助的。

如果你发现有哪些新方法,请你发电子邮件给我。


使用电池供电的 Linux Mini-HOWTO (迷你HOWTO) : 改变某些一般的
系统设定 
Previous: 先进能源管理 APM
Next: 附录 

--
※ 来源:.紫 丁 香 bbs.hit.edu.cn.[FROM: 202.118.244.16]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:5.097毫秒