Ich habe kürzlich ein Upgrade von Mavericks auf Yosemite durchgeführt. Es traten Kopfschmerzen auf
Ich bin mir ziemlich sicher, dass mein Problem in der Anzahl der Dateien liegt, die ich öffnen kann - aber ich bin nicht sicher, wie ich es lösen soll . Ich bin mir auch ziemlich sicher, dass ich alle Artikel / Tipps zum Erstellen der /etc/sysctl.conf
Datei und der /etc/launchd.conf
Datei gelesen habe
Der Übersichtlichkeit halber sehen beide derzeit so aus (ich bin mir nicht einmal sicher, ob dies die richtigen Befehle sind, um sie wieder einzufügen - ich habe so gut wie alles und jede Kombination ausprobiert, dh höhere Werte, niedrigere Werte , Befehle entfernen, Befehle hinzufügen)
/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
Ich habe auch versucht, meine ulimit-Werte zu erhöhen - sowohl global als auch lokal für meine aktuelle Sitzung ... 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 - hier begannen meine Kopfschmerzen anfangs ... Meine über Homebrew installierte Datenbank (Percona-Server 5.6.21-69.0) begann zu ersticken und zu sterben, und im mysql-error.log wurde sie mit dem Fehler gefüllt 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
Dies ist, wo ich anfänglich versuchte, dieses Problem zu lösen, indem ich mein ulimit, maxfiles, maxproc, etc ... "auffrischte".
Schließlich - frustriert, ging ich weiter und würde später auf dieses Thema zurückkommen. Also habe ich immer wieder versucht, dass sudo gem install nokogiri
es fehlschlägt und denselben Fehler ausspuckt (viele Wiederholungen, dass builder.rb die native gem-Erweiterung nicht erstellt - gefolgt von einer Reihe wiederholter Stacktraces Logs Gist
nokogiri Installationsfehler
Ich habe verschiedene Ansätze ausprobiert / gegoogelt, um dieses Problem zu lösen (z. B. zusätzliche Flags usw.). Was erstaunlich ist - und als ich anfing zu denken, dass dieses Problem mit der Anzahl der geöffneten Dateien / Prozesse zusammenhängt, habe ich überprüft, top
während der Edelstein installiert wurde ... Ich war ziemlich überrascht zu sehen, was ich gefunden habe
oben während gem install nokogiri
Es sieht so aus, als würde sich mein Prozess weiter verzweigen, was dann für diese EINE Zeile in meinem vorherigen Bild Sinn machte (siehe "nokogiri install errors picture").
sh: fork: Resource temporarily unavailable
Ich habe keine Ideen mehr, bin mir aber nicht mehr sicher, wie ich die Anzahl der Dateien debuggen soll?
AKTUALISIEREN
Nun, ich habe es geschafft, Nokogiri zu installieren. Leider bin ich mir nicht ganz sicher, was das Problem behoben hat. Ich habe so viele Dinge ausprobiert. Aber ich denke, es musste mit der Neuinstallation von Ruby klappen. Es tritt jedoch immer noch das gleiche Problem auf, bei dem sich meine Datenbank über zu viele geöffnete Dateien beschwert, wenn ich eine nicht trivial kleine Datenbank verwende.
quelle
Antworten:
/etc/launchd.conf
In Yosemite (10.10) schienen die Änderungen für viele Google-Abfragen und SO-Vorschläge für mich nicht zu funktionieren. Am Ende funktionierte die/etc/sysctl.conf
Datei nach zahlreichen Kombinationen aus Ändern, Neustarten und Testen, indem sie geändert (oder erstellt wurde, falls sie nicht vorhanden ist) .Das musste ich eingeben, damit es funktioniert
Ich bin mir nicht sicher, ob
kern.maxfiles
ich da drin sein muss, aber als ich es alleine drin hatte, hatte ich immer noch das gleiche Problem, als ich hinzufügte, dasskern.maxfilesperproc
alles begann zu funktionieren.quelle
sysctl -a | grep kern.maxfiles
.Zum systemweiten Anpassen der Grenzwerte für geöffnete Dateien in Mac OS X Yosemite müssen Sie zwei Konfigurationsdateien erstellen. Die erste ist eine Eigenschaftslistendatei (auch bekannt als plist)
/Library/LaunchDaemons/limit.maxfiles.plist
, die die folgende XML-Konfiguration enthält:Dadurch wird das Limit für geöffnete Dateien auf 65536 festgelegt. Die zweite plist-Konfigurationsdatei sollte
/Library/LaunchDaemons/limit.maxproc.plist
mit folgendem Inhalt gespeichert werden :Beide plist-Dateien müssen Eigentum von
root:wheel
und über Berechtigungen verfügen-rw-r--r--
. Diese Berechtigungen sollten standardmäßig aktiviert sein. Sie können jedoch sicherstellen, dass sie aktiviert sind, indem Sie sie ausführensudo chmod 644 <filename>
. Während die oben erläuterten Schritte dazu führen, dass systemweite Beschränkungen für geöffnete Dateien beim Neustart korrekt festgelegt werden, können Sie diese manuell anwenden, indem Sie ausführenlaunchctl limit
.Neben diesen Grenzen auf Systemebene einstellen, empfehlen wir die auf Sitzungsebene als auch durch Anhänge die folgenden Zeilen zu Ihrer Einstellung
bashrc
,bashprofile
oder analog - Datei:Wie die plist-Dateien sollte auch Ihre bashrc- oder ähnliche Datei
-rw-r--r--
Berechtigungen haben. Jetzt können Sie Ihren Computer neu starten und ulimit -n in Ihr Terminal eingeben. Wenn Ihr System richtig konfiguriert ist, sollten Sie sehen, dass maxfiles auf 65536 gesetzt wurde.Quelle: http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/
quelle
Die Standardeinstellungen für Yosemite scheinen 12K und 10K zu sein:
Nur Einstellung
kern.maxfiles
in/etc/sysctl.conf
scheint meine Probleme gelöst zu haben./etc/sysctl.conf
Datei:quelle
launchctl limit maxfiles
gab mir dies:maxfiles 256 unlimited