Linuxでは、開いているファイルの最大量を変更できます。 ulimit を使用して、この番号を変更できます 指図。これにより、シェルまたはシェルによって開始されるプロセスで使用可能なリソースを制御できるようになります。
関連項目: ユーザーごとのレベルでLinux実行プロセスの制限を設定する
この短いチュートリアルでは、開いているファイルの現在の制限とファイルの説明を確認する方法を示しますが、そのためには、システムへのrootアクセス権が必要です。
まず、Linuxシステムで開かれているファイル記述子の最大数を見つける方法を見てみましょう。
Linuxのオープンファイル制限を見つける
値は次の場所に保存されます:
# cat /proc/sys/fs/file-max 818354
表示される数は、ユーザーがログインセッションごとに開くことができるファイルの数を示しています。システムによって結果が異なる場合があります。
たとえば、 CentOS 私のサーバーでは、制限は 818354に設定されました 、 Ubuntuにいる間 自宅で実行しているサーバーのデフォルトの制限は176772に設定されていました 。
ハード制限とソフト制限を確認する場合は、次のコマンドを使用できます。
Linuxでハード制限を確認する
# ulimit -Hn 4096
Linuxのソフト制限を確認する
# ulimit -Sn 1024
さまざまなユーザーのハード値とソフト値を確認するには、「su」でユーザーを切り替えるだけです。 チェックしたい制限のあるユーザーに。
例:
# su marin $ ulimit -Sn 1024
$ ulimit -Hn 4096
Linuxでシステム全体のファイル記述子の制限を確認する方法
サーバーを実行している場合、一部のアプリケーションでは、開いているファイル記述子に対してより高い制限が必要になる場合があります。その良い例はMySQL/ MariaDB です サービスまたはApache Webサーバー。
Linuxで開くファイルの制限を増やすには、カーネルディレクティブfs.file-max
を編集します。 。そのために、 sysctlを使用できます ユーティリティ。
Sysctl 実行時にカーネルパラメータを設定するために使用されます。
たとえば、開いているファイルの制限を 500000に増やすには 、rootとして次のコマンドを使用できます:
# sysctl -w fs.file-max=500000
次のコマンドを使用して、開いているファイルの現在の値を確認できます。
$ cat /proc/sys/fs/file-max
上記のコマンドを使用すると、行った変更は次の再起動までアクティブのままになります。それらを永続的に適用する場合は、次のファイルを編集する必要があります。
# vi /etc/sysctl.conf
次の行を追加します:
fs.file-max=500000
もちろん、必要に応じて数を変更することができます。変更を再度確認するには、次を使用します:
# cat /proc/sys/fs/file-max
変更を有効にするには、ユーザーはログアウトして再度ログインする必要があります。制限をすぐに適用する場合は、次のコマンドを使用できます。
# sysctl -p
Linuxでのユーザーレベルのオープンファイル制限の設定
上記の例は、グローバル制限を設定する方法を示していますが、ユーザーごとに制限を適用することもできます。そのためには、ユーザーrootとして、次のファイルを編集する必要があります。
# vi /etc/security/limits.conf
Linux管理者の場合は、そのファイルとそのファイルに対して何ができるかをよく理解しておくことをお勧めします。さまざまなレベルでユーザー/グループを制限することにより、システムリソースの管理に関して優れた柔軟性を提供するため、その中のすべてのコメントをお読みください。
追加する必要のある行は、次のパラメーターを取ります。
<domain> <type> <item> <value>
これは、ユーザー marinにソフト制限とハード制限を設定する例です。 :
## Example hard limit for max opened files marin hard nofile 4096 ## Example soft limit for max opened files marin soft nofile 1024
最終的な考え
この簡単な記事では、開いているファイルの最大数についてグローバルレベルとユーザーレベルの制限を確認および構成する方法の基本的な例を示しました。
表面をかじったばかりですが、 /etc/sysctl.conf について詳しく見て、読むことを強くお勧めします。 および/etc/security/limits.conf そしてそれらの使い方を学びます。いつかあなたの助けになるでしょう。