“ulimit” は興味深い Linux シェルコマンドで、現在のユーザのリソース制限を設定または報告することができます。 さらに、これはシェルによる制御を許可しているシステムでのみ動作します。
ターミナルを起動して、次のコマンドを実行します。
これはエラーが表示されますね? なぜでしょうか? ulimit “が独立したバイナリではないからです。
基本的な使い方
このコマンドを単独で実行するだけです。 基本的に、これは現在のユーザーが現在のシステムがサポートするすべてのリソースを消費できることを意味します。
詳細なレポートを取得するには、最後に「-a」フラグを追加してください。 これは、現在のユーザーのすべてのリソース制限を表示します。
注意:リソース制限には2種類あります。 “ハード “と “ソフト “の2種類があります。 ハードリソース制限は、ユーザーが到達できる物理的な上限を定義します。 ソフト」リソース制限は、ユーザーが管理可能な制限です。
システムリソースは、「/etc/security/limits.conf」 にある設定ファイルで定義されます。 「
Checking different limits of a user
The individual parameters displaying how about the individual parameters?
注意: すべてのシステムが機能を組み込んでいるわけではないので、これらのコマンドのすべてが動作するわけではありません。
最大「コアファイルサイズ」の値を確認するには、フラグ “-c” を使用します。
データセグサイズ (キロバイト単位) は -d フラグを使ってください。
スケジューリングでは、優先度が重要である。 981>
現在のユーザの最大スタックサイズを確認するには、”-s “フラグを使用します。
ユーザプロセスの最大数を調べるには、”-u” フラグを使用する。
スレッドの最大数は、フラグ “-T” を使用。
仮想メモリの大きさは、以下のものを使用。
ソケットバッファサイズを調べてみよう!
こちらは面白いものですね。 次のコマンドは、各プロセスが実行できる時間を報告します。
ファイル記述子も Linux エコシステムの興味深い部分の一つです。 プロセスがいくつのファイル記述子を持つことができるかを調べるには、次のものを実行します。
「ulimit」フラグの全リストは「ulimit」のヘルプページで確認して下さい。
値の設定
これまで、現在のシステムのリソース制限の値を確認する方法について見てきました。
注意: 「ハード」制限を変更するには、管理者アクセス (すなわち「ルート」権限) が必要です。 物事を台無しにしないように注意してください!
私たちは「limits.conf」ファイルについて言及しましたね。
ファイルに示されているように、それぞれのエントリーは次の構造に従っていなければいけません。
“domain” 部分にはこれらの値のどれかを使用することが可能です。
- 特定のユーザー
- グループ
- ワイルドカード(*と%)
「type」部分は、以下の値を使用することができます。
- “soft” (ソフトリミット実装用)
- “hard” (ハードリミット実装用)
次は、「項目」部分です。 使用可能なオプションのリストは、かなり長いです 以下は、興味深いものの一部です。
- core: コアファイルのサイズ(KB).
- data: 最大データサイズ(KB)
- fsize: 最大ファイルサイズ (KB).
- memlock: 最大ロックインメモリアドレス空間(KB).
- nofile: ファイルディスクリプタの最大数
- stack: スタックの最大サイズ (KB).
- cpu: 最大 CPU 時間 (MIN).
- maxlogins: 現在のユーザー/グループの最大ログイン数
- priority: ユーザーのプロセスの優先度を設定します
- rtprio: リアルタイムでの最大優先度。
「値」フィールドのように、整数値を入れてください。 各フィールドの単位は、”item “部分の値と関連付けられます。
変更は、関連するユーザーアカウントを終了し、再ログインした後に有効になります。
“limits.conf” 設定ファイルの詳細については、その man ページをチェックしてください。