GNU/Linux >> Linux の 問題 >  >> Linux

ulimitLinuxコマンドの使用方法

はじめに

ulimit は、システムリソース量の表示または制限を可能にする組み込みのLinuxシェルコマンドです。 個々のユーザーが消費します。リソースの使用を制限することは、複数のユーザーとシステムパフォーマンスの問題がある環境で役立ちます。

このチュートリアルでは、 ulimitの使用方法を学習します Linuxでのコマンドと例。

前提条件

  • Linuxを実行しているシステム
  • 端末へのアクセス
  • sudo特権

Limits.confとは何ですか?

Limits.conf fileは、システムリソース割り当て設定を定義する構成ファイルです ulimit を使用します。構成ファイルへのフルパスは/etc/security/limits.confです。 。

ファイルの値の変更は、システムの再起動後も持続します。 Limits.conf を編集するには、スーパーユーザーの権限が必要です ファイル。

Limits.confの最初のセクション ファイルは次のようになります:

Linuxでのulimit、Soft Limit、およびHardLimitの説明

次のセクションでは、 ulimitについて説明します。 構文と2つのリソース制限タイプの違い-ソフト制限 およびハードリミット

ulimit構文

ulimit コマンドは次の一般的な構文を取ります:

ulimit [flags][limit]

たとえば、物理メモリサイズをキロバイト単位で設定するには、次のように入力します。

ulimit -m 15000

フラグ

ulimitを使用します さまざまなシステムリソースの個々の値を表示または制限するためのフラグ。 [limit]の場合 が指定されている場合、それは指定されたリソースの新しい値です。

使用可能なフラグは次のとおりです。

フラグ 説明
-H ハードリミット 指定されたリソースに対して。ルートユーザーのみがハード制限を引き上げることができ、どのプロセスでもハード制限を下げることができます。
-S ソフト制限 指定されたリソースに対して。どのプロセスでもソフト制限を変更できます。
-a 現在のすべてのリソース制限を一覧表示します。
-b 最大ソケットバッファサイズ。
-c コアダンプサイズ。512バイトのブロック数で表されます。
-d データ領域のサイズ(キロバイト単位)。
-e プロセススケジューリングの優先度が最も高い(良い)。
-f [limit] を使用する場合のファイルサイズの制限(ブロック単位) パラメータ。 [limit]を指定しない ファイルサイズの制限を報告するようにコマンドに指示します。
-i 保留中の信号数の制限。
-k キュー割り当て数の制限。
-l <​​/ code> メモリにロックできる最大サイズ。
-m 物理メモリサイズ(キロバイト単位)。
-n プロセスが持つことができるファイル記述子の最大数。
-p パイプバッファサイズ。
-P 疑似端末の最大数。
-q POSIXメッセージキューの最大バイト数。
-r プロセスが持つことができるスレッドの最大数。
-R マイクロ秒単位で表される最大プロセス実行時間。
-s スタックサイズ(キロバイト単位)。
-t プロセスの最大実行時間を秒単位で指定します。
-T スレッド数の制限。
-u ユーザーが作成できるプロセスの数を指定します。
-v プロセスで使用可能な最大仮想メモリ。
-x ファイルロックの最大数。

[limit] パラメータ

[limit]を追加する 指定されたリソースの新しい値を渡します。省略した場合、 -H を指定しない限り、コマンドは指定されたリソースの現在のソフト制限値を出力します。 フラグ。

-H のどちらでもない場合、制限はソフト制限とハード制限の両方に適用されます また、 -S フラグが指定されています。

終了値

ulimit コマンドには2つの終了値があります:

  • 0 。正常に完了したことを示します。
  • > 0 。上限のリクエストが拒否されたか、エラーが発生しました。

ソフトリミット

ソフトリソース制限は、対応するリソースに対してカーネルによって適用される値です。ソフト制限はすべてのユーザーが管理でき、その最大値はハード制限を超えることはできません。ハード制限は、ソフト制限の上限として機能します。

現在のユーザーの詳細なソフト制限を表示するには、次のコマンドを実行します。

ulimit -Sa

ハードリミット

ハードリソース制限は、ユーザーの物理リソース制限を定義します。同時に、ハードリミットはソフトリミットの最大値です。 rootユーザーのみがハード制限を変更できます

現在のユーザーの詳細なハード制限を表示するには、次のコマンドを実行します。

ulimit -Ha

ulimitの使用方法

ulimitを実行します ターミナルにコマンド名を入力してコマンドを実行します:

ulimit

出力には、現在のユーザーがアクセスできるリソース量が表示されます。この例では、ユーザーは無制限のシステムリソースを持っています。個々のリソース制限を表示または設定するには、利用可能な ulimitを使用します フラグ。

次のセクションでは、 ulimitの最も一般的な使用法を示します。 コマンド。

詳細な制限レポート

-a を指定して、現在のユーザーのすべてのリソース制限を含む詳細なレポートを取得します フラグ:

ulimit -a

出力には、現在のユーザーのリソース制限に関する詳細なレポートが含まれます。

プロセス番号の制限

-u を指定して、ユーザーの最大プロセス数を制限します フラグとプロセス数。

たとえば、プロセス数を10に制限します:

ulimit -u 10

ユーザーあたりの最大プロセス数を制限すると、ユーザーはシステムのすべてのリソースを使い果たすことができなくなります。プロセス数を制限することで、フォーク爆弾などの潜在的な攻撃の悪影響も防ぐことができます。

例:

上記の例では、最初にプロセス数を10に制限し、次にフォーク爆弾を実行しました。そうしないと、フォーク爆弾がすべてのリソースを使い果たし、システムが応答しなくなります。

ファイルサイズの制限

-f フラグは、ユーザーが作成できる最大ファイルサイズを設定します。たとえば、次のコマンドはファイルサイズを50KBに制限します。

ulimit -f 50

より大きなファイルを作成して、制限が機能するかどうかをテストします。たとえば、catコマンドを使用して / dev / zeroをリダイレクトしました 50KBよりはるかに大きいファイルへの出力:

出力には、ファイルサイズの制限を超えたことが示されます。次のコマンドを実行してファイルサイズを確認します:

ls -lh file

lsコマンドの出力は、ファイルサイズが正確に50KBであることを示しています。これは、以前に設定した制限です。

最大仮想メモリの制限

-vを使用します プロセスで使用可能な最大仮想メモリ量を設定するフラグ。プロセスの仮想メモリを制限すると、プロセスがすべてのメモリを使い果たすのを防ぎ、スラッシングを防ぎます。

たとえば、次のコマンドは、プロセスで使用可能な仮想メモリを1000KBに制限します。

ulimit -v 1000

開いているファイルの数を制限する

-n フラグは、同時に開くファイル(ファイル記述子)の数を制限します。次の例では、開いているファイルの数を5に設定します。

ulimit -n 5

これをテストするために、複数のテキストファイルを開こうとしますが、エラーが発生します:

limits.confファイルを編集してソフト制限またはハード制限を変更

ソフト制限またはハード制限を変更するには、 Limits.confの値を編集します ファイル。

以下の手順に従ってください:

1.ターミナルウィンドウを開き、ディレクトリを / etc / securityに変更します。

cd /etc/security

2. Limits.confを開きます vimエディターなどのテキストエディターを使用してファイルを作成します。

vim limits.conf

3.既存のエントリを編集するか、新しいエントリを追加して、制限値を変更します。各制限エントリには4つの部分があります:

  • 。ユーザーまたはグループを定義するか、ワイルドカードを含みます( * または
  • 。 2つの値を受け入れます-soft またはhard
  • 。構成ファイルにリストされている値のいずれかを受け入れます。
  • に関連付けられた単位で表される整数値

例:

設定ファイルを編集するときは、必ずその行のコメントを外してください。


Linux
  1. Linuxsedコマンドの使用方法

  2. Linuxgrepコマンドの使用方法

  3. Linuxでhistoryコマンドを使用する方法

  1. LinuxでSuコマンドを使用する方法

  2. Linuxでidコマンドを使用する方法

  3. Linux で「screen」コマンドを使用する方法

  1. Linuxでsudoコマンドを使用する方法

  2. Linuxの履歴コマンドの使用方法

  3. Linuxxargsコマンドの使用方法