1 Die Standardgröße der Linux-Kerndatei beträgt 0
Was ist eine Kerndatei? Wenn ein Programm abstürzt, wird das Speicherabbild des Prozesses in die Kerndatei im aktuellen Arbeitsverzeichnis des Prozesses kopiert. Die Kerndatei ist lediglich ein Speicherabbild (plus Debugging-Informationen), das hauptsächlich zum Debuggen verwendet wird. Die Kerndatei ist eine Binärdatei und es müssen entsprechende Tools verwendet werden, um das Speicherabbild zu analysieren, wenn das Programm abstürzt.
Die Standardgröße der Kerndatei des Systems beträgt 0, daher wird sie nicht erstellt. Mit dem Befehl ulimit können Sie die Größe der Kerndatei anzeigen und ändern.
$ulimit -c
0
$ ulimit -c 1000
$ulimit-c
1000
-c gibt an, die Kerndateigröße zu ändern, 1000 gibt die Kerndateigröße an. Sie können auch keine Begrenzung für die Größe der Kerndatei festlegen, z. B.:
# ulimit -c unbegrenzt
#ulimit -c
Unbegrenzt
Wenn Sie möchten, dass die Änderungen dauerhaft wirksam werden, müssen Sie die Konfigurationsdatei ändern
In Vim /etc/profile:
ulimit -S -c 0 > /dev/null 2>&1
Ändern zu
ulimit -S -c 1000 > /dev/null 2>&1
Referenz: http://hi.baidu.com/jrckkyy/blog/item/2562320a5bdbc534b1351d95.html
2 Der Standardwert für geöffnete Linux-Dateien und maximale Benutzerprozesse ist 1024
#ulimit -n
1024
#ulimit –u
1024
Problembeschreibung: Beschreibung Der Server ermöglicht nur das gleichzeitige Öffnen von 1024 Dateien und verarbeitet 1024 Benutzerprozesse.
Verwenden Sie ulimit -a, um alle Grenzwerte des aktuellen Systems anzuzeigen, und verwenden Sie ulimit -n, um die aktuelle maximale Anzahl geöffneter Dateien anzuzeigen.
Das neu installierte Linux verfügt standardmäßig nur über 1024. Bei Verwendung als Server mit hoher Auslastung kann es leicht zu Fehlern kommen: zu viele offene Dateien. Daher muss es größer gemacht werden.
Lösung:
Verwenden Sie ulimit –n 65535, um es sofort zu ändern. Nach dem Neustart ist es jedoch ungültig. (Beachten Sie, dass ulimit -SHn 65535 äquivalent zu ulimit -n 65535 ist, -S sich auf weich und -H auf hart bezieht)
Es gibt drei Änderungsmethoden:
1. Fügen Sie eine Zeile ulimit -SHn 65535
zu /etc/rc.local hinzu
2. Fügen Sie eine Zeile ulimit -SHn 65535
in /etc/profile hinzu
3. Fügen Sie am Ende von /etc/security/limits.conf Folgendes hinzu:
* Soft Nofile 65535
* harte Nofile 65535
*soft nproc 65535
*harter Nproc 65535
Welche Methode soll speziell verwendet werden? Die erste Methode hat in CentOS keine Auswirkung, die dritte Methode hat eine Auswirkung und die zweite Methode hat eine Auswirkung in Debian.
# ulimit -n
65535
# ulimit -u
65535
Hinweis: Der Befehl ulimit selbst verfügt über Soft- und Hard-Einstellungen. Fügen Sie -H für Hard und -S für Soft hinzu. Die Standardanzeige ist Soft Limit.
Der Soft-Limit bezieht sich auf den im aktuellen System gültigen Einstellwert. Der harte Grenzwert kann von normalen Benutzern gesenkt werden. Aber es kann nicht erhöht werden. Das Soft-Limit kann nicht höher eingestellt werden als das Hard-Limit. Nur der Root-Benutzer kann den harten Grenzwert erhöhen.
3 Es wurde festgestellt, dass sich eine große Anzahl von Verbindungen im Status TIME_WAIT befindet
Problembeschreibung: Es wurde eine große Anzahl von Verbindungen im Status „time_wait“ gefunden, teilweise sogar über 7000
netstat -n |. awk '/^tcp/ { state[$NF]} END {for(key in state) print key,"t",state[key]}'
Finden Sie weitere time_wait-Verbindungen
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
Es wurde festgestellt, dass MySQL und Memcache des DB-Servers nicht freigegeben wurden.
Lösung: Für Anwendungen, die viele TCP-Verbindungen nutzen, müssen auch die Parameter in /etc/sysctl.conf entsprechend optimiert werden:
vim /etc/sysctl.conf
Bearbeiten Sie die Datei und fügen Sie den folgenden Inhalt hinzu:
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
Führen Sie dann /sbin/sysctl -p aus, damit die Parameter wirksam werden.
Nach der Optimierung:
Es wurde festgestellt, dass eine große Anzahl von TIME_WAIT nicht mehr vorhanden war und die Auslastung des MySQL-Prozesses schnell abnahm.
Das Obige hat die Optimierung des Nginx-Serversystems eingeführt, einschließlich einiger Aspekte davon. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.