1167: M 26 Apr 13: 00: 34.667 # Redis kann maximale geöffnete Dateien wegen eines Betriebssystemfehlers nicht auf 10032 setzen: Operation nicht erlaubt. 1167: M 26 Apr 13: 00: 34.667 # Die aktuell maximal geöffneten Dateien sind 4096. maxclients wurde auf 4064 reduziert, um niedrige ulimit zu kompensieren. Wenn Sie höhere Max Clients benötigen, erhöhen Sie 'ulimit -n'. 1167: M 26 Apr 13: 00: 34.685 # Creating Server TCP-Empfangsbuchse 192.34.62.56: 6379: Name oder Dienst unbekannt 1135: M 26 Apr 20: 34: 24.308 # Sie haben maxclients von 10000 angefordert, die mindestens erforderlich sind 10032 maximale Dateideskriptoren. 1135: M 26 Apr 20: 34: 24.309 # Redis kann wegen eines Betriebssystemfehlers maximal geöffnete Dateien nicht auf 10032 setzen: Operation nicht erlaubt. 1135: M 26 Apr 20: 34: 24.309 # Momentane maximale offene Dateien sind 4096. maxclients wurde auf 4064 reduziert, um niedrige ulimit zu kompensieren. Wenn Sie höhere Max Clients benötigen, erhöhen Sie 'ulimit -n'. 1135: M 26 Apr 20: 34: 24.330 # Server TCP-Empfangsbuchse 192.34.62.56 erstellen: 6379: Name oder Dienst nicht bekanntWarum kann redis nicht maximal geöffnete Datei setzen
Antwort
Redis wird niemals die maximal geöffneten Dateien ändern.
Dies ist eine Betriebssystemkonfiguration und sie kann auch pro Benutzer konfiguriert werden. Der Fehler ist beschreibend und sagt Ihnen: „Erhöhung‚ulimit -n‘“
Sie auf diesem Blog-Eintrag verweisen können, wie die maximal geöffneten Dateien Deskriptoren zu erhöhen: http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/
Sie müssen nur diesen Befehl in der Konsole :
sudo ulimit -n 65535
Nun, es ist ein bisschen für diesen Beitrag zu spät, aber da ich habe gerade viel Zeit (die ganze Nacht) 16.04 einen neuen redis Server 3.0.6 auf ubuntu zu konfigurieren. Ich denke, ich sollte nur notieren, wie ich es mache, damit andere ihre Zeit nicht verschwenden müssen ...
Für einen neu installierten Redis-Server werden Sie wahrscheinlich die folgenden Probleme in der Redis-Protokolldatei sehen, die ist /var/log/redis/redis-server.log
Maximum Open Files
3917:M 16 Sep 21:59:47.834 # You requested maxclients of 10000 requiring at least 10032 max file descriptors.
3917:M 16 Sep 21:59:47.834 # Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
3917:M 16 Sep 21:59:47.834 # Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients increase 'ulimit -n'.
ich viele Beiträge, die Sie gesehen haben, sagen zu modifizieren
/etc/security/limits.conf
redis soft nofile 10000
redis hard nofile 10000
oder
/etc/sysctl.conf
fs.file-max = 100000
, die in Ubuntu 14.04, aber es ist sicherlich nicht funktioniert in Ubuntu 16.04 funktionieren könnte. Ich denke, es hat etwas mit dem Wechsel von Upstart zu Systemd zu tun, aber ich bin kein Experte für Linux Kernel!
dies zu beheben Sie den systemd Weg
/etc/systemd/system/redis.service
[Service]
...
User=redis
Group=redis
# should be fine as long as you add it under [Service] block
LimitNOFILE=65536
...
Dazu Reload-Dämon muss zu tun haben, und starten Sie den Dienst
sudo systemctl daemon-reload
sudo systemctl restart redis.service
Um zu überprüfen, ob es funktioniert, versuchen Sie, cat proc limits
cat /run/redis/redis-server.pid
cat /proc/PID/limits
und Sie werden
Max open files 65536 65536 files
Max locked memory 65536 65536 bytes
In diesem Stadium sehen, die maximale offene Datei ist gelöst.
Maximale Buchse Anschluss
2222:M 16 Sep 20:38:44.637 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
Speicher Overcommit
2222:M 16 Sep 20:38:44.637 # Server started, Redis version 3.0.6
2222:M 16 Sep 20:38:44.637 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
Da diese beiden verwandt sind, werden wir es auf einmal lösen.
sudo vi /etc/sysctl.conf
# Add at the bottom of file
vm.overcommit_memory = 1
net.core.somaxconn=1024
nun für diese Konfigurationen zu arbeiten, müssen Sie die Konfigurations
sudo sysctl -p
Transparent Huge Pages
1565:M 16 Sep 22:48:00.993 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
Um dauerhaft zu lösen diese neu zu laden, folgen dem Vorschlag des Protokoll und ändern rc.local
sudo vi /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
Dies erfordert Sie Neustart, sichern Sie Ihre Daten oder tun Sie alles, was Sie brauchen, bevor Sie es tatsächlich tun!
Jetzt überprüfen Sie redis Log erneut, sollten Sie einen Redis-Server ohne Fehler oder Warnungen haben.
- 1. Tkinter können nicht geöffnete Datei mit askopenfilenames
- 2. Vim geöffnete Datei unter Cursor
- 3. geöffnete Browser-Datei mit Jquery
- 4. node.js geöffnete Datei überschreibt vorhandene Datei
- 5. Wie kann ich eine geöffnete Datei in WebStorm schnell umbenennen?
- 6. VB.NET Wie kann ich eine geöffnete Datei freigeben?
- 7. Xamarin.Forms UWP Bild schließt nie geöffnete Datei
- 8. Die über FileReference in Flex geöffnete Datei
- 9. Warum kann ich das veränderbare Attribut von AnchorPane nicht setzen?
- 10. Eine geöffnete Datei erneut lesen Python
- 11. Wie kann ich eine geöffnete Datei mit VB6 kopieren?
- 12. Kann ich die aktuelle mit nano geöffnete Datei löschen?
- 13. Maximal 20 Cookies pro Domain - Warum?
- 14. C# berechnet MD5 für geöffnete Datei?
- 15. Warum kann ich [assembly: Dependency()] nicht über eine Klasse setzen?
- 16. kann nicht Träger setzen
- 17. QFile geöffnete Datei zum Schreiben schlägt fehl
- 18. ChartJS: Wie Maximal- und Minimalwert für die Y-Achse setzen
- 19. Warum kann ich den Klassenkonstruktorparameter nicht auf einen Standardwert setzen?
- 20. Warum kann ein Compiler die Methode nicht außer Kraft setzen?
- 21. "Zu viele geöffnete Dateien" auf Tomcat Keystore
- 22. Kann TemplateUrl in Angular2 nicht setzen
- 23. Heroku Redis kann Verbindung nicht öffnen
- 24. Kann Scan-Familienbefehl auf Redis nicht verwenden
- 25. kann nicht Java-Objekt in Redis
- 26. feder redis kann nicht auf Remote-Host
- 27. Warum kann die Datei nicht gelöscht werden?
- 28. VBA für Word: Warum kann nicht auf andere geöffnete Dokumente zugegriffen werden?
- 29. Datei kann nicht schreiben
- 30. C# kann nicht gelesen werden Eine in Word geöffnete XML-Datei
Befehl nicht gefunden am 16.04 Ubuntu – user1735921