Undersøk den kjørende daemonen før du stoler på ulimit -n til innloggingsskallet. For en installasjon som bruker squid.service, start med:

systemctl show squid.service -p MainPID -p LimitNOFILE
systemctl cat squid.service

Les /proc/PID/limits med den faktiske prosess-ID-en. I en distribusjon med flere prosesser, kontroller også den relevante workeren. En verdi som er lagret i konfigurasjonen er ikke bevis for at denne prosessen har arvet den.

KontrollOmfang
Skall ulimit og PAM limits.confSkallets etterkommere eller økter som faktisk bruker PAM-innstillingen
systemd LimitNOFILE=Prosesser startet under ressursretningslinjene til den tjenesten
Squid max_filedescriptors, der det støttesApplikasjonsgrense innenfor operativsystemets begrensninger

En systemtjeneste overtar ikke PAM-endringer bare fordi en administrator har endret filen. Bruk en tjenestespesifikk drop-in når det er riktig å endre systemd-grensen. Squid dokumenterer at max_filedescriptors krever omstart for å endres; hvis den står uinnstilt, arves OS-ets myke grense.

Dimensjoner grensen etter deskriptorer, ikke brukere. Klienter kan holde flere sockets, og utgående tilkoblinger, logger og hjelpepipelines bruker også deskriptorer. Å heve grensen tillater mer forbruk uten å reservere en fast mengde RAM med en gang for hver mulig deskriptor. Verken et gammelt minne-per-socket-an slag eller 65,535 er et universelt kapasitetskrav eller et Linux-tak.

Etter tjenesteendringen, sammenlign den nye prosessens grenser med de tiltenkte verdiene. Hvis feil oppstår langt under dem, undersøk ressursen som faktisk går tom.

Relaterte artikler