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

Ulimitコマンドを使用してシステムリソースの使用を制御する

この初心者向けチュートリアルでは、Linuxのulimitコマンドについて学習します。これを使用してシステムリソースの割り当てを制御する方法を説明します。

Linuxのulimitとは何ですか?

Ulimitは、リソースを表示、割り当て、および制限するように設計された組み込みのシェルコマンドです。これらのタイプの制御を規制することは、どのシステムにとっても不可欠です。

このタイプの制御は、グローバル、グループ、およびユーザーレベルで実施できます。タスクのスムーズな処理を保証することに加えて、不要なプロセスがRAMやCPUパワーなどのシステムリソースを浪費するのを防ぎます。

Ulimitはセキュリティ構成ファイルにリンクされています。正確な場所は異なる場合がありますが、通常は/etc/security/limits.confのようなものです。 。 Ulimitを使用すると、その構成をすばやく編集できます。

ソフトとハードの制限

ユーザーとして、実際にulimit設定を調整できます。

ユーザーが制限を調整できるのに、なぜ制限を設定するのか疑問に思われるかもしれません。ここで、ソフトとハードの制限が機能します。

したがって、管理者の観点からは、ユーザーが特定の値をホバリングすることをお勧めします。これがソフトリミットになります(たとえば25)。

次に、そのユーザーが超えられないハード制限を設定できます(50)。ユーザーは、制限を25から50に増やすことができます。

Linuxでのulimitの使用

ulimitコマンドの構文は次のとおりです。

ulimit <options>
任意のユーザーのすべての制限を表示

次の方法で、指定したユーザーのすべての種類の制限を表示できます。

ulimit -a user_name

-a フラグは、特定のユーザー名のすべてのオプションとその構成を表示します。

user_nameを省略すると、制限が表示されます。デフォルトで設定されている制限を示します:

[email protected]:~$ ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 31503
max locked memory       (kbytes, -l) 65536
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 31503
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

もちろん、デフォルト値は私のものとは異なる場合があります。このビューには、説明、割り当てられたフラグ(制限の変更に使用できる)、および構成が表示されます。

ハード制限とソフト制限を表示する

これらのそれぞれの制限のいずれかをフラグで確認することもできます。

ソフト制限を表示するには、オプション-S:

を使用します
ulimit -S

ハード制限を表示するには、オプション-H:

を使用します
ulimit -H

これらを上からの特定のフラグと組み合わせるとより便利です。したがって、ユーザープロセスの最大数のハード制限を確認する場合は、次のように入力します。

[email protected]:~$ ulimit -Hu
31503

制限を(一時的に)変更します

それでは、デモンストレーションのためにその値を31500に変更して、ハード制限をもう一度確認しましょう。

[email protected]:~$ ulimit -u 31500
[email protected]:~$ ulimit -Hu
31500

特権によって許可される変更は一時的にのみ書き込まれ、現在のシェルに影響を与えることに注意してください。

これを確認するために、シェルを終了して新しいターミナルを作成し、元のデフォルト値を取得しました。

[email protected]:~$ ulimit -Hu
31503

次のセクションでは、変更を永続的にする方法を示します。

ulimitに永続的な変更を加える

記事の冒頭で述べたように、ulimitは/etc/security/limits.confによって管理されています。ユーザーのulimitに永続的な変更を加える場合は、rootとしてセキュリティファイルに変更を加える必要があります。

編集するときは、次の4つの要素を含める必要があります。

<domain> <type> <item> <value>

これは、ユーザーchristoper(つまり自分のアカウント)のプロセス数に厳しい制限を設定するためにファイルに追加したテキストです:

christopher    hard    nproc   2000

潜在的な結果を十分に認識していない限り、rootアカウントを有効にしないことがベストプラクティスであることに注意してください。これは仮想マシンで行ったので、自分で行う必要はありません。

[email protected]:~$ su
Password: 
[email protected]:/home/christopher# nano /etc/security/limits.conf 
[email protected]:/home/christopher# exit
exit
[email protected]:~$ ulimit -u
20000

ご覧のとおり、「クリストファー」の制限は20000に変更されました。

/etc/security/limits.confファイルの編集に使用するキーワードをどのように知っていますか?さて、ここに可能なアイテムキーワードとそれらの説明を含む表があります:

アイテムキーワード 説明
コア コアファイルサイズ(KB)を制限します
データ 最大データサイズ(KB)
fsize 最大ファイルサイズ(KB)
memlock 最大ロックインメモリアドレス空間(KB)
nofile 開いているファイル記述子の最大数
rss 最大常駐セットサイズ(KB)
スタック 最大スタックサイズ(KB)
cpu 最大CPU時間(MIN)
nproc プロセスの最大数
as アドレス空間の制限(KB)
maxlogins このユーザーの最大ログイン数
maxsyslogins システムへのログインの最大数
優先度 ユーザープロセスを実行するための優先順位
ロック ユーザーが保持できるファイルロックの最大数
sigpending 保留中のシグナルの最大数
msgqueue – POSIXメッセージキューによって使用される最大メモリ(バイト)
いい 値まで上げることができる最大の素敵な優先度:[-20、19]
rtprio 最大リアルタイム優先度
chroot ルートをディレクトリに変更(Debian固有)
制限タイプ 説明
ハード ハードリミット
ソフト ソフト制限
ハードとソフトの両方の制限
グループのulimitを変更する

グループポリシーの変更は、前のセクションで見たものと非常に似ていますが、@を含めます。 グループ名の前の記号。

/etc/security/limits.confファイルを編集して、グループの学生の最大ログイン数を4に設定した例を次に示します。

@student    -   maxlogins   4

結論

ulimitLinuxコマンドのこのクイック入門書が気に入っていただけたでしょうか。

コメントや質問がある場合は、以下に残してください。取り上げてもらいたいトピックについて提案がある場合は、それらもお気軽に残してください。


Linux
  1. Bashの制御演算子と組み合わせたコマンド

  2. Linuxシャットダウンコマンド(例付き)

  3. 単純なLinuxコマンドで絶対シンボリックリンクを相対シンボリックリンクに変換しますか?

  1. GlanceコマンドでLinuxシステムを監視する方法

  2. Linuxでnloadを使用してネットワークの使用状況を監視する方法

  3. Linuxでulimitを使用してシステムリソースの使用を制御する方法

  1. Linuxでの日付コマンドと使用例

  2. 使用例を含むLinuxIPコマンド

  3. 例を使用したLinux稼働時間コマンド