Kisa mwen ta dwe fè si sèvè Nginx a gen gwo chaj CPU ak itilizasyon memwa pwosesis?

Èske w toudenkou dekouvri nan travay ke itilizasyon CPU Nginx a te monte? Pou vin pi mal, pwosesis miltip travayè Nginx yo ap konsome resous tankou moun fou chak fwa mwen gade pwosesis yo.

Lè w wè sèn sa a, tèt ou vin cho epi ou pa ka evite rele: "Oh mon Dieu, sèvè a pral eksploze, sa pa vle di ke sèvè ou a pral "fini", men Nginx Nou bezwen ou fè yon optimize konplè!

Analiz de kòz twòp chaj Nginx

Kisa mwen ta dwe fè si sèvè Nginx a gen gwo chaj CPU ak itilizasyon memwa pwosesis?

Premyèman, nou dwe kalkile,Poukisa Nginx toudenkou vin "fatige"?Gen anpil rezon pou pwoblèm nan, ou pa bezwen pè, ann chèche konnen ansanm anba a.

1. Konfigirasyon ki pa rezonab

Nan dosye konfigirasyon Nginx, pwen ki pi enpòtan an se worker_processes. Paramèt sa a detèmine kantite pwosesis Nginx te kòmanse.

  • Si ou konfigirasyon twòp pwosesis travayè, chaj CPU a pral monte si ou konfigirasyon twòp, pral gen ase memwa.
  • Ou dwe jwenn yon pwen balans, pou egzanp,Mete worker_processes a 1 a 2 fwa kantite nwayo CPU.
  • Si ou gen 4 nwayo, eseye worker_processes 4 Oswa mete li dirèkteman nan auto.

2. Vizit yo monte

Pafwa, chaj Nginx a toudenkou pike pa paske ou te fè yon erè, men paske kantite vizit yo twò wo.Demann aksè ki trè konkouran pral lakòz pwosesis travayè Nginx la akable., chak pwosesis twò chaje, ak CPU a ak memwa yo tou plen. Nan moman sa a, ou ka bezwen amelyore resous sèvè, tankou ogmante kantite nwayo CPU oswa ogmante memwa. Natirèlman, sa a se tou yon rapèl: pa bliye konsidere dechaje CDN oswa balanse chaj.

3. Te rankontre atak move

Lè ou "trè popilè" sou entènèt la se pa toujou yon bon bagay. Atak move ka vize w nenpòt ki lè. Si ou jwenn ke itilizasyon CPU a anòmalman wo epi sous IP mande a sispèk, li trè posib ke sit entènèt ou a ap soufri nan yon atak DDoS. Nan moman sa a,Ou bezwen deplwaye yon firewall oswa limite frekans aksè imedyatman, tankou lè l sèvi avèk modil limit aktyèl la ki vini ak Nginx, oswa mete kanpe yon lis nwa IP.

Ki jan yo rezoud pwoblèm nan nan itilizasyon memwa segondè nan pwosesis Nginx?

Se konsa, kesyon an se, poukisa pwosesis travayè Nginx pran anpil resous? Nou dwe kòmanse ak konfigirasyon an epi optimize li etap pa etap.

Metòd konfigirasyon

  1. Louvri dosye konfigirasyon Nginx: Anjeneral, dosye konfigirasyon prensipal la nan Nginx sitiye nan /etc/nginx/nginx.conf.

  2. Mete kanpe worker_processes: Jwenn nan fichye konfigirasyon events blòk, anviwònman worker_processes valè. si se pa sa events blòk, ou bezwen kreye youn.

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

1. Byen mete worker_connections

nginx worker_connections Paramèt la detèmine kantite maksimòm koneksyon ke chak pwosesis travayè ka okipe. Si li twò piti, li pral afekte pèfòmans konkourans si li twò gwo, li ka konsome twòp resous.

Ki jan yo kalkile valè ki apwopriye a?

Si ou gen yon CPU 4-nwayo ak 16GB RAM, yon pwen depa ki an sekirite se worker_connections 4096.

Men, si sit entènèt ou a gen anpil trafik, konsidere ogmante valè sa a a 8192 pou asire ke chak pwosesis ka okipe ase demann.

events {
    worker_connections 8192;
}

Nan fason sa a, pouvwa pwosesis Nginx a pral amelyore anpil.

2. Ajiste keepalive_timeout

Yon lòt paramèt kle pou Nginx okipe demann se keepalive_timeout.

Anviwònman sa a detèmine konbyen tan koneksyon kliyan an ak sèvè a ka kenbe.

Si mete twò lontan, li pral okipe twòp resous koneksyon..

Ou ka eseye keepalive_timeout Mete sou 15 segonn pou kenbe koneksyon an ak lage resous yo.

keepalive_timeout 15;

3. Optimize limit deskriptè dosye yo

Pa default,Linux Sistèm nan gen yon limit sou kantite deskriptè dosye ki ka louvri pa chak pwosesis.

Si Nginx bezwen trete yon gwo kantite fichye (tankou resous estatik), ou ka wè yon erè nan Nginx, ki pouse "too many open files".

ou ka pase worker_rlimit_nofile Ogmante limit deskriptè dosye a, pou egzanp mete sou 65535.

worker_rlimit_nofile 65535;

4. Pèmèt kachèt ak gzip

Caching ak konpresyon se de kle nan optimize pèfòmans sit entènèt.

Lè yo pèmèt fonksyon kachèt Nginx a, resous estatik (tankou imaj ak fichye JS) ka kach nan memwa., kidonk anpil diminye chaj la sou sèvè a.

Anplis de sa, vire sou fonksyon an konpresyon gzip ka diminye kantite done transmèt ak amelyore vitès sit entènèt la.

gzip on;
gzip_types text/plain application/javascript;

5. Analize itilizasyon resous Nginx

Finalman, si ou te konplete tout optimize ki anwo yo men Nginx toujou pran anpil CPU, ou ka bezwen sèvi ak kèk zouti pou analiz apwofondi.

使用 top Oswa htop Gade konsomasyon resous an tan reyèl nan yon pwosesis,pase strace Trace sistèm apèl, oswa itilize nmon Jenere rapò pèfòmans. Se sèlman lè nou analize operasyon aktyèl la nan Nginx nou ka fè akor pi presi.

总结

Pa panike lè itilizasyon CPU Nginx a ogmante. Li ka jis ki te koze pa move konfigirasyon oswa trafik twòp.

atravè ajisteman rezonab worker_processesworker_connectionsLè w pèmèt kachèt, optimize timeouts ak deskriptè fichye yo, ou ka siyifikativman redwi presyon chaj sou Nginx.

Nginx se yon sèvè entènèt pwisan ki, lè byen optimisé, ka bay pèfòmans ekselan pou sit entènèt ou a.

Sonje byen, nenpòt kesyon ka reponn paSyansmetòd yo rezoud li, optimize pèfòmans sèvè pa gen okenn eksepsyon.

Siveye ak ajiste nan yon fason apwopriye, se kle nan kenbe Nginx kouri avèk efikasite. Si ou ka metrize teknik sa yo, sit entènèt ou a pral an sekirite menm nan fè fas a gwo trafik oswa atak move.

Mwen espere ke atik sa a te enspire ou, prese epi optimize Nginx ou!

kòmantè

Adrès imel ou p ap pibliye. Jaden obligatwa yo te itilize * Mete etikèt sou

Ki gen tèt