〜 /proc/sysの主要パラメータ群総解説 〜
/proc/sys配下には、OSのチューニングパラメータが集まっている。ここにあるファイルやパラメータを理解することで、OSを特殊環境などに適応させることができる。(編集局)
遠田 耕平
2002/12/17
前編では、システム全体の情報表示関連の/procパラメータを解説しました。後編では、個別のチューニングパラメータを見ていきましょう。
チューニングパラメータは/proc/sys配下に集まっており、大きく分けると、
/proc/sys | /kernel | |
/fs | ||
/vm | ||
/net |
の4つがあります。kernel配下にはカーネル全般にかかわるパラメータ、fs配下にはファイルシステム関連のパラメータ、vm配下には仮想記憶関連のパラメータ、net配下にはネットワーク関連のパラメータが置かれています。
/proc/sys/kernelディレクトリ
まずはkernel配下のパラメータを見ていきましょう。/proc/sys/kernel配下のパラメータを使うと、パフォーマンス・チューニング以外のさまざまな設定も可能です。
ctrl-alt-del、cad_pid
ctrl-alt-delは、おなじみの[Ctrl]+[Alt]+[Del]キーシーケンスの有効(1)/無効(0)を設定するファイルです。同時に、cad_pidには[Ctrl]+[Alt]+[Del]キーを押した際にシグナルを送信するプロセスを指定します(注)。
注:シグナル送信先プロセスは、通常は「1」です。これはinitプロセスという意味ですが、特殊な用途ではctrl-alt-delを別のプロセスに受けさせることができると便利かもしれません。 domainname、hostname
これらのファイルには、そのシステムのドメイン名、ホスト名を設定することができます(setdomainname(2)、getdomainname(2)、sethostname(2)、gethostname(2)によっても参照/設定されます)。panic
このファイルに「0」より大きい値を指定しておくと、システムはパニック時にその秒数だけ待ってから自動的にリブートします。osrelease、ostype、version
それぞれ、カーネルバージョン(2.4.19など)、OS名(Linux)、バージョン(カーネルビルドの日付など)を表示します。sysrq
マジックSysRqキーの有効(1)/無効(0)を設定します。マジックSysRqキーとは、システムが異常な状態になった場合でも使えるように配慮された、緊急操作用のキーシーケンスです。printk
printkの出力レベルを指定します。printkはカーネル内でのロギング(情報出力)のために使用しますが、その情報量を制御できます。4つの数値を指定することができ、それぞれ、
- 現在のコンソールログレベル
このレベルより小さい(優先度の高い)レベルのメッセージが表示される
- デフォルトのログレベル
printk時に特に指定がなかったときのログレベル
- 最低コンソールログレベル
ロギングをオフにしたときのログレベル
- デフォルトコンソールログレベル
ロギングをオンにしたときのログレベルを指定します。
core_uses_pid
コアダンプ作成時に、「core.1234」のようにPID付きの形式を使用するかどうかを指定します。coreファイルの区別が簡単になると同時に、マルチスレッド、マルチプロセスのプログラムをデバッグする際に、古いcoreが上書きされないという利点がありますmodprobe、hotplug
カーネルには、ローダブルモジュールを自動的にロードする機能があります。この「自動ロード」は、カーネルが「モジュールをロードするユーザーランドのプログラム」を起動することによって実現されています。modprobeにはその実行形式(プログラム)を指定します。通常は、「/sbin/modprobe」になっています。hotplugも同様の意味合いになりますが、ここで指定されたプログラムはホットプラグデバイス(PCMCIAなど)の挿抜の際にホットプラグ関連処理を行うためのユーザーランドのプログラムとなります(通常は/sbin/hotplug)。
次のshm*、sem、msgmaxは、いずれもSysV IPCと呼ばれる一群のIPC(プロセス間通信)のパラメータです。
SysV IPCはその名のとおり、System V(AT&T系UNIX)で導入されたプロセス間通信機構です。一般には、SysV IPCは「古めかしい」インターフェイスと考えられています。SysV IPCでプロセス間通信をするよりはスレッドなどを活用する方が現代的なのですが、依然として各種のアプリケーションで使用されています。
SysV IPCはipcsコマンドで使用状態を調べることができるので、自分のシステムやアプリケーションでどの程度使用されているか調べておくのがよいでしょう。
shmall、shmmni、shmmax
共有メモリ(シェアードメモリ)のパラメータです。shmallはシステム全体の共有メモリの大きさ、shmmaxは1プロセスごとの大きさ、shmmniは1プロセスごとの共有メモリセグメント(領域)の数の上限を規定します。共有メモリを利用する構造になっているアプリケーション(データベースなど)によっては、この値を大きく取っておかないとうまく動作しないものもあります。
sem
semは4つの値を取り、セマフォidごとのセマフォの数、システム全体のセマフォの数、一度に実施できるセマフォ操作の数、セマフォidの最大値を指定できます。msgmax、msgmni、msgmnb
それぞれ、送信可能なメッセージの最大長、メッセージキューidの最大値、メッセージキューの大きさを指定できます。threads-max
システム全体のスレッド(プロセス)の最大数です。これを超えるスレッド(プロセス)は生成できなくなるので、システムに合わせて十分大きな値を設定しておく必要があります。
前編へ |
1/4
|
|
||||||||
|
Linux Square全記事インデックス |
Linux Squareフォーラム Linuxカーネル関連記事 |
連載:Linux Kernel Watch(連載中) Linuxカーネル開発の現場ではさまざまな提案や議論が交わされています。その中からいくつかのトピックをピックアップしてお伝えします |
|
連載:Linuxファイルシステム技術解説 ファイルシステムにはそれぞれ特性がある。本連載では、基礎技術から各ファイルシステムの特徴、パフォーマンスを検証する |
|
特集:全貌を現したLinuxカーネル2.6[第1章] エンタープライズ向けに刷新されたカーネル・コア ついに全貌が明らかになったカーネル2.6。6月に正式リリースされる予定の次期安定版カーネルの改良点や新機能を詳しく解説する |
|
特集:/procによるLinuxチューニング[前編] /procで理解するOSの状態 Linuxの状態確認や挙動の変更で重要なのが/procファイルシステムである。/procの概念や/procを利用したOSの状態確認方法を解説する |
|
特集:仮想OS「User
Mode Linux」活用法 Linux上で仮想的なLinuxを動かすUMLの仕組みからインストール/管理方法やIPv6などに対応させるカーネル構築までを徹底解説 |
|
Linuxのカーネルメンテナは柔軟なシステム カーネルメンテナが語るコミュニティとIA-64 Linux IA-64 LinuxのカーネルメンテナであるBjorn Helgaas氏。同氏にLinuxカーネルの開発体制などについて伺った |
|
|
- 【 pidof 】コマンド――コマンド名からプロセスIDを探す (2017/7/27)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、コマンド名からプロセスIDを探す「pidof」コマンドです。 - Linuxの「ジョブコントロール」をマスターしよう (2017/7/21)
今回は、コマンドライン環境でのジョブコントロールを試してみましょう。X環境を持たないサーバ管理やリモート接続時に役立つ操作です - 【 pidstat 】コマンド――プロセスのリソース使用量を表示する (2017/7/21)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、プロセスごとのCPUの使用率やI/Oデバイスの使用状況を表示する「pidstat」コマンドです。 - 【 iostat 】コマンド――I/Oデバイスの使用状況を表示する (2017/7/20)
本連載は、Linuxのコマンドについて、基本書式からオプション、具体的な実行例までを紹介していきます。今回は、I/Oデバイスの使用状況を表示する「iostat」コマンドです。
|
|