元RX-7乗りの適当な日々 このページをアンテナに追加 RSSフィード Twitter

RX-7(FD3S)WRX STI関連のキーワードで検索されて来られた方へ。
右サイドのカテゴリ『』をクリックすると関連する項目だけが表示されます。
日々の写真は『Flickr』で公開しています。

2016/07/31

/proc/sys/fs/* に関するメモ


年末なのでPCのファイルを整理したら、ブログエントリ用に整形された以下の "/proc/sys/fs/*" に関するメモ書きが出てきました・・・w

ちなみにそのファイルの最終更新日は2011年1月です。CentOS 5系用だし。でもまぁ、何かの役に立つかもしれないので、このまま貼り付けておきますw



"/proc/sys/fs"はファイルシステムまわりに関する様々な情報が存在しています。ちなみに対象は、CentOS(RedHat) 5.x系です。


/proc/sys/fs/aio-max-nr

システム全体における非同期入出力数の上限。

# cat /proc/sys/fs/aio-max-nr
65536

参考: バッファキャッシュとAIO(3) - O’Reilly Japan Community Blog


/proc/sys/fs/aio-nr

現在の非同期入出力の数。

# cat /proc/sys/fs/aio-nr
0

/proc/sys/fs/binfmt_misc/status

binfmt_miscの有効/無効。

# cat /proc/sys/fs/binfmt_misc/status
enabled

binfmt_miscとは

Linux(カーネル)がネイティブ実行できないファイル形式に実行属性を付けて「実行」の操作をしたときに外部プログラムの引数にそのファイルの場所を渡して実行するための、Linux(カーネル)の機能。

ファイルのマジック(種類に固有な先頭数バイト)や拡張子によって渡す外部プログラムが設定できる。

binfmt_misc - まとめドキュメント - 試験運用中なLinux備忘録・別館

新しいバイナリタイプの登録は "/proc/sys/fs/binfmt_misc/register" を介す。

参考: http://archive.linux.or.jp/JF/JFdocs/kernel-docs-2.6/binfmt_misc.txt.html


/proc/sys/fs/dentry-state

dentry(名前とiノードの対応付けを行う構造体)のシステム中の数およびフリーなdentryの数を表示します。

ファイル管理構造体やiノード、dentryは数が増え過ぎると逆にメモリを使い過ぎてオーバヘッドが増加します。

@IT:/procによるLinuxチューニング [後編](2/4)

このファイルには、ディレクトリキャッシュ (dcache) の状態に関する情報が入っている。ファイルには、 nr_dentry, nr_unused, age_limit (秒単位の age), want_pages (システムがリクエストしたページ数), ダミーの 2 つの値、という 6 つの数字が書かれている。

  • nr_dentry は割り当てられた dentry (dcache エントリ) の数である。このフィールドは Linux 2.2 では使用されない。
  • nr_unused は未使用の dentry 数である。
  • age_limit は、メモリが不足している場合に次に dcache entry を再要求できるようになるまでの残り時間 (秒数) である。
  • want_pages は、カーネルが shrink_dcache_pages() を呼び出したが dcache がまだ縮小されていない場合に、0 以外の値となる。
Man page of PROC
# cat /proc/sys/fs/dentry-state
36388   33909   45      0       0       0

/proc/sys/fs/dir-notify-enable

このファイルは fcntl(2) に記述されている dnotify インターフェースをシステム全体で無効にしたり有効にしたりする。このファイルに値 0 が書かれている場合はインターフェースが無効になり、値 1 の場合は有効になる。

dnotifyは、ディレクトリやファイルに対して行われた操作を、Userアプリケーションに通知する機能。

# cat /proc/sys/fs/dir-notify-enable
1

cat /proc/sys/fs/file-nr

  1. 今までにオープンしたことのあるファイルの最大数(割り当て済みのファイルハンドル数)
  2. 現在オープンしているファイルの総数(使用中のファイルハンドル数)
  3. オープン可能なファイル数の上限(/proc/sys/fs/file-maxと同じ値)
- 株式会社エスロジカル - 技術ドキュメント Linux:/proc/ によるファイルオープン上限数の制御 (/proc/sys/fs/file-*)
# cat /proc/sys/fs/file-nr
1       0       342605

/proc/sys/fs/file-max

このファイルはシステム全体でプロセスがオープンできるファイル数の上限を定義する。 (各プロセスがオープンできるファイル数の上限を RLIMIT_NOFILE によって設定する setrlimit(2) も参照すること。) ファイルハンドルを使い果たして大量にエラーメッセージが出る場合は、以下のようにしてこの値を増加させてみよ:

echo 100000 > /proc/sys/fs/file-max

file-max に書かれている値は、カーネル定数 NR_OPEN に制限される。

/proc/sys/fs/file-max を増やした場合は、 /proc/sys/fs/inode-max を新しい /proc/sys/fs/file-max の値の 3-4 倍に増やしておくこと。こうしないと inode を使い果たしてしまうだろう。

Man page of PROC
# cat /proc/sys/fs/file-max
342605

/proc/sys/fs/inode-nr

下記の"inode-state"の最初の2つの値が記載。

# cat /proc/sys/fs/inode-nr
31090   59

/proc/sys/fs/inode-state

このファイルには 7 個の値が書かれている: nr_inodes, nr_free_inodes, preshrink と 4 つのダミーの値である。 nr_inodes はシステムが確保する inode の数である。 Linux は 1 度に 1 ページ分いっぱいに nr_inode を確保するので、この値が inode-max より幾分大きくなることもある。 nr_free_inodes は空いている inode の数を表す。 nr_inodes > inode-max の場合、 preshrink は 0 以外の値になる。この場合システムは inode をさらに確保するのではなく、 inode リストを切り詰める必要がある。

Man page of PROC
# cat /proc/sys/fs/inode-state
31090   59      0       0       0       0       0

/proc/sys/fs/inotify/max_queued_events

このファイルの値は、アプリケーションが inotify_init(2) を呼び出すときに使用され、対応する inotify インスタンスについてキューに入れられるイベントの数の上限を設定する。この制限を超えたイベントは破棄されるが、 IN_Q_OVERFLOW イベントが常に生成される。

Man page of INOTIFY
# cat /proc/sys/fs/inotify/max_queued_events
16384

/proc/sys/fs/inotify/max_user_instances

1つの実ユーザ IDに対して生成できる inotify インスタンスの数の上限を指定する。

Man page of INOTIFY
# cat /proc/sys/fs/inotify/max_user_instances
128

/proc/sys/fs/inotify/max_user_watches

作成可能な監視対象の数の実 UID 単位の上限を指定する。

Man page of INOTIFY
# cat /proc/sys/fs/inotify/max_user_watches
8192

/proc/sys/fs/lease-break-time

このファイルは、ファイルを保持しているプロセスに対してカーネルがシグナルを送り、他のプロセスがそのファイルをオープンするのを待っていることを通知してから、そのプロセスに対してカーネルがファイルのリース (lease, 貸し出し) (fcntl(2) を参照) を許す猶予期間を指定する。リースホルダ (lease holder: ファイルの貸し出しを受けているプロセス) が猶予期間中にリースを削除するか階級を低くしない場合、カーネルはファイルのリースを強制的に止める。

Man page of PROC
# cat /proc/sys/fs/lease-break-time
45

/proc/sys/fs/leases-enable

このファイルはシステム全体でのファイルリース (fcntl(2) を参照) を有効または無効にする。ファイルに値 0 が書き込まれている場合、リースは無効である。 0 以外の場合にはリースは有効である。

Man page of PROC
# cat /proc/sys/fs/leases-enable
1

/proc/sys/fs/mqueue/msg_max

このファイルを使って、一つのキューに入れられるメッセージの最大数の上限値を参照したり変更したりできる。

この値は、 mq_open(3) に渡す attr->mq_maxmsg 引き数に対する上限値として機能する。 msg_max のデフォルト値は 10 で、最小値は 1 (2.6.28 より前のカーネルでは 10) である。上限は「埋め込みの固定値」 (HARD_MAX) で (131072 / sizeof(void *)) (Linux/86 では 32768) である。この上限は特権プロセス (CAP_SYS_RESOURCE) では無視されるが、埋め込みの固定値による上限はどんな場合にでも適用される。

Man page of MQ_OVERVIEW
# cat /proc/sys/fs/mqueue/msg_max
10

/proc/sys/fs/mqueue/msgsize_max

このファイルを使って、メッセージの最大サイズの上限値を参照したり変更したりできる。

この値は、mq_open(3) に渡す attr->mq_msgsize 引き数に対する上限値として機能する。msgsize_max のデフォルト値は 8192 バイトで、最小値は 128 (2.6.28 より前のカーネルでは 8192) である。 msgsize_max の上限は 1,048,576 である (2.6.28 より前のカーネルでは、上限は INT_MAX (Linux/86 では 2,147,483,647) であった)。この上限は特権プロセス(CAP_SYS_RESOURCE)では無視される。

Man page of MQ_OVERVIEW
# cat /proc/sys/fs/mqueue/msgsize_max
8192

/proc/sys/fs/mqueue/queues_max

このファイルを使って、作成することができるメッセージキューの数に対するシステム全体での制限を参照したり変更したりできる。

一度この上限に達すると、新しいメッセージキューを作成できるのは特権プロセス(CAP_SYS_RESOURCE)だけとなる。queues_max のデフォルト値は 256 であり、0から INT_MAX の範囲の任意の値に変更することができる。

# cat /proc/sys/fs/mqueue/queues_max
256

/proc/sys/fs/overflowgid , /proc/sys/fs/overflowuid

これらのファイルにより、ユーザーは固定 UID と固定 GID の値を変更できる。

デフォルトは 65534 である。 Linux の UID と GID は 32 ビットであるが、 16 ビットの UID と GID しかサポートしないファイルシステムもある。このようなファイルシステムが書き込みを許可してマウントされた場合、 65535 を超える UID と GID は、ディスクに書き込まれる前にオーバーフロー値に変換される。

Man page of PROC
# cat /proc/sys/fs/overflowgid
65534
# cat /proc/sys/fs/overflowuid
65534

/proc/sys/fs/suid_dumpable

このファイルの値により、set-user-ID されたバイナリや、保護がかかった (protected) バイナリ / tainted な (汚染された; ライセンスがカーネルと適合しない) バイナリに対して、コアダンプファイルを生成するかどうかが決定される。以下の 3つの値を指定することができる:

0 (default) この値を指定すると、以前と同じ (Linux 2.6.13 より前の) 動作をする。 (seteuid(2), setgid(2) などを呼び出すことや、set-user-ID や set-group-ID されたプログラムを実行することで) 資格情報 (credentials) が変更されているプロセスや、プロセスの実行バイナリの読み出し許可がないプロセスに対して、コアダンプを生成しない。

1 ("debug") すべてのプロセスで、可能であればコアダンプを行う。コアダンプファイルの所有者は、ダンプを行うプロセスのファイルシステム UID となり、セキュリティ上の考慮は行われない。この値は、システムデバッグの場面だけを想定して設けられている。 ptrace のチェックも行われない。

2 ("suidsafe") 通常はダンプされないようなバイナリ (上記の "0" 参照) を root だけが読み出し可能な形でダンプする。この場合、ユーザはそのコアダンプファイルを削除することはできるが、読むことはできない。セキュリティ上の理由から、このモードのコアダンプでは、既存のダンプファイルや他のファイルを上書きすることはない。このモードは、管理者が通常の環境で問題を解析しようとする際に適している。

# cat /proc/sys/fs/suid_dumpable
0

はてなユーザーのみコメントできます。はてなへログインもしくは新規登録をおこなってください。

トラックバック - http://d.hatena.ne.jp/rx7/20160731/p1

オススメ (一部は、最近読んでいる本とも言う)
Chef実践入門 ~コードによるインフラ構成の自動化 (WEB+DB PRESS plus) クラウド Amazon EC2/S3のすべて~実践者から学ぶ設計/構築/運用ノウハウ~ [Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ) エキスパートのためのMySQL[運用+管理]トラブルシューティングガイド [24時間365日] サーバ/インフラを支える技術 ~スケーラビリティ、ハイパフォーマンス、省力運用 Linux-DB システム構築/運用入門 (DB Magazine SELECTION) キャパシティプランニング ― リソースを最大限に活かすサイト分析・予測・配置 スケーラブルWebサイト 実践ハイパフォーマンスMySQL 第3版 ウェブオペレーション ―サイト運用管理の実践テクニック (THEORY/IN/PRACTICE) SQLアンチパターン インターネットのカタチ―もろさが織り成す粘り強い世界― ハイパフォーマンス ブラウザネットワーキング ―ネットワークアプリケーションのためのパフォーマンス最適化 Linuxの教科書―ホントに読んでほしいroot入門講座 (IDGムックシリーズ)