回答:
ジャスティンの答えは、どのように利用可能なオープンファイルの数を高める方法を説明しますトータルシステム全体に。しかし、ユーザーごとの制限をグローバルに引き上げる方法を求めていると思います。その答えは、次の行をに追加することです/etc/security/limits.conf
:
* soft nofile 2048
* hard nofile 2048
(*はすべてのユーザーを意味します。)
そのファイル自体とにいくつかの要約ドキュメントがありますman limits.conf
。これは、でpam_limits.so
設定されたさまざまなサービスに対して呼び出されるモジュールを介して実装され/etc/pam.d/
ます。
そして、私は認めなければならない、私はその1024のデフォルトがどこから来るのか分かりません。そして私を信じて、私は見た。pam_limitsモジュールを設定せずに試しましたが、まだそこにあります。どこかにハードコーディングする必要がありますが、どこにあるのか正確にはわかりません。
Linuxが開くファイル/ファイル記述子(FD)の最大数を増やすという記事によると、にエントリを追加することにより、開いているファイルの制限を増やすことができます/etc/sysctl.conf
。
次のように構成ディレクティブを追加します。
fs.file-max = 100000
次に、ファイルを保存して閉じます。変更を有効にするには、ユーザーはログアウトして再度ログインする必要があります。または、次のコマンドを入力するだけです。
# sysctl -p
次のコマンドで設定を確認することもできます。
# cat /proc/sys/fs/file-max
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
ただし、MariaDBなどのサービス(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を増やす
systemd
Linuxエコシステム全体で、ユビキタスと進行中の変更が増加しているため、これを支持する必要があります。ただし、cp -r /lib/systemd/system/mariadb.service /etc/systemd/system/
パッケージによって提供されるシステム全体のサービスファイルではなく、回答を編集してそのファイルを変更することをお勧めします。
補足:
configは別の場所にあります: /etc/security/limits.d/*.conf
変更しなければなりませんでした。それなしでは機能しませんでした。形式は次と同じですlimits.conf