Artikelkatalog
Har du plötsligt upptäckt på jobbet att Nginx CPU-användning har skjutit i höjden? För att göra saken värre, konsumerar Nginx flera arbetsprocesser resurser som en galning varje gång jag tittar på processerna.
När du ser den här scenen blir ditt huvud varmt och du kan inte låta bli att ropa: "Herregud, kommer servern att explodera, det betyder inte att din server kommer att bli "färdig?" men Nginx Vi behöver dig för att göra en omfattande optimering!
Analys av orsakerna till överdriven Nginx-belastning

Först måste vi ta reda påVarför blir Nginx plötsligt "utmattad"?Det finns många orsaker till problemet, var inte rädd, låt oss ta reda på det tillsammans nedan.
1. Orimlig konfiguration
I Nginx-konfigurationsfilen är den viktigaste punkten worker_processes. Denna parameter bestämmer antalet processer som startas av Nginx.
- Om du konfigurerar för få arbetsprocesser kommer CPU-belastningen att skjuta i höjden om du konfigurerar för många, kommer det att finnas otillräckligt minne.
- Du måste hitta en balanspunkt, t.ex.Ställ in worker_processes till 1 till 2 gånger antalet CPU-kärnor.
- Om du har 4 kärnor så försök
worker_processes 4Eller ställ in den direkt tillauto.
2. Besöken ökar
Ibland ökar Nginx belastning plötsligt inte för att du gjorde ett misstag, utan för att antalet besök är för högt.Mycket samtidiga åtkomstförfrågningar kommer att göra att Nginx-arbetarprocessen blir överväldigad., varje process är överbelastad, och CPU och minne är också fulla. För närvarande kan du behöva förbättra serverresurserna, som att öka antalet CPU-kärnor eller öka minnet. Naturligtvis är detta också en påminnelse: glöm inte att överväga CDN-avlastning eller lastbalansering.
3. Stötte på skadliga attacker
Att vara "mycket populär" på Internet är inte alltid bra. Skadliga attacker kan riktas mot dig när som helst. Om du upptäcker att CPU-användningen är onormalt hög och källan till IP-begäran är misstänkt, är det mycket troligt att din webbplats lider av en DDoS-attack. Vid den här tiden,Du måste distribuera en brandvägg eller begränsa åtkomstfrekvensen omedelbart, till exempel att använda den aktuella begränsningsmodulen som följer med Nginx, eller ställa in en IP-svartlista.
Hur löser man problemet med hög minnesanvändning av Nginx-processen?
Så frågan är, varför tar Nginx-arbetarprocessen upp så många resurser? Vi måste börja med konfigurationen och optimera den steg för steg.
Konfigurationsmetod
Öppna Nginx-konfigurationsfilen: Vanligtvis finns huvudkonfigurationsfilen för Nginx på
/etc/nginx/nginx.conf.Uppstart
worker_processes: Hittas i konfigurationsfileneventsblock, inställningarworker_processesvärde. om inteeventsblock, måste du skapa en.nginx events { worker_connections 1024; use epoll; # 或者适用于操作系统的其他事件模型 }
1. Ange worker_connections korrekt
nginx worker_connections Parametern bestämmer det maximala antalet anslutningar som varje arbetsprocess kan hantera. Om den är för liten kommer den att påverka samtidighetsprestandan om den är för stor, kan den förbruka för många resurser.
Hur beräknar man lämpligt värde?
Förutsatt att du har en 4-kärnig CPU och 16 GB RAM, är en säker utgångspunkt worker_connections 4096.
Men om din webbplats har mycket trafik, överväg att öka detta värde till 8192 för att säkerställa att varje process kan hantera tillräckligt många förfrågningar.
events {
worker_connections 8192;
}
På så sätt kommer Nginx processorkraft att förbättras avsevärt.
2. Justera keepalive_timeout
En annan nyckelparameter för Nginx att hantera förfrågningar är keepalive_timeout.
Den här inställningen bestämmer hur länge klientens anslutning till servern kan bibehållas.
Om den är inställd för lång kommer den att uppta för många anslutningsresurser..
Du kan försöka keepalive_timeout Ställ in på 15 sekunder för att upprätthålla anslutningen och frigöra resurser.
keepalive_timeout 15;
3. Optimera filbeskrivningsgränser
Som standard,Linux Systemet har en gräns för antalet filbeskrivningar som kan öppnas av varje process.
Om Nginx behöver bearbeta ett stort antal filer (som statiska resurser) kan du se ett felmeddelande från Nginx som uppmanar "too many open files".
du kan passera worker_rlimit_nofile Öka filbeskrivningsgränsen, till exempel inställd på 65535.
worker_rlimit_nofile 65535;
4. Aktivera cachning och gzip
Cachning och komprimering är två nycklar för att optimera webbplatsens prestanda.
Genom att aktivera Nginxs cachningsfunktion kan statiska resurser (som bilder och JS-filer) cachas i minnet, vilket avsevärt minskar belastningen på servern.
Om du aktiverar gzip-komprimeringsfunktionen kan dessutom minska mängden data som överförs och förbättra webbplatsens hastighet.
gzip on;
gzip_types text/plain application/javascript;
5. Analysera Nginx resursanvändning
Slutligen, om du har slutfört alla ovanstående optimeringar men Nginx fortfarande tar upp mycket CPU, kan du behöva använda några verktyg för djupgående analys.
användning top eller htop Se en processs resursförbrukning i realtid,passera strace Spåra systemsamtal, eller använd nmon Skapa resultatrapporter. Endast genom att heltäckande analysera den faktiska driften av Nginx kan vi utföra mer exakt inställning.
总结
Få inte panik när Nginx CPU-användning ökar. Det kan bara bero på felaktig konfiguration eller överdriven trafik.
genom rimliga justeringar worker_processes 和 worker_connectionsGenom att aktivera cachning, optimera timeouts och filbeskrivningar kan du avsevärt minska belastningstrycket på Nginx.
Nginx är en kraftfull webbserver som, när den är korrekt optimerad, kan ge utmärkt prestanda för din webbplats.
Kom ihåg att alla frågor kan besvaras avSciencemetoder för att lösa det, är optimering av serverprestanda inget undantag.
Övervaka och justera i tid, är nyckeln till att hålla Nginx igång effektivt. Om du kan behärska dessa tekniker kommer din webbplats att vara säker även vid hög trafik eller skadliga attacker.
Jag hoppas att den här artikeln har inspirerat dig, skynda dig och optimera din Nginx!
Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delad "Vad ska jag göra om Nginx-serverns CPU-belastning och minnesanvändning är hög?" 》, till hjälp för dig.
Välkommen att dela länken till denna artikel:https://www.chenweiliang.com/cwl-32093.html
För att låsa upp fler dolda knep🔑, välkommen att gå med i vår Telegram-kanal!
Dela och gilla om du gillar det! Dina delningar och gilla-markeringar är vår fortsatta motivation!