J'ai récemment passé de Mavericks à Yosemite .... des maux de tête s'ensuivirent
Je suis presque sûr que mon problème réside dans le nombre de fichiers que je peux ouvrir , mais je ne sais pas comment le résoudre . Je suis également sûr d'avoir lu tous les articles / conseils sur la création du /etc/sysctl.conf
fichier et du /etc/launchd.conf
fichier
Par souci de clarté, voici à quoi ressemblent actuellement les deux nb (je ne sais même pas si ce sont les bonnes commandes à y mettre plus - j'ai essayé à peu près tout et toutes les combinaisons. Par exemple: des valeurs plus élevées, des valeurs plus faibles , suppression de commandes, ajout de commandes)
/etc/launchd.conf
limit maxfiles 16384 32768
limit maxproc 1000 2000
/etc/sysctl.conf
# Turn up maxproc
kern.maxproc=2048
# Turn up the maxproc per user
kern.maxprocperuid=512
J'ai également essayé d'augmenter mes valeurs ulimit - à la fois globalement et localement pour ma session en cours ... no bueno
ulimit -a
-t: cpu time (seconds) unlimited
-f: file size (blocks) unlimited
-d: data seg size (kbytes) unlimited
-s: stack size (kbytes) 8192
-c: core file size (blocks) 0
-v: address space (kbytes) unlimited
-l: locked-in-memory size (kbytes) unlimited
-u: processes 709
-n: file descriptors 4096
Ok - c'est là que mon mal de tête a commencé initialement ... Ma base de données (percona-server 5.6.21-69.0 installé via homebrew) a commencé à s'étouffer et à mourir, et dans le mysql-error.log, elle a été remplie avec l'erreur too many files open
.
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorder_products.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tokenorders.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsdevices.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/tsracks.frm' (errno: 24 - Too many open files)
2014-10-21 15:19:50 5190 [ERROR] /usr/local/Cellar/percona-server/5.6.21-69.0/bin/mysqld: Can't open file: './ie/v_classunity_classlist.frm' (errno: 24 - Too many open files)
2014-10-21 15:20:48 5190 [ERROR] Error in accept: Too many open files
C'est là que j'ai commencé à essayer de résoudre ce problème en "augmentant" mes ulimit, maxfiles, maxproc, etc ...
Finalement - frustré, je suis passé à autre chose et reviendrais sur ce problème plus tard. Donc, j'essayais sudo gem install nokogiri
encore et encore, cela échouerait et cracherait la même erreur (beaucoup de répétitions sur le constructeur.rb ne parvenant pas à créer l'extension native de gemme - suivies par un tas de stacktraces répétées Logs Gist
Erreurs d'installation de nokogiri
J'ai essayé / googlé un tas d'approches différentes pour résoudre ce problème (c'est-à-dire: drapeaux supplémentaires, etc.). Ce qui est étonnant - et quand j'ai commencé à penser que ce problème était lié au nombre de fichiers / processus ouverts, c'est quand j'ai vérifié top
pendant l'installation de la gemme .... J'ai été assez surpris de voir ce que j'ai trouvé
haut pendant gem install nokogiri
Il semble que mon processus continue de bifurquer, ce qui avait alors du sens pour cette seule ligne dans ma photo précédente (voir "image des erreurs d'installation de nokogiri")
sh: fork: Resource temporarily unavailable
Je suis donc un peu à court d'idées, mais je ne sais plus vraiment comment déboguer le nombre de fichiers?
MISE À JOUR
Eh bien, j'ai réussi à installer nokogiri. Malheureusement, je ne sais pas exactement ce qui l'a corrigé b / c, j'ai essayé tant de choses. Mais je pense qu'il a dû faire face à la réinstallation de rubis. Cependant, je reçois toujours le même problème avec ma base de données se plaignant de trop de fichiers ouverts lorsque j'utilise une sorte de base de données qui n'est pas trivialement petite.
la source
Réponses:
La modification de
/etc/launchd.conf
beaucoup de requêtes Google et de suggestions SO ne semblait pas fonctionner pour moi dans Yosemite (10.10). Ce qui a fini par fonctionner, après de nombreuses combinaisons de changement / redémarrage / test, a été de modifier (ou de créer s'il n'existe pas) le/etc/sysctl.conf
fichier.C'est ce que j'ai dû mettre pour que ça marche
Je ne sais pas s'il
kern.maxfiles
faut y être, mais quand je l'ai eu là-dedans, j'ai toujours eu le même problème, quand j'ai ajouté quekern.maxfilesperproc
tout a commencé à fonctionner.la source
sysctl -a | grep kern.maxfiles
.Pour ajuster les limites de fichiers ouverts à l'échelle du système dans Mac OS X Yosemite, vous devez créer deux fichiers de configuration. Le premier est un fichier de liste de propriétés (aka plist)
/Library/LaunchDaemons/limit.maxfiles.plist
qui contient la configuration XML suivante:Cela définira la limite de fichiers ouverts à 65536. Le deuxième fichier de configuration plist doit être stocké
/Library/LaunchDaemons/limit.maxproc.plist
avec le contenu suivant:Les deux fichiers plist doivent appartenir à
root:wheel
et disposer d'autorisations-rw-r--r--
. Ces autorisations doivent être en place par défaut, mais vous pouvez vous assurer qu'elles sont en place en exécutantsudo chmod 644 <filename>
. Bien que les étapes expliquées ci-dessus entraînent la définition correcte des limites de fichiers ouverts à l'échelle du système au redémarrage, vous pouvez les appliquer manuellement en exécutantlaunchctl limit
.En plus de fixer ces limites au niveau du système, nous vous recommandons de régler le au niveau de la session, ainsi par les annexant lignes suivantes à votre
bashrc
,bashprofile
ou un fichier analogue:Comme les fichiers plist, votre bashrc ou un fichier similaire doit avoir des
-rw-r--r--
autorisations. À ce stade, vous pouvez redémarrer votre ordinateur et entrer ulimit -n dans votre terminal. Si votre système est configuré correctement, vous devriez voir que maxfiles a été défini sur 65536.Provenant de: http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/
la source
Les valeurs par défaut sur Yosemite semblent être 12K et 10K:
Seule la mise
kern.maxfiles
en place/etc/sysctl.conf
semble avoir résolu mes problèmes./etc/sysctl.conf
fichier:la source
launchctl limit maxfiles
m'a donné ceci:maxfiles 256 unlimited