Pronalaženje stvarnog ograničenja datotečnih deskriptora Squida
Pročitajte ograničenja procesa pokrenutog proxyja prije nego što promijenite PAM postavke ili kopirate fiksnu nofile vrijednost iz recepta za kapacitet.
Pregledajte pokrenuti demon prije nego što 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 sačuvana 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 operativnog sistema |
Sistemska usluga ne preuzima PAM izmjene samo zato što je administrator promijenio datoteku. Koristite drop-in specifičan za uslugu kada je promjena njenog systemd ograničenja prikladna. Squid dokumentuje 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 trenutnog rezervisanja fiksne količine RAM-a po mogućem deskriptoru. Ni stara procjena memorije po utičnici ni 65,535 nisu univerzalni zahtjev kapaciteta ili Linux plafon.
Nakon promjene usluge uporedite ograničenja novog procesa s predviđenim vrijednostima. Ako se greške javljaju znatno ispod njih, istražite resurs koji se stvarno iscrpljuje.