Yukiharu YABUKI の tDiary
このtDiaryを検索します。
2009-01-06 [長年日記]
_ powertop
kernelが新しくないと、真価を発揮しないので etch でカーネルを作るよりも lenny で、powertop を動かした方がいいかと思います。Laptop の消費電力を下げるアドバイスも受けることができます。
- (http://www.lesswatts.org/projects/powertop/)
- インテルがLinux向けにオープンソースで提供 - 電力効率の悪いプログラムをリストアップする「PowerTOP」(http://www.atmarkit.co.jp/news/200707/26/powertop.html)
- lennyにおけるpowertopの説明(http://packages.debian.org/lenny/powertop)
なにもしなくても、イメージのように日本語で表示してくれます。(クリックすると拡大します。帰ってくるのは、ブラウザの戻るボタンを使ってください。)
_ pmap は、/proc/[pid]/maps を見ている
昔のエントリーで言及した、pmap 、procps パッケージにはいっている man 1 pmap のソースをみると、タイトルのように/proc/[pid]/maps の情報を元にしてデータを生成している。pmap には、-xの拡張モードと、-dのデバイスモードがあり表示の方法が異なっている。
拡張モード yabuki@yelona:~$ sudo pmap -x 1 1: init [2] Address Kbytes RSS Anon Locked Mode Mapping 08048000 32 - - - r-x-- init 08050000 4 - - - rw--- init 08c99000 132 - - - rw--- [ anon ] b7e3e000 4 - - - rw--- [ anon ] b7e3f000 8 - - - r-x-- libdl-2.7.so b7e41000 8 - - - rw--- libdl-2.7.so b7e43000 1364 - - - r-x-- libc-2.7.so b7f98000 4 - - - r---- libc-2.7.so b7f99000 8 - - - rw--- libc-2.7.so b7f9b000 16 - - - rw--- [ anon ] b7f9f000 92 - - - r-x-- libselinux.so.1 b7fb6000 8 - - - rw--- libselinux.so.1 b7fb8000 208 - - - r-x-- libsepol.so.1 b7fec000 4 - - - rw--- libsepol.so.1 b7ffe000 8 - - - rw--- [ anon ] b8000000 4 - - - r-x-- [ anon ] b8001000 104 - - - r-x-- ld-2.7.so b801b000 8 - - - rw--- ld-2.7.so bfd08000 84 - - - rw--- [ stack ] -------- ------- ------- ------- ------- total kB 2100 - - -
デバイスモード yabuki@yelona:~$ sudo pmap -d 1 1: init [2] Address Kbytes Mode Offset Device Mapping 08048000 32 r-x-- 0000000000000000 0fe:00001 init 08050000 4 rw--- 0000000000007000 0fe:00001 init 08c99000 132 rw--- 0000000008c99000 000:00000 [ anon ] b7e3e000 4 rw--- 00000000b7e3e000 000:00000 [ anon ] b7e3f000 8 r-x-- 0000000000000000 0fe:00001 libdl-2.7.so b7e41000 8 rw--- 0000000000001000 0fe:00001 libdl-2.7.so b7e43000 1364 r-x-- 0000000000000000 0fe:00001 libc-2.7.so b7f98000 4 r---- 0000000000155000 0fe:00001 libc-2.7.so b7f99000 8 rw--- 0000000000156000 0fe:00001 libc-2.7.so b7f9b000 16 rw--- 00000000b7f9b000 000:00000 [ anon ] b7f9f000 92 r-x-- 0000000000000000 0fe:00001 libselinux.so.1 b7fb6000 8 rw--- 0000000000016000 0fe:00001 libselinux.so.1 b7fb8000 208 r-x-- 0000000000000000 0fe:00001 libsepol.so.1 b7fec000 4 rw--- 0000000000034000 0fe:00001 libsepol.so.1 b7ffe000 8 rw--- 00000000b7ffe000 000:00000 [ anon ] b8000000 4 r-x-- 00000000b8000000 000:00000 [ anon ] b8001000 104 r-x-- 0000000000000000 0fe:00001 ld-2.7.so b801b000 8 rw--- 000000000001a000 0fe:00001 ld-2.7.so bfd08000 84 rw--- 00000000bffeb000 000:00000 [ stack ] mapped: 2100K writeable/private: 284K shared: 0K
生のprocから読み出した値 yabuki@yelona:~$ sudo cat /proc/1/maps 08048000-08050000 r-xp 00000000 fe:01 8060945 /sbin/init 08050000-08051000 rw-p 00007000 fe:01 8060945 /sbin/init 08c99000-08cba000 rw-p 08c99000 00:00 0 [heap] b7e3e000-b7e3f000 rw-p b7e3e000 00:00 0 b7e3f000-b7e41000 r-xp 00000000 fe:01 12600907 /lib/i686/cmov/libdl-2.7.so b7e41000-b7e43000 rw-p 00001000 fe:01 12600907 /lib/i686/cmov/libdl-2.7.so b7e43000-b7f98000 r-xp 00000000 fe:01 12600903 /lib/i686/cmov/libc-2.7.so b7f98000-b7f99000 r--p 00155000 fe:01 12600903 /lib/i686/cmov/libc-2.7.so b7f99000-b7f9b000 rw-p 00156000 fe:01 12600903 /lib/i686/cmov/libc-2.7.so b7f9b000-b7f9f000 rw-p b7f9b000 00:00 0 b7f9f000-b7fb6000 r-xp 00000000 fe:01 11427900 /lib/libselinux.so.1 b7fb6000-b7fb8000 rw-p 00016000 fe:01 11427900 /lib/libselinux.so.1 b7fb8000-b7fec000 r-xp 00000000 fe:01 11427925 /lib/libsepol.so.1 b7fec000-b7fed000 rw-p 00034000 fe:01 11427925 /lib/libsepol.so.1 b7ffe000-b8000000 rw-p b7ffe000 00:00 0 b8000000-b8001000 r-xp b8000000 00:00 0 [vdso] b8001000-b801b000 r-xp 00000000 fe:01 11428003 /lib/ld-2.7.so b801b000-b801d000 rw-p 0001a000 fe:01 11428003 /lib/ld-2.7.so bfd08000-bfd1d000 rw-p bffeb000 00:00 0 [stack]
_ 上記を実行してから、psコマンドで、initを見てみる。
下記をみると、VSZの値が上記のtotalないしは、mappedの値と一致していることが確認できる。他のプロセスでも成り立つか確認してみよう。
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.0 2100 568 ? Ss 2008 0:05 init [2]
_ tp-smapi-source - Source for the tp_smapi kernel modules
このパッケージは lenny に入っており lenny だと kernel 2.6.26向けのモジュールもそろってます。私はいくつかの理由から、kernel 2.6.27にしているので、このパッケージが必要なはずです。
ThinkPadを使っているなら、バッテリーの利用時間を長くできること、トラックポイントの調整がGUIでできること、HDAPSによる加速度センサで落下時を関知できるようになることを考えると、組み込む価値があるのではないでしょうか。ちなみに加速度センサーは落下を検知するだけで、ハードディスクのヘッドを待避はさせないと注意書きしてあるのは、誤解をする人が多いからなのでしょうね。元ネタは下記です。
- (http://tpctl.sourceforge.net/) sysfsutils にも依存するようになったとのことなので、
aptitude install sysfsutils
とのこと。 - (http://www.thinkwiki.org/wiki/HDAPS)
- (http://www.thinkwiki.org/wiki/Active_Protection_System)