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

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

  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.

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!

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Igo korrituko