Imenik člankov
Ste na delovnem mestu nenadoma odkrili, da je poraba procesorja Nginx skokovito narasla? Da bi bile stvari še hujše, Nginxovi več delovni procesi porabljajo vire kot nori vsakič, ko pogledam procese.
Ko vidiš ta prizor, ti postane vroče v glavi in ne moreš si pomagati, da bi zavpil: "O moj bog, ali bo strežnik eksplodiral?" Ne skrbite, to ne pomeni, da bo vaš strežnik "končan", ampak Nginx Potrebujemo vas za celovito optimizacijo!
Analiza vzrokov za prekomerno obremenitev Nginx

Najprej moramo ugotoviti,Zakaj Nginx nenadoma postane "izčrpan"?Razlogov za težavo je veliko, ne bojte se, ugotovimo jih skupaj spodaj.
1. Nerazumna konfiguracija
V konfiguracijski datoteki Nginx je najpomembnejša točka worker_processes. Ta parameter določa število procesov, ki jih je zagnal Nginx.
- Če konfigurirate premalo delovnih procesov, se bo obremenitev procesorja povečala; če jih konfigurirate preveč, ne bo dovolj pomnilnika.
- Najti moraš ravnovesje, npr.Worker_processes nastavite na 1 do 2-kratno število jeder CPU.
- Če imate 4 jedra, poskusite
worker_processes 4Ali pa ga nastavite neposredno naauto.
2. Obisk narašča
Včasih se obremenitev Nginxa nenadoma poveča, ne zato, ker ste naredili napako, ampak zato, ker je število obiskov previsoko.Zelo sočasne zahteve za dostop bodo povzročile preobremenitev delovnega procesa Nginx., je vsak proces preobremenjen, CPE in pomnilnik pa sta tudi polna. Trenutno boste morda morali izboljšati vire strežnika, na primer povečati število jeder CPU ali povečati pomnilnik. Seveda je to tudi opomnik: ne pozabite razmisliti o razbremenitvi CDN ali uravnoteženju obremenitve.
3. Naletel na zlonamerne napade
Biti "zelo priljubljen" na internetu ni vedno dobra stvar. Zlonamerni napadi se lahko kadar koli usmerijo na vas. Če ugotovite, da je obremenitev procesorja nenormalno visoka in je vir IP zahteve sumljiv, je zelo verjetno, da je vaše spletno mesto izpostavljeno napadu DDoS. v tem času,Takoj morate namestiti požarni zid ali omejiti frekvenco dostopa, kot je uporaba trenutnega omejevalnega modula, ki je priložen Nginxu, ali nastavitev črnega seznama IP.
Kako rešiti problem velike porabe pomnilnika procesa Nginx?
Vprašanje je torej, zakaj delovni proces Nginx zavzame toliko virov? Začeti moramo s konfiguracijo in jo korak za korakom optimizirati.
Metoda konfiguracije
Odprite konfiguracijsko datoteko Nginx: Običajno se glavna konfiguracijska datoteka Nginx nahaja na
/etc/nginx/nginx.conf.Nastaviti
worker_processes: Najdeno v konfiguracijski datotekieventsbloki, nastavitveworker_processesvrednost. če neeventsblok, ga morate ustvariti.nginx events { worker_connections 1024; use epoll; # 或者适用于操作系统的其他事件模型 }
1. Pravilno nastavite worker_connections
nginx worker_connections Parameter določa največje število povezav, ki jih lahko obravnava vsak delovni proces. Če je premajhen, bo vplival na zmogljivost sočasnosti; če je prevelik, bo morda porabil preveč virov.
Kako izračunati ustrezno vrednost?
Ob predpostavki, da imate 4-jedrni CPE in 16 GB RAM-a, je varno izhodišče worker_connections 4096.
Če pa ima vaše spletno mesto veliko prometa, razmislite o povečanju te vrednosti na 8192, da zagotovite, da lahko vsak proces obravnava dovolj zahtev.
events {
worker_connections 8192;
}
Na ta način bo procesorska moč Nginxa močno izboljšana.
2. Prilagodite keepalive_timeout
Drugi ključni parameter za Nginx za obravnavanje zahtev je keepalive_timeout.
Ta nastavitev določa, kako dolgo se lahko vzdržuje odjemalčeva povezava s strežnikom.
Če je nastavljeno predolgo, bo zavzelo preveč virov povezave..
Lahko poskusite keepalive_timeout Nastavite na 15 sekund za vzdrževanje povezave in sprostitev virov.
keepalive_timeout 15;
3. Optimizirajte omejitve deskriptorjev datotek
PrivzetoLinux Sistem ima omejitev števila deskriptorjev datotek, ki jih lahko odpre vsak proces.
Če mora Nginx obdelati veliko število datotek (kot so statični viri), boste morda videli napako Nginxa s pozivom "too many open files".
Lahko greš worker_rlimit_nofile Povečajte omejitev deskriptorja datoteke, na primer nastavljen na 65535.
worker_rlimit_nofile 65535;
4. Omogoči predpomnjenje in gzip
Predpomnjenje in stiskanje sta dva ključa za optimizacijo delovanja spletnega mesta.
Če omogočite Nginxovo funkcijo predpomnjenja, lahko statične vire (kot so slike in datoteke JS) predpomnite v pomnilnik, s čimer se močno zmanjša obremenitev strežnika.
Poleg tega lahko vklop funkcije stiskanja gzip zmanjša količino prenesenih podatkov in izboljša hitrost spletnega mesta.
gzip on;
gzip_types text/plain application/javascript;
5. Analizirajte uporabo virov Nginx
Nazadnje, če ste izvedli vse zgornje optimizacije, vendar Nginx še vedno zavzema veliko procesorja, boste morda morali uporabiti nekaj orodij za poglobljeno analizo.
uporaba top 或 htop Oglejte si porabo virov procesa v realnem času, avtor strace Sledite sistemskim klicem ali uporabite nmon Ustvarite poročila o uspešnosti. Šele s celovito analizo dejanskega delovanja Nginxa lahko izvedemo natančnejšo nastavitev.
总结
Brez panike, ko poraba procesorja Nginx skokovito naraste. Lahko je samo posledica neustrezne konfiguracije ali prevelikega prometa.
z razumnimi prilagoditvami worker_processes In worker_connectionsČe omogočite predpomnjenje, optimizirate časovne omejitve in deskriptorje datotek, lahko občutno zmanjšate pritisk na Nginx.
Nginx je zmogljiv spletni strežnik, ki lahko ob pravilni optimizaciji zagotovi odlično delovanje vašega spletnega mesta.
Ne pozabite, da lahko na vsa vprašanja odgovoriZnanostmetode za njegovo rešitev, optimizacija delovanja strežnika ni izjema.
Spremljajte in pravočasno prilagajajte, je ključnega pomena za učinkovito delovanje Nginxa. Če obvladate te tehnike, bo vaše spletno mesto varno tudi ob velikem prometu ali zlonamernih napadih.
Upam, da vas je ta članek navdihnil, pohitite in optimizirajte svoj Nginx!
Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) v skupni rabi "Obremenitev procesorja strežnika Nginx, poraba pomnilnika procesa je visoka, kaj naj storim?" 》, v pomoč vam.
Dobrodošli, da delite povezavo tega članka:https://www.chenweiliang.com/cwl-32093.html
Če želite odkleniti več skritih trikov🔑, se pridružite našemu Telegram kanalu!
Delite in všečkajte, če vam je všeč! Vaše delitve in všečki so naša nadaljnja motivacija!