ກວດເບິ່ງ daemon ທີ່ກຳລັງເຮັດວຽກ ກ່ອນທີ່ຈະໄວ້ໃຈ ulimit -n ຂອງ shell ເຂົ້າລະບົບ. ສຳລັບການຕິດຕັ້ງທີ່ໃຊ້ squid.service ເລີ່ມດ້ວຍ:

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

ອ່ານ /proc/PID/limits ໂດຍໃຊ້ ID ຂະບວນການຕົວຈິງ. ໃນການຕິດຕັ້ງແບບຫຼາຍຂະບວນການ, ກວດເບິ່ງ worker ທີ່ກ່ຽວຂ້ອງນຳ. ຄ່າທີ່ບັນທຶກໄວ້ໃນການຕັ້ງຄ່າບໍ່ແມ່ນຫຼັກຖານວ່າຂະບວນການນີ້ໄດ້ຮັບມໍລະດົກມັນ.

ການຄວບຄຸມຂອບເຂດ
Shell ulimit ແລະ PAM limits.confລູກຫຼານຂອງ shell ຫຼື session ທີ່ໃຊ້ການຕັ້ງຄ່າ PAM ຕົວຈິງ
systemd LimitNOFILE=ຂະບວນການທີ່ເລີ່ມພາຍໃຕ້ນະໂຍບາຍຊັບພະຍາກອນຂອງບໍລິການນັ້ນ
Squid max_filedescriptors ໃນບ່ອນທີ່ຮອງຮັບຂີດຈຳກັດແອັບພລິເຄຊັນພາຍໃນຂໍ້ຈຳກັດຂອງລະບົບປະຕິບັດການ

ບໍລິການລະບົບບໍ່ຮັບເອົາການແກ້ໄຂ PAM ພຽງເພາະຜູ້ດູແລລະບົບປ່ຽນໄຟລ໌. ໃຊ້ drop-in ສະເພາະບໍລິການ ເມື່ອການປ່ຽນຂີດຈຳກັດ systemd ຂອງມັນເໝາະສົມ. Squid ເອກະສານວ່າ max_filedescriptors ຕ້ອງການເລີ່ມໃໝ່ເພື່ອປ່ຽນ; ຖ້າປະໄວ້ບໍ່ຕັ້ງຄ່າ ມັນຈະຮັບມໍລະດົກຂີດຈຳກັດອ່ອນຂອງ OS.

ວັດຂີດຈຳກັດສຳລັບຕົວພັນລາຍລະອຽດ ບໍ່ແມ່ນຜູ້ໃຊ້. ລູກຄ້າສາມາດຖື socket ຫຼາຍອັນ ແລະ ການເຊື່ອມຕໍ່ອອກ, log ແລະ ທໍ່ຊ່ວຍ ກໍ່ໃຊ້ຕົວພັນລາຍລະອຽດເຊັ່ນກັນ. ການເພີ່ມຂີດຈຳກັດອະນຸຍາດໃຫ້ໃຊ້ຫຼາຍຂຶ້ນ ໂດຍບໍ່ສະຫງວນ RAM ຄົງທີ່ທັນທີສຳລັບແຕ່ລະຕົວພັນລາຍລະອຽດທີ່ເປັນໄປໄດ້. ທັງການຄາດຄະເນຫົວຄວາມຈຳຕໍ່ socket ແບບເກົ່າ ແລະ 65,535 ບໍ່ແມ່ນຄວາມຕ້ອງການຄວາມຈຸສາກົນ ຫຼື ເພດານຂອງ Linux.

ຫຼັງຈາກປ່ຽນບໍລິການ ໃຫ້ປຽບທຽບຂີດຈຳກັດຂອງຂະບວນການໃໝ່ກັບຄ່າທີ່ຕັ້ງໃຈ. ຖ້າຄວາມຜິດພາດເກີດຂຶ້ນຕ່ຳກວ່າພວກມັນຫຼາຍ ໃຫ້ສືບສວນຊັບພະຍາກອນທີ່ກຳລັງໝົດຈິງ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ