Ich versuche, einen Stresstest auf meinem eigenen Server mithilfe der Belagerung mit dem folgenden Befehl durchzuführen:
$ siege -c 500 myweb.com/somefile.php
Aber ich bekomme diesen Fehler:
[error] descriptor table full sock.c:119: Too many open files
Und ich bekomme auch diese Warnung:
libgcc_s.so.1 must be installed for pthread_cancel to work
Aber ich verwende Ubuntu 15.04 (Entwicklungszweig) und habe das Paket libgcc1 installiert, daher weiß ich nicht, warum es mit dieser gemeinsam genutzten .so-Bibliothek übereinstimmt.
Wie kann ich die zu vielen geöffneten Dateien und die libgcc-Warnung lösen?
ubuntu
linux-networking
connection
socket
gcc
Shakaran
quelle
quelle
ulimit -n 10000
oder dauerhaft zu erhöhen ( rtcamp.com/tutorials/linux/increase-open-files-limit ).Antworten:
Um dieses Problem für mich selbst zu lösen, musste ich die Einstellung "ulimit" des Betriebssystems anpassen:
ulimit -a
- Aktuelle Einstellung prüfenulimit -n 10000
- Einstellwert bearbeitenQuelle: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=595527
quelle
Erhöhen Sie einfach die maximale Anzahl von Dateien, die von demselben Benutzer in derselben Sitzung geöffnet werden können.
Quelle: http://www.cyberciti.biz/faq/linux-increase-the-maximum-number-of-open-files/
quelle
Die Fehlermeldung ist irreführend
, aber Ihr Befehl enthält einen Fehler:Nachdem-c
Sie die Anzahl der gleichzeitig simulierten Benutzer angeben müssen.Vergessen Sie nicht, die Rechte für die Protokolldatei zu überprüfen: Standardmäßig ist dies der Fall
/var/log/siege.log
.Oder geben Sie Ihre eigenen an, indem Sie hinzufügen
--log=/home/user/siege.log
quelle
Die Installation des
gcc-multilib
hat mir dabei geholfen (Ubuntu 16.04.3 LTS)sudo apt-get install gcc-multilib
quelle