Vizsgálja meg a futó démont, mielőtt megbízna a bejelentkező shell ulimit -n értékében. A squid.service szolgáltatást használó telepítésnél ezzel kezdje:

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

Olvassa ki a /proc/PID/limits fájlt a tényleges folyamatazonosítóval. Többfolyamatos telepítésnél a megfelelő workert is ellenőrizze. A konfigurációban mentett érték nem bizonyítja, hogy ez a folyamat örökölte.

VezérlésHatókör
Shell ulimit és PAM limits.confA shell leszármazottai vagy azok a munkamenetek, amelyek ténylegesen használják a PAM-beállítást
systemd LimitNOFILE=A szolgáltatás erőforrás-szabályzata alatt indított folyamatok
Squid max_filedescriptors, ahol támogatottAz alkalmazás korlátja az operációs rendszer megszorításain belül

Egy rendszerszolgáltatás nem veszi át a PAM-módosításokat csak azért, mert a rendszergazda megváltoztatta a fájlt. Használjon szolgáltatásspecifikus drop-int, amikor a systemd-korlát módosítása indokolt. A Squid dokumentálja, hogy a max_filedescriptors módosításához újraindítás kell; beállítatlanul hagyva az OS lágy korlátját örökli.

A korlátot leírókra, ne felhasználókra méretezze. Az ügyfelek több socketet is tarthatnak, és a kimenő kapcsolatok, a naplók és a segédcsövek is fogyasztanak leírókat. A korlát emelése több fogyasztást tesz lehetővé anélkül, hogy azonnal rögzített RAM-mennyiséget foglalna minden lehetséges leíróhoz. Sem egy régi, socketenkénti memóriabecslés, sem a 65,535 nem általános kapacitáskövetelmény vagy Linux-plafon.

A szolgáltatás módosítása után hasonlítsa össze az új folyamat korlátait a tervezett értékekkel. Ha a hibák jóval ezek alatt jelentkeznek, vizsgálja meg a ténylegesen kimerülő erőforrást.

Kapcsolódó cikkek