Chì duverebbe fà se u servitore Nginx hà una alta carica di CPU è prucessa l'usu di memoria?

Avete scupertu di colpu à u travagliu chì l'usu di CPU di Nginx hè cresciutu? Per aggravà e cose, i prucessi multipli di u travagliu di Nginx cunsumanu risorse cum'è pazzi ogni volta chì guardu à i prucessi.

Videndu sta scena, u vostru capu s'incantu è ùn pudete micca chjappà: "O mio Diu, u servitore hà da splode micca, questu ùn significa micca chì u vostru servitore serà "finitu", ma Nginx Avemu bisognu di voi per fà una ottimisazione cumpleta!

Analisi di e cause di a carica eccessiva di Nginx

Chì duverebbe fà se u servitore Nginx hà una alta carica di CPU è prucessa l'usu di memoria?

Prima, avemu da capisce,Perchè Nginx subitu diventa "esautu"?Ci hè parechje ragioni per u prublema, ùn àbbia paura, andemu à scopre inseme quì sottu.

1. Cunfigurazione irragionevule

In u schedariu di cunfigurazione Nginx, u puntu più impurtante hè worker_processes. Stu paràmetru determina u numeru di prucessi iniziati da Nginx.

  • Se cunfigurà troppu pochi prucessi di u travagliu, a carica di CPU aumentarà se cunfigurate troppu, ùn ci sarà micca abbastanza memoria.
  • Avete da truvà un puntu di equilibriu, per esempiu,Pone worker_processes à 1 à 2 volte u numeru di core CPU.
  • Sì avete 4 core allora pruvate worker_processes 4 O mette direttamente à auto.

2. Visite in crescita

Calchì volta, a carica di Nginx sbuchjata di colpu micca perchè avete fattu un sbagliu, ma perchè u numeru di visite hè troppu altu.E dumande d'accessu assai cuncurrenti pruvucanu u prucessu di u travagliu di Nginx per esse sopraffattu., ogni prucessu hè sovraccaricatu, è u CPU è a memoria sò ancu pieni. À questu tempu, pudete avè bisognu di migliurà i risorse di u servitore, cum'è l'aumentu di u numeru di core di CPU o l'aumentu di a memoria. Di sicuru, questu hè ancu un ricordu: ùn vi scurdate di cunsiderà CDN offloading o load balancing.

3. Scontru attacchi maliziusi

Esse "assai populari" in Internet ùn hè micca sempre una bona cosa. Se truvate chì l'usu di CPU hè anormalmente altu è a fonte di l'IP dumandata hè suspettuosa, hè assai prubabile chì u vostru situ web soffre di un attaccu DDoS. A stu tempu,Avete bisognu di implementà un firewall o limità a frequenza di accessu immediatamente, cum'è aduprà u modulu di limitazione attuale chì vene cun Nginx, o stabilisce una lista negra IP.

Cumu risolve u prublema di l'utilizazione di memoria alta di u prucessu Nginx?

Allora a quistione hè, perchè u prucessu di u travagliu di Nginx occupa tanti risorse? Avemu da principià cù a cunfigurazione è ottimisimu passu à passu.

Metudu di cunfigurazione

  1. Aprite u schedariu di cunfigurazione Nginx: Di solitu, u schedariu di cunfigurazione principale di Nginx hè situatu à /etc/nginx/nginx.conf.

  2. Istituisci worker_processes: Trovatu in u schedariu di cunfigurazione events blocchi, paràmetri worker_processes valore. se no events bloccu, avete bisognu di creà unu.

    nginx
    events {
    worker_connections 1024;
    use epoll;  # 或者适用于操作系统的其他事件模型
    }

1. Stabilite bè worker_connections

nginx worker_connections U paràmetru determina u numeru massimu di cunnessione chì ogni prucessu di travagliu pò trattà. S'ellu hè troppu chjucu, affettarà u rendiment di cuncurrenza s'ellu hè troppu grande, pò cunsumà troppu risorse.

Cumu calculà u valore adattatu?

Assumindu chì avete un CPU 4-core è 16GB di RAM, un puntu di partenza sicuru hè worker_connections 4096.

Ma se u vostru situ web hà assai trafficu, cunzidira à aumentà stu valore à 8192 per assicurà chì ogni prucessu pò trattà abbastanza richieste.

events {
    worker_connections 8192;
}

In questu modu, u putere di trasfurmazioni di Nginx serà assai migliuratu.

2. Aghjustate keepalive_timeout

Un altru paràmetru chjave per Nginx per trattà e dumande hè keepalive_timeout.

Questa paràmetra determina quantu tempu a cunnessione di u cliente à u servitore pò esse mantenuta.

Se stabilitu troppu longu, occuperà troppu risorse di cunnessione..

Pudete pruvà keepalive_timeout Set à 15 seconde per mantene a cunnessione è liberate risorse.

keepalive_timeout 15;

3. Ottimisate i limiti di descrittore di file

Per difettu,Linux U sistema hà un limitu in u numeru di descriptori di schedari chì ponu esse apertu da ogni prucessu.

Se Nginx hà bisognu di processà un gran numaru di fugliali (cum'è risorse statiche), pudete vede un errore da Nginx, inviendu "too many open files".

pudete passà worker_rlimit_nofile Aumentà u limitu di descrittore di u schedariu, per esempiu stabilitu à 65535.

worker_rlimit_nofile 65535;

4. Abilita a cache è gzip

Caching è compressione sò duie chjave per l'ottimisazione di u rendimentu di u situ web.

Per attivendu a funzione di cache di Nginx, risorse statiche (cum'è l'imaghjini è i fugliali JS) ponu esse cache in memoria., riducendu cusì assai a carica nantu à u servitore.

Inoltre, accende a funzione di compressione gzip pò riduce a quantità di dati trasmessi è migliurà a velocità di u situ web.

gzip on;
gzip_types text/plain application/javascript;

5. Analizà l'usu di risorse Nginx

Infine, se avete finitu tutte l'ottimisazioni sopra, ma Nginx piglia sempre assai CPU, pudete avè bisognu di utilizà qualchi strumenti per l'analisi in profonda.

使用 top O htop Vede u cunsumu di risorse in tempu reale di un prucessu, da strace Trace chiama sistema, o usu nmon Generate rapporti di rendiment. Solu analizendu in modu cumpletu l'operazione attuale di Nginx pudemu fà una sintonizazione più precisa.

总结

Ùn fate micca panicu quandu l'usu di CPU di Nginx aumenta. Pò esse solu causatu da cunfigurazione impropria o trafficu eccessivu.

attraversu l'aghjustamenti ragiunate worker_processesworker_connectionsPermettendu a cache, ottimizendu i timeouts è i descrittori di i fugliali, pudete riduce significativamente a pressione di carica nantu à Nginx.

Nginx hè un servitore web putente chì, quandu hè ottimizatu bè, pò furnisce un rendimentu eccellente per u vostru situ web.

Ricurdativi, ogni quistione pò esse rispostu daScienzai metudi di risolve, l'optimizazione di u servitore ùn hè micca eccezzioni.

Monitorà è aghjustate in una manera puntuale, hè a chjave per mantene Nginx funziona in modu efficiente. Se pudete ammaistrà queste tecniche, u vostru situ web serà sicuru ancu in fronte di trafficu altu o attacchi maliziusi.

Spergu chì questu articulu vi hà inspiratu, affrettate è ottimisate u vostru Nginx!

发表 评论

U vostru indirizzu email ùn serà micca publicatu. I campi richiesti sò aduprati * Etichetta

Libru di Top