Puncte:1

Cum pot vedea conținutul memoriei procesului nginx?

drapel br

Serverul Nginx 1.20.1 funcționează ca un proxy invers consumând multă memorie și facând ca serviciul să nu mai necesite o repornire a sistemului. ModSecurity biblioteca este de asemenea configurată pe Nginx.

Puteți vedea în graficul următor că numărul de conexiuni stabilite se menține constant în jurul valorii de 200, în timp ce al doilea grafic arată că memoria crește continuu până ajunge la 100%.

Consumul de resurse de către Nginx

Când filtrez ieșirea top comanda COMANDĂ=nginx Înțeleg:

sus - 16:31:18 până 1 zi, 1:54, 2 utilizatori, medie de încărcare: 0,26, 0,57, 0,66
Sarcini: 179 în total, 2 alergând, 177 dormit, 0 oprit, 0 zombi
%Cpu(e): 6.0 us, 0.2 sy, 0.0 ni, 93.4 id, 0.3 wa, 0.0 hi, 0.0 si, 0.0 st
MiB Mem: 12010.4 total, 184.6 gratuit, 3818.6 folosit, 8007.3 buff/cache
MiB Swap: 975.0 total, 968.7 gratuit, 6.3 folosit. 7858.8 disponibil Mem

  PID UTILIZATOR PR NI VIRT RES SHR S %CPU %MEM TIME+ COMANDA
26553 nginx 20 0 2624044 2,4g 9004 S 7,0 20,3 1:34,85 nginx
26554 nginx 20 0 2625580 2.4g 8932 S 0.7 20.4 0:18.12 nginx
26555 nginx 20 0 2627508 2,4g 8872 S 0,7 20,4 0:04,52 nginx
10284 root 20 0 2624568 2.4g 7772 S 0.0 20.3 0:29.08 nginx
26556 nginx 20 0 2624572 2,4g 8812 S 0,0 20,3 0:00,93 nginx

Iată rezultatul pmap -d 26553 comanda:

26553: nginx: proces de lucru
Adresă Kbytes Mode Offset Device Mapping
0000557a808e7000 164 r---- 0000000000000000 008:00001 nginx
0000557a80910000 824 r-x-- 0000000000029000 008:00001 nginx
0000557a809de000 204 r---- 00000000000f7000 008:00001 nginx
0000557a80a12000 8 r---- 000000000012a000 008:00001 nginx
0000557a80a14000 132 rw--- 000000000012c000 008:00001 nginx
0000557a80a35000 128 rw--- 0000000000000000 000:00000 [ anon ]
0000557a81b7c000 264740 rw--- 0000000000000000 000:00000 [ anon ]
0000557a91e05000 1965680 rw--- 0000000000000000 000:00000 [anon]
0000557b09da1000 1536 rw--- 0000000000000000 000:00000 [ anon ]
00007fefb919a000 292672 rwx-- 0000000000000000 000:00000 [ anon ]

Consider că nu este normal ca Nginx să consume atât de multă memorie atunci când lucrează ca proxy invers. Serverul are 4 vCPU-uri și 12 GB de memorie (era 6 GB până săptămâna trecută când a început să înfometeze serverul și să-l facă să nu mai răspundă). Dar nu sunt sigur cum să procedez de aici.

drapel jp
arată configurația ta cu `nginx -T`.
Ronaldo avatar
drapel br
@AlexD pentru a nu polua întrebarea am adăugat-o [aici](https://ideone.com/sQ25vU).
drapel jp
Principalul suspect este probabil mod_security. Dacă îl dezactivați, mai experimentați aceeași creștere a consumului de memorie?
drapel jp
Vedeți această [problema mod_security](https://github.com/SpiderLabs/ModSecurity-nginx/issues/236)
Ronaldo avatar
drapel br
@AlexD Nu am dezactivat încă mod_security, deoarece acesta este principalul motiv pentru care rulăm acel server.Am de gând să fac acel test. Și mulțumesc pentru partajarea linkului de scurgere de memorie, îl citesc acum și încerc să înțeleg dacă a fost lansată o nouă versiune de mod_security de când l-am instalat.
djdomi avatar
drapel za
nu utilizați niciun fel de soluții fără paste, adăugați-o direct la întrebare, acest lucru îmbunătățește calitatea întrebării dvs
Ronaldo avatar
drapel br
@AlexD se pare că problema mea a fost legată de postarea lui [Michal256](https://github.com/SpiderLabs/ModSecurity-nginx/issues/236#issuecomment-759569912) din linkul pe care l-ați furnizat. Am încărcat modsecurity pentru fiecare „server”. L-am schimbat la nivelul `http` și se pare că l-am remediat. O să urmăresc tot restul săptămânii și dacă se confirmă că este soluția, îți spun ca să poți scrie un răspuns pentru a fi acceptat. Mulțumiri!
Ronaldo avatar
drapel br
La mulți ani, @AlexD. Și mulțumesc încă o dată, sfatul tău despre modsecurity s-a dovedit a fi corect. Serverul nu a avut probleme de memorie în ultima săptămână. Singura modificare pe care a trebuit să o fac a fost să elimin mai multe `modsecurity on;` și `modsecurity_rules_file` din contextul serverului și să le adaug o singură dată în contextul http. Puteți scrie răspunsul pentru a fi acceptat!

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.