Undersøg den kørende daemon, før du stoler på login-shellets ulimit -n. Til en installation, der bruger squid.service, start med:

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

Læs /proc/PID/limits med det faktiske proces-id. I en opsætning med flere processer skal du også kontrollere den relevante worker. En værdi, der er gemt i konfigurationen, er ikke bevis for, at denne proces har arvet den.

KontrolOmfang
Shell ulimit og PAM limits.confShellens efterkommere eller sessioner, der faktisk bruger PAM-indstillingen
systemd LimitNOFILE=Processer startet under den tjenestes ressourcepolitik
Squid max_filedescriptors, hvor det understøttesApplikationsgrænse inden for operativsystemets begrænsninger

En systemtjeneste overtager ikke PAM-ændringer, blot fordi en administrator har ændret filen. Brug en tjenestespecifik drop-in, når det er passende at ændre dens systemd-grænse. Squid dokumenterer, at max_filedescriptors kræver genstart for at blive ændret; hvis den lades uindstillet, arves OS'ets bløde grænse.

Dimensionér grænsen efter deskriptorer frem for brugere. Klienter kan holde flere sockets, og videre forbindelser, logfiler og hjælpepipelines bruger også deskriptorer. At hæve grænsen tillader mere forbrug uden straks at reservere en fast mængde RAM pr. mulig deskriptor. Hverken et gammelt skøn over hukommelse pr. socket eller 65,535 er et universelt kapacitetskrav eller et Linux-loft.

Sammenlign efter tjenesteændringen den nye proces' grænser med de tilsigtede værdier. Hvis fejl opstår langt under dem, skal du undersøge den ressource, der faktisk løber tør.

Relaterede artikler