Artikulu direktorioa
Bat-batean aurkitu al duzu lanean Nginxen CPUaren erabilerak gora egin duela? Hori gutxi balitz, Nginx-en hainbat langile-prozesuek baliabideak ero bezala kontsumitzen ari dira prozesuak aztertzen ditudan bakoitzean.
Eszena hau ikusita, burua berotzen zaizu, eta ezin duzu oihukatzeari utzi: "Oi, ene Jainkoa, zerbitzaria lehertuko al da, ez kezkatu, horrek ez du esan nahi zure zerbitzaria "amaitu" denik?" baina Nginx Optimizazio integral bat egin behar duzu!
Nginx gehiegizko kargaren arrazoien analisia

Lehenik eta behin, Nginx-ek bat-batean "potentzia falta" izatearen arrazoiak jakin behar dugu . Arazo honen arrazoi asko daude, beraz, ez kezkatu, azter ditzagun elkarrekin.
1. Arrazoigabeko konfigurazioa
Nginx konfigurazio fitxategian, puntu garrantzitsuena da worker_processes. Parametro honek Nginx-ek abiarazitako prozesu kopurua zehazten du.
- Langile-prozesu gutxiegi konfiguratzen badituzu, PUZaren karga igo egingo da gehiegi konfiguratzen badituzu, memoria nahikoa ez da izango.
- Oreka puntu bat aurkitu behar duzu, adibidez,Ezarri worker_processes CPU nukleoen kopuruaren 1etik 2ra.
- 4 nukleo badituzu, saiatu
worker_processes 4Edo zuzenean ezarriauto.
2. Bisitak gorakada
Batzuetan, Nginx kargaren bat-bateko igoera ez da eragiketa-erroreengatik gertatzen, baizik eta eskaera-bolumen gehiegizkoagatik. Aldiberekotasun handiak Nginx-en lan-prozesuak gainkargatu ditzake , prozesu bakoitza bere ahalmenaren gainetik funtzionatzera behartuz, CPUa eta memoria kontsumituz. Kasu honetan, zerbitzariaren baliabideak eguneratu beharko dituzu, hala nola CPU nukleo kopurua handituz edo memoria gehiago gehituz. Noski, honek gogorarazteko ere balio du: ez ahaztu CDN trafikoaren banaketa edo karga-orekatzea kontuan hartzea.
3. Eraso gaiztoak aurkitu ditu
Linean izugarri ezaguna izatea ez da ona; eraso gaiztoek edozein unetan jomugan jar zaitzakete. CPUaren erabilera anormalki altua eta IP eskaera susmagarriak nabaritzen badituzu, oso litekeena da zure webgunea DDoS eraso baten pean egotea. Kasu honetan, berehala suebaki bat zabaldu edo sarbide-maiztasuna mugatu behar duzu , hala nola Nginx-en barneko abiadura mugatzeko modulua erabiliz edo IP zerrenda beltza konfiguratuz.
Nola konpondu Nginx prozesuaren memoria handiko erabileraren arazoa?
Beraz, galdera da, zergatik hartzen ditu Nginx langileen prozesuak hainbeste baliabide? Konfiguraziotik hasi eta urratsez urrats optimizatu behar dugu.
Konfigurazio metodoa
Ireki Nginx konfigurazio fitxategia: Normalean, Nginx-en konfigurazio fitxategi nagusia helbidean dago
/etc/nginx/nginx.conf.Konfiguratu
worker_processes: konfigurazio fitxategian aurkitu daeventsblokeak, ezarpenakworker_processesbalioa. ez badaeventsblokeatu, bat sortu behar duzu.nginx events { worker_connections 1024; use epoll; # 或者适用于操作系统的其他事件模型 }
1. Behar bezala ezarri worker_connections
nginx worker_connections Parametroak langile prozesu bakoitzak kudeatu dezakeen gehienezko konexio-kopurua zehazten du. Txikia bada, aldibereko errendimenduan eragina izango du handiegia bada, baliteke baliabide gehiegi kontsumitzea.
Nola kalkulatu balio egokia?
4 nukleoko CPU bat eta 16 GB RAM bat dituzula suposatuz, abiapuntu segurua da worker_connections 4096.
Baina zure webguneak trafiko asko badu, kontuan hartu balio hau 8192ra igotzea prozesu bakoitzak behar adina eskaera kudeatu ditzakeela ziurtatzeko.
events {
worker_connections 8192;
}
Modu honetan, Nginx-en prozesatzeko ahalmena asko hobetuko da.
2. Doitu keepalive_timeout
Nginx-ek eskaerak kudeatzeko beste funtsezko parametro bat da keepalive_timeout.
Ezarpen honek bezeroak zerbitzariarekin duen konexioa zenbat denboran mantendu daitekeen zehazten du.
Luzera luzeegia ezartzeak konexio-baliabideen gehiegizko kontsumoa ekar dezake.
Saia zaitezke keepalive_timeout Ezarri 15 segundo konexioa mantentzeko eta baliabideak askatzeko.
keepalive_timeout 15;
3. Optimizatu fitxategien deskribatzaileen mugak
Berez, Linux sistemek prozesu bakoitzak ireki dezakeen fitxategi-deskriptore kopurua mugatzen dute.
Nginx-ek fitxategi kopuru handi bat prozesatu behar badu (esaterako, baliabide estatikoak), baliteke Nginx-en errore bat agertzea, " galdetuta "too many open files".
pasa dezakezu worker_rlimit_nofile Handitu fitxategi deskribatzaileen muga, adibidez, ezarri 65535.
worker_rlimit_nofile 65535;
4. Gaitu cachea eta gzip
Cachea eta konpresioa webgunearen errendimendua optimizatzeko bi gako dira.
Nginx-en cache funtzioa gaituta, baliabide estatikoak (irudiak eta JS fitxategiak, adibidez) memorian cachean gorde daitezke , eta horrela zerbitzariaren karga asko murriztu.
Horrez gain, gzip konpresio funtzioa aktibatzea transmititzen den datu kopurua murriztu eta webgunearen abiadura hobetu daiteke.
gzip on;
gzip_types text/plain application/javascript;
5. Aztertu Nginx baliabideen erabilera
Azkenik, goiko optimizazio guztiak osatu badituzu baina Nginx-ek CPU asko hartzen badu, baliteke tresna batzuk erabili behar izatea azterketa sakona egiteko.
使用 top edo htop Ikusi prozesu baten baliabideen kontsumoa denbora errealean,pasatu strace Jarraitu sistema-deiak, edo erabili nmon Sortu errendimendu-txostenak. Nginx-en benetako funtzionamendua sakonki aztertuz soilik sintonizazio zehatzagoa egin dezakegu.
Laburpena
Ez zaitez izutu Nginx-en CPUaren erabilerak gora egiten duenean. Baliteke konfigurazio desegokia edo gehiegizko trafikoa izatea.
arrazoizko doikuntzaren bidez worker_processes 和 worker_connectionsCachea gaituz, denbora-muga eta fitxategi deskribatzaileak optimizatuz, Nginx-en karga-presioa nabarmen murrizten duzu.
Nginx web zerbitzari indartsua da, behar bezala optimizatuta, zure webgunerako errendimendu bikaina eskain dezakeena.
Gogoratu, edozein arazo zientifikoki konpondu daitekeela, eta zerbitzariaren errendimendua optimizatzea ez dela salbuespena.
Nginx-en eraginkortasun handia mantentzeko funtsezkoak dira monitorizazio eta doikuntza puntualak . Teknika hauek menperatzen badituzu, zure webgunea seguru mantenduko da trafiko handiko edo eraso gaiztoen pean ere.
Artikulu honek inspiratu zaituela espero dut, azkar ibili eta optimizatu zure Nginx!
Zorionez, Chen Weiliang-en blogean ( https://www.chenweiliang.com/ ) partekatutako "Nola egin aurre CPU karga handiarekin eta prozesu memoriaren erabilera handiarekin Nginx zerbitzarian?" artikulua lagungarria izango zaizu.
Anima zaitez artikulu honen esteka partekatzera: https://www.chenweiliang.com/cwl-32093.html
