web-dev-qa-db-ja.com

すべてのプロセスのオープンファイル制限を増やすにはどうすればよいですか?

私はulimitを使用できますが、それは自分のシェルセッションにのみ影響を与えると思います。すべてのプロセスの制限を増やしたい。これはRed Hatにあります。

34
user5554

ジャスティンの答えは、システム全体で利用可能なオープンファイルの数totalを増やす方法を示しています。しかし、ユーザーごとの制限をグローバルに引き上げる方法を尋ねていると思います。その答えは、次の行を/etc/security/limits.confに追加することです。

*               soft    nofile            2048
*               hard    nofile            2048

(*はすべてのユーザーを意味します。)

そのファイル自体とman limits.confにいくつかの要約ドキュメントがあります。これは、pam_limits.soで構成されたさまざまなサービスに対して呼び出される/etc/pam.d/モジュールを介して実装されます。

そして、私は認めなければなりません、私はアイデアなしがあり、その1024のデフォルトはどこから来ているのですか?そして私を信じて、私は見ました。私はpam_limitsモジュールを設定せずに試しましたが、まだあります。どこかでハードコーディングされているはずですが、どこにあるのか正確にはわかりません。

27
mattdm

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
14
minhas23

記事 Linuxはオープンファイルの最大数/ファイル記述子(FD)を増やす によると、/etc/sysctl.confにエントリを追加することで、オープンファイルの制限を増やすことができます。

次のように構成ディレクティブを追加します。

fs.file-max = 100000

次に、ファイルを保存して閉じます。ユーザーはログアウトして再度ログインする必要があります。変更を有効にするには、次のコマンドを入力するだけです。

# sysctl -p

次のコマンドで設定を確認することもできます。

# cat /proc/sys/fs/file-max
14
Justin Ethier

しかし、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を増やす

8

補足:

設定は別の場所にあります:/etc/security/limits.d/*.conf

私はそれを修正しなければなりませんでした。それなしでは機能しませんでした。形式はlimits.confと同じです

3