Ubuntu 18.04で最大オープンファイル制限を増やす方法


16

実行してulimit -n 65536、次の行を追加しました/etc/security/limits.conf

*    soft nofile 65536
*    hard nofile 65536
alix soft nofile 65536
alix hard nofile 65536
root soft nofile 65536
root hard nofile 65536

そしてsession required pam_limits.so両方に追加されました:

  • /etc/pam.d/common-session
  • /etc/pam.d/common-session-noninteractive

そしてfs.file-max = 65536/etc/sysctl.d/60-file-max.conf

それでも、ulimit -nセッションを再起動して実行した後、4096しか表示されません(以前は1024でした)。

私は何が欠けていますか?

回答:


12

マニュアルから:

 -n     The maximum number of open file descriptors (most
        systems do not allow this value to be set)

systemd これにはオプションがあります:

$ more /etc/systemd/system.conf | grep NOFILE
#DefaultLimitNOFILE=

ただし、これはグラフィカルユーザー設定専用です。を削除する#と、65536に設定できます。

ダニエル・フェルナンデスからのコメント

DefaultLimitNOFILE=65536 

で必要になる場合があります

/etc/systemd/user.conf 

1
言及するのを忘れて、私もそれをしました。
アリックスアクセル

1
@AlixAxel:この答えは、に加えて、私のために働いた* - nofile 16384中で(私は16384しようとしていました)/etc/security/limits.conf
ダグスミシーズ

65kは仮定であり、許可されるものの上側にハードコードされた制限があることが予想されます。ダグが示したように、より低い位置から始めたいと思うかもしれません;)
リンツウィンド

「ただし、これはグラフィカルユーザー設定専用です」とはどういう意味ですか?
-sinan

1
注設定DefaultLimitNOFILE=65536も必要になる場合があります/etc/systemd/user.conf
ダニエルフェルナンデス

1

Ubuntu 18.04ステップバイステップ

これがすべて役立つことを願っていますが、かなり長いですが、(証明付きで)動作します

Ubuntu 18.04にMongoDbをインストールしているときに、このスレッドに出会いました。

https://posidev.com/blog/2009/06/04/set-ulimit-parameters-on-ubuntu/

あなたが見ることができるように、それはかなり古いですが、それは私のために動作します。

これが私がしたことです。

  1. MongoDbの推奨設定(https://docs.mongodb.com/manual/reference/ulimit/#review-and-set-resource-limits

    • -f(ファイルサイズ):無制限
    • -t(CPU時間):無制限
    • -v(仮想メモリ):無制限[1]
    • -l(メモリ内ロックサイズ):無制限
    • -n(ファイルを開く):64000
    • -m(メモリサイズ):無制限[1] [2]
    • -u(プロセス/スレッド):64000
  2. 現在の制限を確認する

ubuntu @ isdb-stage:〜$ ulimit -a
コアファイルサイズ(ブロック、-c)0
データセグメントサイズ(kバイト、-d)無制限
スケジューリング優先度(-e)0
ファイルサイズ(ブロック、-f)無制限
保留中のシグナル(-i)7873
最大ロックメモリ(kbytes、-l)16384
最大メモリサイズ(kbytes、-m)無制限
ファイルを開く(-n)1024
パイプサイズ(512バイト、-p)8
POSIXメッセージキュー(バイト、-q)819200
リアルタイム優先度(-r)0
スタックサイズ(kbytes、-s)8192
CPU時間(秒、-t)無制限
最大ユーザープロセス(-u)7873
仮想メモリ(kbytes、-v)無制限
ファイルロック(-x)無制限
  1. 変更が必要なものをメモします

    • ロックされたメモリサイズは、無制限に設定する必要があります。
    • ファイルを開き、64000に設定する必要があります
    • processes / threads *、64000に設定する必要があります
  2. これらの制限を変更する方法について、ubuntuは何と言っていますか?

$ man limits.conf

名前
   limits.conf-pam_limitsモジュールの構成ファイル

記述
   pam_limits.soモジュールは、ulimit制限、nice優先度、同時ログインセッション数の制限をユーザーログインセッションに適用します。構成ファイルの構文のこの説明は、

       /etc/security/limits.confファイルおよび* .confファイル 
       /etc/security/limits.dディレクトリ。
  1. /etc/security/limits.confファイルを編集して、かなり明確に見えます。わかりました。

ここにそのファイルの始まりがあり、もちろん指示が含まれていることを確認してください。これは善良な人々によって書かれたオープンソースであることを忘れないでください!:)

    vi /etc/security/limits.conf

    #/etc/security/limits.conf 
    #各行は、次の形式でユーザーの制限を説明します。                                                                   
    #                                                                                
    #どこ:                                                               
    #は次のとおりです。
    #-ユーザー名

(詳細を知りたい場合は、自分でファイルを見てください)
  1. 最後に変更を加えます。MongoDbはmongodbグループおよびユーザーとして実行されるため、ユーザーの制限のみを引き上げることをお勧めします。あちこちで「*」が使用されているのを見てきましたが、これはセキュリティ上のリスクです。サーバー上のあらゆる制限をこれらの制限に与え、サーバーを最大限に活用するために使用できます。したがって、mongodbユーザー専用に作成してください。

変更点は次のとおりです。-

mongodbソフトmemlock無制限
mongodbハードmemlock無制限
mongodb soft nofile 64000
mongodb hard nofile 64000
mongodbソフトnproc 64000
mongodb hard nproc 64000
  1. 最後に、最後に、man limits.confエントリでこれを覚えておいてください。

    limits.conf-pam_limitsモジュールの構成ファイル

    この制限事項がすべて機能するように、pam_limitsモジュールがロードされていることを確認してください。これを行うには、/ etc / pam.d / common-sessionを編集します。もちろん、これはmanページにもあります。

sudo vi /etc/pam.d/common-session

#これを追加して、pam_limits.soがロードされるようにします。
セッションに必要なpam_limits.so

再起動すると、(ユーザーmongodbの)制限が適用されたことが表示されます。代わりに「*」を使用してそれらを適用した場合、mongodbユーザーに切り替えることなくチェックできます。このコマンドを実行するだけです。

$ ulimit -a

コアファイルサイズ(ブロック、-c)0
データセグメントサイズ(kバイト、-d)無制限
スケジューリング優先度(-e)0
ファイルサイズ(ブロック、-f)無制限
保留中のシグナル(-i)7873
最大ロックメモリ(kbytes、-l)無制限
最大メモリサイズ(kbytes、-m)無制限
ファイルを開く(-n)64000
パイプサイズ(512バイト、-p)8
POSIXメッセージキュー(バイト、-q)819200
リアルタイム優先度(-r)0
スタックサイズ(kbytes、-s)8192
CPU時間(秒、-t)無制限
最大ユーザープロセス(-u)64000
仮想メモリ(kbytes、-v)無制限
ファイルロック(-x)無制限

ご覧のように、すべてが私たちが望んだ限界に設定されていて、すっきりとジャブリングしています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.