پیش از اعتماد به ulimit -n پوسته ورود، دیمن در حال اجرا را بررسی کنید. برای نصب‌ای که از squid.service استفاده می‌کند، با این شروع کنید:

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

/proc/PID/limits را با شناسه واقعی فرایند بخوانید. در استقرار چندفرایندی، کارگر مربوطه را هم بررسی کنید. مقداری که در پیکربندی ذخیره شده اثبات وراثت آن توسط این فرایند نیست.

کنترلدامنه
پوسته ulimit و PAM limits.confفرزندان پوسته یا نشست‌هایی که واقعاً از تنظیم PAM استفاده می‌کنند
systemd LimitNOFILE=فرایندهایی که زیر سیاست منابع آن سرویس آغاز شده‌اند
Squid max_filedescriptors، در صورت پشتیبانیحد برنامه در چارچوب محدودیت‌های سیستم‌عامل

یک سرویس سیستم فقط به این دلیل که مدیر فایل را تغییر داده، ویرایش‌های PAM را نمی‌پذیرد. وقتی تغییر حد systemd مناسب است، از drop-in مخصوص همان سرویس استفاده کنید. Squid مستند می‌کند که max_filedescriptors برای تغییر نیاز به راه‌اندازی مجدد دارد؛ اگر تنظیم نشده بماند، حد نرم سیستم‌عامل به ارث می‌رسد.

حد را بر اساس توصیف‌گرها اندازه بگیرید، نه کاربران. کاربران می‌توانند چندین سوکت نگه دارند، و اتصال‌های خروجی، گزارش‌ها و لوله‌های کمکی هم توصیف‌گر مصرف می‌کنند. بالا بردن حد مصرف بیشتر را ممکن می‌کند بی‌آنکه همان لحظه مقدار ثابتی RAM برای هر توصیف‌گر ممکن رزرو شود. نه برآورد قدیمی حافظه به‌ازای هر سوکت و نه 65,535 هیچ‌یک نیاز جهانی ظرفیت یا سقف لینوکس نیست.

پس از تغییر سرویس، محدودیت‌های فرایند جدید را با مقادیر موردنظر مقایسه کنید. اگر خطاها بسیار پایین‌تر از آن‌ها رخ دهند، منبعی را که واقعاً تمام می‌شود بررسی کنید.

مقالات مرتبط