Artikelgids
Het jy skielik by die werk ontdek dat Nginx se SVE-gebruik die hoogte ingeskiet het? Om sake te vererger, verbruik Nginx se veelvuldige werkerprosesse hulpbronne soos malle elke keer as ek na die prosesse kyk.
As jy hierdie toneel sien, word jou kop warm en jy kan nie help om te skree: "O my God, gaan die bediener ontplof. Moenie bekommerd wees nie, dit beteken nie dat jou bediener "klaar" gaan wees nie, maar Nginx Ons het jou nodig om 'n omvattende optimalisering te doen!
Ontleding van die oorsake van oormatige Nginx-lading

Eerstens moet ons uitvind,Hoekom raak Nginx skielik "uitgeput"?Daar is baie redes vir die probleem, moenie bang wees nie, kom ons vind saam hieronder uit.
1. Onredelike opstelling
In die Nginx-konfigurasielêer is die belangrikste punt worker_processes. Hierdie parameter bepaal die aantal prosesse wat deur Nginx begin is.
- As jy te min werkerprosesse instel, sal die SVE-lading styg as jy te veel konfigureer, sal daar onvoldoende geheue wees.
- Jy moet 'n balanspunt vind, bv.Stel worker_processes na 1 tot 2 keer die aantal SVE-kerne.
- As jy 4 kerne het, probeer dan
worker_processes 4Of stel dit direk opauto.
2. Besoeke styg
Soms styg Nginx se vrag skielik nie omdat jy 'n fout gemaak het nie, maar omdat die aantal besoeke te hoog is.Hoogs gelyktydige toegangsversoeke sal veroorsaak dat die Nginx-werkerproses oorweldig word., is elke proses oorlaai, en die SVE en geheue is ook vol. Op hierdie tydstip sal jy dalk bedienerhulpbronne moet verbeter, soos die verhoging van die aantal SVE-kerns of die verhoging van geheue. Dit is natuurlik ook 'n herinnering: moenie vergeet om CDN-aflaai of vragbalansering te oorweeg nie.
3. Het kwaadwillige aanvalle teëgekom
Om "baie gewild" op die internet te wees, is nie altyd 'n goeie ding nie. Kwaadwillige aanvalle kan jou enige tyd teiken. As jy vind dat die SVE-gebruik abnormaal hoog is en die bron van die versoek-IP verdag is, is dit baie waarskynlik dat jou webwerf aan 'n DDoS-aanval ly. Op hierdie tydstip,Jy moet onmiddellik 'n firewall ontplooi of toegangsfrekwensie beperk, soos die gebruik van die huidige beperkende module wat by Nginx kom, of die opstel van 'n IP-swartlys.
Hoe om die probleem van hoë geheuegebruik van Nginx-proses op te los?
Die vraag is dus, hoekom neem die Nginx-werkerproses soveel hulpbronne in beslag? Ons moet begin met die konfigurasie en dit stap vir stap optimaliseer.
Konfigurasie metode
Maak die Nginx-konfigurasielêer oop: Gewoonlik is die hoofkonfigurasielêer van Nginx geleë by
/etc/nginx/nginx.conf.Stel op
worker_processes: Gevind in konfigurasielêereventsblokke, instellingsworker_processeswaarde. indien nieeventsblok, moet jy een skep.nginx events { worker_connections 1024; use epoll; # 或者适用于操作系统的其他事件模型 }
1. Stel worker_connections behoorlik in
nginx worker_connections Die parameter bepaal die maksimum aantal verbindings wat elke werkerproses kan hanteer. As dit te klein is, sal dit gelyktydige prestasie beïnvloed as dit te groot is, kan dit te veel hulpbronne verbruik.
Hoe om die toepaslike waarde te bereken?
As u aanvaar dat u 'n 4-kern-SVE en 16 GB RAM het, is 'n veilige beginpunt worker_connections 4096.
Maar as jou webwerf baie verkeer het, oorweeg dit om hierdie waarde na 8192 te verhoog om te verseker dat elke proses genoeg versoeke kan hanteer.
events {
worker_connections 8192;
}
Op hierdie manier sal Nginx se verwerkingskrag aansienlik verbeter word.
2. Pas keepalive_timeout aan
Nog 'n sleutelparameter vir Nginx om versoeke te hanteer, is keepalive_timeout.
Hierdie instelling bepaal hoe lank die kliënt se verbinding met die bediener behou kan word.
As dit te lank gestel word, sal dit te veel verbindingsbronne beset..
Jy kan probeer keepalive_timeout Stel op 15 sekondes om die verbinding te behou en hulpbronne vry te stel.
keepalive_timeout 15;
3. Optimaliseer lêerbeskrywinglimiete
By verstek,Linux Die stelsel het 'n beperking op die aantal lêerbeskrywers wat deur elke proses oopgemaak kan word.
As Nginx 'n groot aantal lêers (soos statiese hulpbronne) moet verwerk, sal jy dalk 'n fout van Nginx sien, wat vra "too many open files".
jy kan slaag worker_rlimit_nofile Verhoog lêerbeskrywinglimiet, byvoorbeeld gestel op 65535.
worker_rlimit_nofile 65535;
4. Aktiveer caching en gzip
Kas en kompressie is twee sleutels vir die optimalisering van webwerfprestasie.
Deur Nginx se kasfunksie te aktiveer, kan statiese hulpbronne (soos beelde en JS-lêers) in die geheue geberg word, waardeur die las op die bediener aansienlik verminder.
Daarbenewens kan die aanskakel van die gzip-kompressiefunksie die hoeveelheid data wat oorgedra word verminder en webwerfspoed verbeter.
gzip on;
gzip_types text/plain application/javascript;
5. Ontleed Nginx-hulpbrongebruik
Ten slotte, as jy al die bogenoemde optimaliserings voltooi het, maar Nginx neem steeds baie SVE op, moet jy dalk 'n paar gereedskap gebruik vir in-diepte analise.
使用 top 或 htop Bekyk die intydse hulpbronverbruik van 'n proses, slaag strace Spoor stelseloproepe na, of gebruik nmon Genereer prestasieverslae. Slegs deur die werklike werking van Nginx volledig te ontleed, kan ons meer presiese afstemming uitvoer.
opsomming
Moenie paniekerig raak wanneer Nginx se SVE-gebruik styg nie. Dit kan net veroorsaak word deur onbehoorlike opstelling of oormatige verkeer.
deur redelike aanpassings worker_processes 和 worker_connectionsDeur caching aan te skakel, time-outs en lêerbeskrywings te optimaliseer, kan u die lasdruk op Nginx aansienlik verminder.
Nginx is 'n kragtige webbediener wat, wanneer dit behoorlik geoptimaliseer is, uitstekende werkverrigting vir u webwerf kan lewer.
Onthou, enige vrae kan beantwoord word deurWetenskapmetodes om dit op te los, is die optimalisering van bedienerprestasie geen uitsondering nie.
Monitor en pas betyds aan, is die sleutel om Nginx doeltreffend aan die gang te hou. As jy hierdie tegnieke kan bemeester, sal jou webwerf veilig wees selfs in die lig van hoë verkeer of kwaadwillige aanvalle.
Ek hoop hierdie artikel het jou geïnspireer, maak gou en optimaliseer jou Nginx!
Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeel "Wat moet ek doen as die Nginx-bediener SVE-lading en prosesgeheuegebruik hoog is?" 》, nuttig vir jou.
Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-32093.html
Om meer versteekte truuks🔑 te ontsluit, welkom om by ons Telegram-kanaal aan te sluit!
Share en like as jy daarvan hou! Jou shares en likes is ons voortdurende motivering!