Ich spiele mit pgBouncer als Verbindungspooling-System für PostgreSQL. Mein System ist ein 12-Core-System mit 64 GB RAM und 1 Gbit / s-Netzwerkschnittstelle unter Debian 8.1. Jetzt möchte ich das Limit für Open-Socket-Verbindungen auf beispielsweise 10.000 gleichzeitige Clients erhöhen. Beim Durchführen von DB-Benchmarks werden die pgbenchDienstprogramme bei etwa 950 gleichzeitigen Clients blockiert, was wie in guten alten Zeiten ein Limit von 1024 offenen FDS zu erreichen scheint. Ich habe den fs.file-maxKernel-Parameter und das pgbenchRessourcenlimit des laufenden Benutzers überprüft :
# sysctl fs.file-max
fs.file-max = 6598264
# su - postgres
$ ulimit -Sn
65536
$ fgrep files /proc/self/limits
Max open files 65536 65536 files
$
Die Grenzwerte von proczeigen jedoch, dass das Soft-Limit für maximal geöffnete Dateien für pgBouncer (als Benutzer ausgeführt postgres) nur maximal 1024 geöffnete Dateien beträgt:
$ ps -e | fgrep pgbouncer
9840 ? 00:00:00 pgbouncer
$ fgrep files /proc/9840/limits
Limit Soft Limit Hard Limit Units
Max open files 1024 4096 files
$
Ich habe versucht , die Grenze durch das Einfügen zu erhöhen ulimit -S -n 5000in /etc/default/pgbouncer(lesen Sie in der Start / Stopp - Skript in /etc/init.d), aber das hat nicht funktioniert. Dann habe ich versucht nofile, mich einzurichten /etc/security/limits.confund sichergestellt, dass es in PAM aktiviert ist, aber ohne Erfolg.
Wo genau wird start-stop-daemondas nofileLimit für Daemon-Prozesse gesenkt? Ich bin über diesen alten Fehlerbericht für Debian gestolpert , aber es scheint, dass der Patch nie angewendet wurde.
Übrigens: Ist es fs.file-maxwirklich der Ersatz der Kernelvariablen des früheren Systems nofiles(beachten Sie den Plural), wie in vielen Blog-Artikeln zum Thema Tuning vorgeschlagen? Ich wundere mich, dass es im fsParameterbereich ist. Auf meinem IRIX-System wird es rlimit_no_files_maxim Ressourcenbereich aufgerufen , was für mich viel sinnvoller ist, als es in den fsAbschnitt zu setzen.
Was mache ich hier falsch? Wo ist der richtige Ort, um diesen Parameter für Daemons in Debian 8.1 zu ändern?
Danke im Voraus,
Stefan
pgbouncer, aber es hatstracegezeigt, dass diessystemddie No-Dateien begrenzt, kurz bevor der Daemon ausgeführt wird. Vielleicht ist es in systemd fest codiert. Wie auch immer, jetzt funktioniert es und das Limit von 950 Dateien ist weg. Jetzt bricht pgbench mit 1025 Clients ab und eine Fehlermeldung (na ja):ulimit -H -nzeigt65536,pgbench -c 1025 -C -T 60löst Fehler ausinvalid number of clients: 1025.