本記事では、limits.conf の設定によってプロセス数を制限する方法を説明します。
個人での検証の場合は、この手順をスキップできます。本番環境の場合は、limits.conf の設定を推奨します。
設定ファイル /etc/security/limits.conf を使用して、グローバルレベルでリソース制限を変更できます。OceanBase データベースのプロセスに関する制限には、スレッドの最大スタックサイズ (Stack)、最大オープンファイル数 (Open Files)、コアファイルサイズ (Core File Size) が含まれます。
設定の変更
説明
各マシンでこの操作を個別に実行する必要があります。
セッションレベルの最大スタックサイズを unlimited、最大ファイル記述子数を 655350、コアファイルサイズを unlimited に設定します。
以下のコマンドを実行して、/etc/security/limits.conf 設定ファイルを開きます:
[admin@test001 ~]$ sudo vim /etc/security/limits.conf
/etc/security/limits.conf 設定ファイルに以下の内容を追加します:
* soft nofile 655350
* hard nofile 655350
* soft stack unlimited
* hard stack unlimited
* soft nproc 655360
* hard nproc 655360
* soft core unlimited
* hard core unlimited
説明
/etc/security/limits.d/20-nproc.confファイルにnprocの設定が存在するかどうか確認し、存在する場合は、ファイル内のnprocの値を同時に修正する必要があります。limits.confの設定は、新規セッション(新しく開いたターミナル、SSH 接続、または新規に起動したプロセスなど)にのみ適用されます。既存のセッションやプロセスは新しい設定を自動的に継承しないため、再ログインまたは関連サービスの再起動が必要です。
設定の確認
現在のセッションを終了して、再度ログインします。以下のコマンドを実行して、設定が有効になっていることを確認します。
[admin@test001 ~]$ ulimit -a
以下のように出力されます。
core file size (blocks, -c) unlimited
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 252876
max locked memory (kbytes, -l) 64
max memory size (kbytes, -m) unlimited
open files (-n) 655350
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 655360
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
結果から以下の内容が確認されます:
core file sizeは、コアファイルの最大サイズの上限値 (ブロック単位) を表し、limits.conf設定ファイルの core パラメータに対応します。値が unlimited であることを確認する必要があります。open filesは、最大オープンファイル記述子数を示し、limits.conf設定ファイルの nofile パラメータに対応します。値が 655350 であることを確認する必要があります。stack sizeはスタックサイズ (キロバイト単位) を表し、limits.conf設定ファイルの stack パラメータに対応しています。値が unlimited であることを確認する必要があります。max user processesは、最大ユーザープロセス数を示し、limits.conf設定ファイルの nproc パラメータに対応します。値が 655360 であることを確認する必要があります。