lsof-Tool
Der Dateideskriptor ist eine einfache Ganzzahl, die jede vom Prozess geöffnete Datei und jeden Socket identifiziert. Die erste geöffnete Datei ist 0, die zweite ist 1 und so weiter. Linux-Betriebssysteme begrenzen normalerweise die Anzahl der Dateien, die jeder Prozess öffnen kann, und Linux hat normalerweise ein Limit auf Systemebene von 1024.
Mit zunehmender Parallelität reichen die standardmäßigen 1024-Dateideskriptoren des ursprünglichen Systems definitiv nicht aus. Je länger die Zeit, desto mehr meldet das System möglicherweise den folgenden Fehler:
Limits für offene Dateien…..
Um die vom Nginx-Prozess belegten Dateideskriptoren anzuzeigen, können Sie den folgenden Befehl ausführen:
<code>lsof <span>| grep nginx</span></code>
Teilergebnisse
<code>nginx <span>6845</span> nobody <span>6</span>u <span>IPv4</span><span>179045</span> 0t<span>0</span><span>TCP</span> *<span>:http</span> (<span>LISTEN</span>) nginx <span>6845</span> nobody <span>7</span>u <span>IPv4</span><span>179046</span> 0t<span>0</span><span>TCP</span> *<span>:ddi-tcp-</span><span>1</span> (<span>LISTEN</span>) nginx <span>6845</span> nobody <span>8</span>u unix <span>0xffff88005eda0c80</span> 0t<span>0</span><span>179050</span> socket nginx <span>6845</span> nobody <span>9</span>u <span>REG</span><span>0</span>,<span>9</span><span>0</span><span>3660</span> anon_inode nginx <span>6845</span> nobody <span>10</span>u <span>REG</span><span>0</span>,<span>9</span><span>0</span><span>3660</span> anon_inode</code>
*Hinweis: Die zweite Zeile ist die Prozessnummer von Nginx
<code><span># 统计nginx进程打开了多少个文件数可以用下边的命令</span>lsof <span>|grep nginx|wc –l</span></code>
Methode 1:
Die zweite Spalte des obigen Ergebnisses ist die Prozessnummer von Nginx
<code><span>cd</span> /prec/<span>6845</span></code>
Sie können die durch diesen Prozess generierten Dateien sehen und sich dann die Grenzwertdatei
<code>more limits</code>
ansehen
Die achte Zeile, Max open files ist 51200 (Standard ist 1024), das liegt daran, dass
ich im oberen Feld von nginx.conf eine Zeile hinzugefügt habe:
<code>worker_rlimit_nofile 51200;</code>
Methode 2:
Ausführung:
<code>ulimit <span>-a</span></code>
Ausführen:
<code>ulimit <span>-SHn</span><span>65535</span></code>
dann
Methode 3:
<code>[root<span>@localhost</span><span>6845</span>]# sysctl -a | grep <span>file</span>-<span>max</span> fs.<span>file</span>-<span>max</span> = <span>201604</span> [root<span>@localhost</span><span>6845</span>]#</code>
Ausführen:
<code>[root<span>@localhost</span><span>6845</span>]# sysctl -w fs.<span>file</span>-<span>max</span>=<span>65535</span> fs.<span>file</span>-<span>max</span> = <span>65535</span> [root<span>@localhost</span><span>6845</span>]# sysctl -a | grep <span>file</span>-<span>max</span> fs.<span>file</span>-<span>max</span> = <span>65535</span></code>
Wenn Sie möchten Um es dauerhaft zu machen, bearbeiten Sie die Datei
<code>vim /etc/sysctl<span>.conf</span></code>
, fügen Sie die folgende Zeile hinzu:
<code>fs.<span>file</span>-<span>max</span>=<span>65535</span></code>
und führen Sie dann den folgenden Befehl aus, damit er wirksam wird:
<code>sysctl <span>-p</span></code>
Das Obige stellt die Nginx-Reverse-Proxy-Optimierung (Dateideskriptor) vor, einschließlich Aspekten des Inhalts. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.