Develop and Download Open Source Software

OpenSource Downloads

7-Zip  (3,583)  
CrystalDiskInfo  (1,811)  
Tera Term  (1,787)  
HandBrake Japanese Language Version  (1,743)  
CrystalDiskMark  (980)  
FFFTP  (765)  
ffdshow  (719)  
mixfont-mplus-ipa  (615)  
MergeDoc  (571)  
10  TortoiseSVN  (555)  
11  Amateras  (437)  
12  BathyScaphe  (396)  
13  FreeMind  (372)  
14  Cabos  (327)  
15  ギコナビ  (316)  
More >>

sysctlによるカーネルのチューニング

2008年09月12日 13:05 Federico Kereki 1 2

効果的な利用法

 これほど多くのチューニング可能なパラメータをどのように扱えばいいのだろうか。実は、そこがsysctlの泣きどころだ。Linuxカーネルに関する重要事項のほとんどは、多数のソースファイルに記されており、容易には参照できない。また、そうした記述は一般のユーザには理解しがたい場合もある。「/usr/src/linux/Documentation/sysctl」ディレクトリを探せば何か見つかるかもしれないが、そこにある(すべてではないが)大部分のファイルはカーネル2.2について記されたもので、もう何年も更新されていないようだ。

 また、このテーマを取り上げた書籍をあたっても、十分な情報が得られるとはいえない。『Linux Server Hacks, Volume 2』(2005年O'Reilly刊)のHack #71にsysctlの解説があるが、やはり物足りない。ほかの何冊かの書籍にもsysctlが出てくるが、具体的なパラメータやヒントについては自分で調べるしかない。

 試しに、仮想メモリの管理をチューニングできるswappinessパラメータの情報を探してみよう。「/usr/src/Linux/Documentation/sysctl/vm.txt」ファイルには、このパラメータの名前さえなかった。おそらく、カーネルのバージョン2.6あたりで追加されたものだからだろう。「/usr/src/linux」ディレクトリ全体に対して検索をかけたところ、「swappiness」という記述を含むファイルが5つ見つかった。うち3つは「include/linux」ディレクトリ内のヘッダファイルをインクルードするものだった。残りは「kernel/sysctl.c」と「mm/vmscan.c」で、後者には次のような情報が含まれていた。

 * From 0 .. 100.  Higher means more swappy.
 */
int vm_swappiness = 60;

 これだ!これこそ探し求めていた情報だ。デフォルト値(60)とパラメータの意味に関する最低限の説明が記されている。これでどうにかvm_swappinessが使えそうだ。

 私としては、「sysctl -a」を使って利用可能なパラメータを把握したうえで、Googleで追加情報を探すことをお勧めしたい。たとえば、共有メモリの割り当てを変更して動画再生の問題を解決する例やvm.swappinessの説明、あるいはIPv4ネットワークのトラフィック最適化ヒントが見つかるはずだ。

 sysctlには、Linuxシステムの柔軟性の高さを示すもう1つの側面がある。ドキュメントは十分に揃ってはいないが、その機能を自分で調べることはマシンのパフォーマンスのさらなる向上につながる。これこそ、最もレベルの高いシステム管理といえよう(いや、システム的にはむしろ低レベルと呼ぶべきか)。

Federico Kerekiはウルグアイ在住のシステムエンジニア。20年以上にわたり、システムの開発、コンサルティング活動、大学での教育指導を続けている。

Linux.com 原文(2008年9月9日)

最終更新:2008年11月12日 17:07
SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.