私はulimitを使用できますが、それは自分のシェルセッションにのみ影響を与えると思います。すべてのプロセスの制限を増やしたい。これはRed Hatにあります。
ジャスティンの答えは、システム全体で利用可能なオープンファイルの数totalを増やす方法を示しています。しかし、ユーザーごとの制限をグローバルに引き上げる方法を尋ねていると思います。その答えは、次の行を/etc/security/limits.conf
に追加することです。
* soft nofile 2048
* hard nofile 2048
(*はすべてのユーザーを意味します。)
そのファイル自体とman limits.conf
にいくつかの要約ドキュメントがあります。これは、pam_limits.so
で構成されたさまざまなサービスに対して呼び出される/etc/pam.d/
モジュールを介して実装されます。
そして、私は認めなければなりません、私はアイデアなしがあり、その1024のデフォルトはどこから来ているのですか?そして私を信じて、私は見ました。私はpam_limitsモジュールを設定せずに試しましたが、まだあります。どこかでハードコーディングされているはずですが、どこにあるのか正確にはわかりません。
Linuxでulimitオープンファイルの最大数を増やす
1.ステップ:sysctl.conf
とこの行を追加fs.file-max = 65536
$ vi /etc/sysctl.conf
新しい行を追加して
fs.file-max = 65536
保存して終了。
2.ステップ:
$ vi /etc/security/limits.conf
言及の下に追加
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
保存して終了チェック最大オープンファイルulimit
# ulimit -a
....
open files (-n) 65535
記事 Linuxはオープンファイルの最大数/ファイル記述子(FD)を増やす によると、/etc/sysctl.conf
にエントリを追加することで、オープンファイルの制限を増やすことができます。
次のように構成ディレクティブを追加します。
fs.file-max = 100000
次に、ファイルを保存して閉じます。ユーザーはログアウトして再度ログインする必要があります。変更を有効にするには、次のコマンドを入力するだけです。
# sysctl -p
次のコマンドで設定を確認することもできます。
# cat /proc/sys/fs/file-max
しかし、MariaDBのようなserviceのオープンファイルの最大数を増やしたい場合(systemdを使用) )ファイル.serviceで直接行う必要があります
/lib/systemd/system/<servicename>.service
このようなものになります:
[Unit]
Description=Some Daemon
After=syslog.target network.target
[Service]
Type=notify
LimitNOFILE=49152
ExecStart=/usr/sbin/somedaemon
[Install]
WantedBy=multi-user.target
完全な答えはここにあります: CentOS 7でsystemdによって起動されたプロセスのnprocを増やす
補足:
設定は別の場所にあります:/etc/security/limits.d/*.conf
私はそれを修正しなければなりませんでした。それなしでは機能しませんでした。形式はlimits.conf
と同じです