この初心者向けチュートリアルでは、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固有) |
制限タイプ | 説明 |
---|---|
ハード | ハードリミット |
ソフト | ソフト制限 |
– | ハードとソフトの両方の制限 |
グループポリシーの変更は、前のセクションで見たものと非常に似ていますが、@
を含めます。 グループ名の前の記号。
/etc/security/limits.confファイルを編集して、グループの学生の最大ログイン数を4に設定した例を次に示します。
@student - maxlogins 4
結論
ulimitLinuxコマンドのこのクイック入門書が気に入っていただけたでしょうか。
コメントや質問がある場合は、以下に残してください。取り上げてもらいたいトピックについて提案がある場合は、それらもお気軽に残してください。