/etc/security/limits.confに関する説明


kafkaとelasticsearchクラスタを架設する際、システムリソース構成を変更する必要があるという問題、すなわち/etc/security/limits.confファイルに関連し、他のタイプのサーバにもこれらの問題があります.以下にまとめます.
一時的なシステムチューニング-ulimitコマンド
ulimitコマンドの使い方説明
コマンド:ulimit機能:shellプログラムを制御するリソース構文:ulimit[-aHS][-c][-d][-f][-m][-n][-p][-s][-t][-u][-v]説明:ulimitはshell実行プログラムを制御するリソースである.パラメータ:-a現在のリソース制限の設定を表示します.-c coreファイルの最大値をブロック単位で設定します.-dプログラムデータセクションの最大値.単位はKB.-f shellが作成できる最大ファイル.単位はブロックです.-Hリソースのハードリミット、つまり管理者が設定したリミットを設定します.-m使用可能メモリの上限をKB単位で指定します.-n同じ時間に開くファイルの最大数を指定します.-pパイプバッファのサイズを512バイトで指定します.-sスタックの上限をKB単位で指定します.-Sリソースのフレックスリミットを設定します.-t CPU使用時間の上限を秒単位で指定します.-uユーザーが開始できる最大プロセス数.-v使用可能な仮想メモリの上限をKB単位で指定します.
デフォルトではリソース構成
# 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) 30518
max locked memory       (kbytes, -l) 64
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) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 1024
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

最大プロセス数の変更
Linuxは、ユーザーごとに最大プロセス数を制限します.パフォーマンスを向上させるために、デバイスリソースの状況に応じて、各linuxユーザーの最大プロセス数(10000など)を設定できます.
# ulimit -u 10000 

最大ファイルオープン数の変更
多くのsocket接続を行い、開いているJavaアプリケーションでは、デフォルト値は1024です.各プロセスで開くファイル数を設定する必要があります.
# ulimit -n 65535

その他の設定
無制限(unlimited)に設定することを推奨するいくつかの重要な設定は、次のとおりです.
セグメント長
# ulimit -d unlimited

最大メモリサイズ
# ulimit -m unlimited

スタックサイズ
# ulimit -s unlimited

CPU時間
# ulimit -t unlimited

仮想メモリ
# ulimit -v unlimited

注意:ulimitedはユーザーが使用できるリソースを制限しませんが、この設定は開いている最大ファイル数(max open files)と同時に実行できる最大プロセス数(max user processes)に対して無効です.
永久システムチューニング--/etc/security/limits.confまたは/etc/security/limits.d/フォルダの下に新規ファイル書き込み制限内容
/etc/security/limits.confはLinuxリソース使用プロファイルであり、システムリソースの使用を制限するために使用されます.limits.confファイルは実際にはLinux PAM(プラグイン認証モジュール、Pluggable Authentication Modules)のpam_limits.soのプロファイルであり、単一セッションのみに適用されます./etc/security/limits.d/フォルダで定義されたファイルの内容はlimits.conf形式と同じですが、優先度が高く、このフォルダで自分の必要なものを定義することをお勧めします.
limits.confのフォーマット
username|@groupname type resource limit
  • username|@groupname:制限が必要なユーザー名を設定し、グループ名の前に@とユーザー名の違いを付けます.ワイルドカード'*'を使用して、すべてのユーザーの制限を行うこともできます.
  • type:ソフトウェア、hard、および-があり、ソフトウェアは現在のシステムで有効な設定値を指します.hardは、システムで設定できる最大値を示します.ソフトの制限はharの制限より高くはならない.-を使用して、ソフトウェアとhardの値が同時に設定されていることを示します.
  • resource:
  • core-カーネルファイルのサイズを制限
  • date-最大データサイズ
  • fsize-最大ファイルサイズ
  • memlock-最大ロックメモリアドレス空間
  • nofile-開くファイルの最大数
  • rss-最大持続設定サイズ
  • stack-最大スタックサイズ
  • cpu-分単位の最大CPU時間
  • noproc-プロセスの最大数
  • as-アドレス空間制限
  • maxlogins-このユーザーがログインを許可する最大数
  • limit:具体的な数値
  • その他の構成
    /etc/security/limitsを有効にします.conf機能
    limits.confファイル構成が有効になるにはpam_を確認する必要があります.limits.soファイルが起動ファイルに追加されます.表示/etc/pam.d/suファイルには:
    ...
    session required pam_limits.so
    ...

    Linux環境変数の変更
    # vim /etc/profile
    ...
    #     
    ulimit -SHn 204800

    注意:ここで設定する204800は/etc/security/limitsより大きい必要があります.conf最大オープン数
    例を挙げる
    例:ファイル記述子サイズの変更(65536)
  • step1
  • # vim  /etc/security/limits.d/30-nofile.conf
    ...
    *        soft       nofile    65536
    *        hard        nofile    65536
  • step2
  • # vim /etc/pam.d/su
    ...
    session required pam_limits.so
  • step3
  • # vim /etc/profile
    ...
    ulimit -SHn 204800

    注意!
    サービス起動の上記の設定が機能しない場合は、サーバファイルに設定する必要があります.サーバファイルは一般的に次の場所にあります.
  • /usr/lib/systemd/systemシステムサービス
  • /etc/systemd/systemユーザ定義サービスは、サービスファイルに以下の
    ...
    [Service]
    ...
    LimitCORE=infinity
    LimitNOFILE=65536
    LimitNPROC=65536
    を追加する.上記3つは、サービスに追加する必要があるコンテンツであり、65536はカスタム数である.現在実行中のサービスのリソース制限
    # cat /proc//limit
  • を次のコマンドで表示できます.