Pronalaženje stvarnog ograničenja datotečnih deskriptora Squida
Pročitajte ograničenja procesa pokrenutog proxyja prije nego promijenite PAM postavke ili kopirate fiksnu nofile vrijednost iz recepta za kapacitet.
Pregledajte pokrenuti demon prije nego povjerujete ulimit -n prijavne ljuske. Za instalaciju koja koristi squid.service, počnite s:
systemctl show squid.service -p MainPID -p LimitNOFILE
systemctl cat squid.service
Pročitajte /proc/PID/limits koristeći stvarni ID procesa. U višeprocesnom postavljanju provjerite i odgovarajućeg radnika. Vrijednost spremljena u konfiguraciji nije dokaz da ju je ovaj proces naslijedio.
| Kontrola | Obuhvat |
|---|---|
Ljuska ulimit i PAM limits.conf | Potomci ljuske ili sesije koje stvarno koriste PAM postavku |
systemd LimitNOFILE= | Procesi pokrenuti pod politikom resursa te usluge |
Squid max_filedescriptors, gdje je podržano | Ograničenje aplikacije unutar ograničenja operacijskog sustava |
Sustavska usluga ne preuzima PAM izmjene samo zato što je administrator promijenio datoteku. Koristite drop-in specifičan za uslugu kada je promjena njezina systemd ograničenja prikladna. Squid dokumentira da max_filedescriptors zahtijeva ponovno pokretanje da bi se promijenio; ako ostane nepostavljen, nasljeđuje meko ograničenje OS-a.
Dimenzionirajte ograničenje prema deskriptorima, a ne prema korisnicima. Klijenti mogu držati nekoliko utičnica, a odlazne veze, zapisi i pomoćni cjevovodi također troše deskriptore. Podizanje ograničenja dopušta veću potrošnju bez trenutačnog rezerviranja fiksne količine RAM-a po mogućem deskriptoru. Ni stara procjena memorije po utičnici ni 65,535 nisu univerzalni zahtjev kapaciteta ni Linux plafon.
Nakon promjene usluge usporedite ograničenja novog procesa s predviđenim vrijednostima. Ako se pogreške javljaju znatno ispod njih, istražite resurs koji se stvarno iscrpljuje.