Preglejte delujočega demona, preden zaupate ulimit -n prijavne lupine. Za namestitev, ki uporablja squid.service, začnite z:

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

Preberite /proc/PID/limits z dejanskim ID procesa. Pri namestitvi z več procesi preverite tudi ustreznega delavca. Vrednost, shranjena v konfiguraciji, ni dokaz, da jo je ta proces podedoval.

NadzorObseg
Lupina ulimit in PAM limits.confPotomci lupine ali seje, ki dejansko uporabljajo nastavitev PAM
systemd LimitNOFILE=Procesi, zagnani v okviru politike virov te storitve
Squid max_filedescriptors, kjer je podprtoOmejitev aplikacije v okviru omejitev operacijskega sistema

Sistemska storitev ne prevzame sprememb PAM samo zato, ker je skrbnik spremenil datoteko. Uporabite drop-in, specifičen za storitev, ko je spreminjanje njene meje systemd primerno. Squid dokumentira, da max_filedescriptors za spremembo zahteva ponovni zagon; če ostane nenastavljen, se podeduje mehka meja OS.

Mejo določite po deskriptorjih, ne po uporabnikih. Odjemalci lahko držijo več vtičnic, tudi odhodne povezave, dnevniki in pomožne cevi porabljajo deskriptorje. Dvignjena meja omogoča večjo porabo, ne da bi takoj rezervirali fiksno količino RAM za vsak možni deskriptor. Niti stara ocena pomnilnika na vtičnico niti 65,535 nista univerzalna zahteva za zmogljivost ali zgornja meja Linuxa.

Po spremembi storitve primerjajte meje novega procesa z načrtovanimi vrednostmi. Če se napake pojavljajo precej pod njimi, raziščite vir, ki se dejansko izčrpava.

Sorodni članki