Articulu Directory
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

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 4O 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
Aprite u schedariu di cunfigurazione Nginx: Di solitu, u schedariu di cunfigurazione principale di Nginx hè situatu à
/etc/nginx/nginx.conf.Istituisci
worker_processes: Trovatu in u schedariu di cunfigurazioneeventsblocchi, paràmetriworker_processesvalore. se noeventsbloccu, 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_processes 和 worker_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!
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) shared "Nginx server CPU load, processe memory use is high, chì deve fà?" 》, utile per voi.
Benvenuti à sparte u ligame di stu articulu:https://www.chenweiliang.com/cwl-32093.html
Per sbloccare più trucchi nascosti🔑, benvenuti à unisce à u nostru canale Telegram!
Condividi e mi piace se ti piace! I vostri sparte è Mi piace sò a nostra motivazione cuntinua!