Zer egin behar dut Nginx zerbitzariak CPU karga handia badu eta prozesatzeko memoriaren erabilera badu?

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

Zer egin behar dut Nginx zerbitzariak CPU karga handia badu eta prozesatzeko memoriaren erabilera badu?

Lehenik eta behin, asmatu behar dugu,Zergatik bihurtzen da bat-batean Nginx "agortuta"?Arazoaren arrazoi asko daude, ez izan beldurrik, jakin dezagun elkarrekin behean.

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 4 Edo zuzenean ezarri auto.

2. Bisitak gorakada

Batzuetan, Nginxen karga bat-batean igotzen da ez akats bat egin duzulako, bisita kopurua handiegia delako baizik.Aldibereko sarbide-eskaerek Nginx langileen prozesua gainezka egingo dute., prozesu guztiak gainkargatuta daude, eta CPUa eta memoria ere beteta daude. Une honetan, baliteke zerbitzariaren baliabideak hobetu behar izatea, esate baterako, CPU nukleoen kopurua handitzea edo memoria handitzea. Jakina, hau abisua ere bada: ez ahaztu CDN deskargatzea edo karga orekatzea kontuan hartzea.

3. Eraso gaiztoak aurkitu ditu

Interneten "oso ezaguna" izatea ez da beti gauza ona. PUZaren erabilera anormalki altua dela eta IP eskaeraren iturria susmagarria dela ikusten baduzu, oso litekeena da zure webgunea DDoS eraso bat jasatea. Une honetan,Suebaki bat zabaldu edo sarbide-maiztasuna mugatu behar duzu berehala, esaterako, Nginx-ekin datorren egungo muga-modulua erabiltzea edo IP zerrenda beltza konfiguratzea.

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

  1. Ireki Nginx konfigurazio fitxategia: Normalean, Nginx-en konfigurazio fitxategi nagusia helbidean dago /etc/nginx/nginx.conf.

  2. Konfiguratu worker_processes: konfigurazio fitxategian aurkitu da events blokeak, ezarpenak worker_processes balioa. ez bada events blokeatu, 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.

Luzeegia ezartzen bada, konexio baliabide gehiegi okupatuko ditu..

Saia zaitezke keepalive_timeout Ezarri 15 segundo konexioa mantentzeko eta baliabideak askatzeko.

keepalive_timeout 15;

3. Optimizatu fitxategien deskribatzaileen mugak

Lehenespenez,Linux Sistemak muga bat dauka prozesu bakoitzak ireki ditzakeen fitxategi-deskribatzaileen kopuruan.

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 (adibidez, irudiak eta JS fitxategiak) memorian gorde daitezke., horrela zerbitzariaren karga asko murriztuz.

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_processesworker_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 galdera erantzun daitekeelaZientziakonpontzeko metodoak, zerbitzariaren errendimendua optimizatzea ez da salbuespena.

Kontrolatu eta egokitzea garaiz, Nginx eraginkortasunez funtzionatzen jarraitzeko gakoa da. Teknika hauek menperatzen badituzu, zure webgunea seguru egongo da trafiko handiko edo eraso maltzurren aurrean ere.

Artikulu honek inspiratu zaituela espero dut, azkar ibili eta optimizatu zure Nginx!

发表 评论

Zure helbide elektronikoa ez da argitaratuko. 必填 项 已 用 * 标注

Igo korrituko