sql >> Database >  >> NoSQL >> MongoDB

Te veel open bestanden en zorg ervoor dat index mongo

NB: Deze oplossing werkt wel/niet met recente Mac OS'en (opmerkingen geven>10.13 aan?). Blijkbaar zijn er om veiligheidsredenen wijzigingen aangebracht.

Conceptueel is de oplossing van toepassing - hier volgen enkele bronnen van discussie:

  • 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

--

Ik heb hetzelfde probleem gehad (het uitvoeren van een andere bewerking, maar nog steeds een "Te veel open bestanden"-fout), en zoals Lese zegt, lijkt het neer te komen op de 'maxfiles'-limiet op de machine waarop mongod draait.

Op een Mac is het beter om limieten te controleren met:

sudo launchctl limit

Dit geeft je:

<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  

Wat ik deed om het probleem te omzeilen was om de limiet tijdelijk hoger te zetten (de mijne was oorspronkelijk zoiets als zacht:256, hard:1000 of zoiets raars):

sudo launchctl limit maxfiles 1024 2048

Voer vervolgens de query/indexeringsbewerking opnieuw uit en kijk of deze breekt. Als dat niet het geval is, en om de hogere limieten te behouden (ze worden gereset wanneer u uitlogt uit de shell-sessie waarop u ze hebt ingesteld), maakt u een '/etc/launchd.conf'-bestand met de volgende regel:

limit maxfiles 1024 2048

(of voeg die regel toe aan je bestaande launchd.conf-bestand, als je er al een hebt).

Dit zal de maxfile instellen via launchctl op elke shell bij het inloggen.



  1. BadValue Ongeldige of geen gebruikerslandinstelling ingesteld. Zorg ervoor dat de omgevingsvariabelen LANG en/of LC_* correct zijn ingesteld

  2. MongoDB $pop

  3. Eerste MongoDB Hosting DBaaS ter ondersteuning van Azure Government voor de publieke sector

  4. ip-bereiken opslaan in Redis