sql >> データベース >  >> NoSQL >> MongoDB

インデックスmongoを確認しながら、開いているファイルが多すぎます

    NB: このソリューションは、最近のMac OSでは機能しない/機能しない可能性があります(コメントは> 10.13を示していますか?)。どうやら、セキュリティの目的で変更が加えられたようです。

    概念的には、解決策が適用されます-以下はいくつかの議論の源です:

    • https://wilsonmar.github.io/maximum-limits/
    • https://gist.github.com/tombigel/d503800a282fcadbee14b537735d202c
    • https://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7 -1

    -

    同じ問題が発生しました(別の操作を実行しましたが、それでも「開いているファイルが多すぎます」エラー)。leseが言うように、mongodを実行しているマシンの「maxfiles」制限まで下がっているようです。

    Macでは、次のコマンドで制限を確認することをお勧めします:

    sudo launchctl limit
    

    これにより、次のことが可能になります:

    <limit name> <soft limit> <hard limit>
        cpu         unlimited      unlimited      
        filesize    unlimited      unlimited      
        data        unlimited      unlimited      
        stack       8388608        67104768       
        core        0              unlimited      
        rss         unlimited      unlimited      
        memlock     unlimited      unlimited      
        maxproc     709            1064           
        maxfiles    1024           2048  
    

    この問題を回避するために私がしたことは、一時的に制限を高く設定することでした(私のものは元々ソフト:256、ハード:1000、またはそのような奇妙なものでした):

    sudo launchctl limit maxfiles 1024 2048
    

    次に、クエリ/インデックス作成操作を再実行し、それが機能しないかどうかを確認します。そうでない場合、および上限を維持するには(設定したシェルセッションからログアウトするとリセットされます)、次の行を使用して「/etc/launchd.conf」ファイルを作成します。

    limit maxfiles 1024 2048
    

    (または、既存のlaunchd.confファイルがある場合は、その行を既存のlaunchd.confファイルに追加します)。

    これにより、ログイン時にすべてのシェルでlaunchctlを介してmaxfileが設定されます。



    1. MongoDBでの遅いクエリの分析

    2. RedisでGROUPBYを実行する方法

    3. Mongoose / node.js検索、入力、処理、「非入力」、更新の方法

    4. NodeJSで、異なるフィールド名を持つmongodbから結果を出力するにはどうすればよいですか?