لا حدود! قد لا نحب جميعًا حدودًا ، لكن هل هي حقًا فكرة جيدة؟ عادة ، عندما لا تكون هناك حدود ، “سيكون هناك تنانين”. إنه نفس الشيء مع limits.conf ، على الرغم من أنه من أجل اختبار الخوادم ، فإن limits.conf غير محدودة حقًا!
ما هو limits.conf ؟
و limits.conf
يحتوي ملف إعدادات الحد من الموارد لنظام التشغيل لينكس. عندما تم تثبيت كمبيوتر Linux الخاص بك ، تم إنشاء الملف كجزء من التثبيت واحتوى على قيم لموارد مثل حجم الذاكرة الافتراضية ، والحد الأقصى لعدد الملفات ، والمزيد.
باختصار ، باستخدام limits.conf
ملف التكوين ، يمكن للمستخدم (أو مسؤول النظام) تحديد حدود على الموارد المتاحة للمستخدم وللنظام.
تنسيق limits.conf
الملف (الموجود فيه /etc/security/
) محدد جيدًا. بشكل عام ، سنحدد مجالًا قابلاً للتطبيق (مثل مستخدم ، مجموعة ، وحتى أحرف البدل مثل *
) ، نوع (حد ضعيف أو صعب) ، عنصر تتعلق به القاعدة (مثل nofile
العنصر الذي يحدد الحد الأقصى لعدد الملفات المفتوحة ، locks
العنصر الذي يحدد الحد الأقصى لعدد أقفال الملف التي يمكن للمستخدم الاحتفاظ بها ، وما إلى ذلك) وأخيرًا قيمة (الإعداد الفعلي / الحد الأقصى).
رأس limits.conf
ملف يحدد بوضوح هذا في كمية مناسبة من التفاصيل:
إذا كنت ترغب في قراءة المزيد حول كل عنصر محدد وإعدادات التكوين الأخرى مع limits.conf
الملف ، فما عليك سوى تنفيذ:
man limits.conf
في موجهك الطرفي.
الذهاب بلا حدود
بشكل عام ، لجميع المقاصد والأغراض ، لا ينبغي لأحد أن يذهب بلا حدود limits.conf
. ثم قد تسأل لماذا هذا المقال؟ حسنًا ، كلما كانت هناك قاعدة ، هناك استثناء صالح. الاستثناء ، في هذه الحالة ، هو اختبار الخوادم. عندما تقوم باختبار أو عمل ضمان الجودة من أي نوع ، فستواجه غالبًا حدود النظام.
يعد إعداد الأشياء على أنها غير محدودة ، مع اختبار مناسب / إعداد إطار عمل ضمان الجودة لرعاية إدارة موارد النظام ، استثناءً صالحًا للحفاظ على حدود معقولة ومحددة بالنظام في الداخل limits.conf
. بالنسبة لجميع الخوادم الأخرى ، كما هو موضح ، يُفضل التهيئة لكل خادم ويوصى بها.
بدون مزيد من اللغط ، دعنا نقدم برنامجًا نصيًا يضبط جميع المتغيرات والخيارات limits.conf
على عدد غير محدود. يعتمد هذا البرنامج النصي على البرنامج النصي setup_server.sh المرخص لـ GPLv2 في مستودع mariadb-qa على GitHub. قد ترغب أيضًا في استكشاف هذا البرنامج النصي لملفات أخرى يمكنك اعتمادها في إعدادات غير محدودة لإعداد خادم اختبار ، على سبيل المثال /etc/sysctl.conf
الإعدادات و/etc/systemd/logind.conf
لتكوين خادم نحو غير محدود ، قم بتنفيذ البرنامج النصي التالي في موجه المحطة الطرفية للخادم (التجريبي) الذي تريد تهيئته على أنه غير محدود.
يجب أن تعلم أيضًا أن استخدام عدد كبير (أكبر من 20000 تقريبًا) لـ nproc الناعم والصلب قد يتسبب في عدم استقرار النظام ويعلق على Centos 7 ، ولكن ليس في Ubuntu 18 و 19 و 20. استخدم هذا الإعداد لبعض الوقت لاختبار الخوادم ، وهو مثالي لهذا التطبيق. لاحظ كيف أن جميع الإعدادات غير محدودة باستثناء nofile
الحد الأقصى 1048576.
sudo bash -c "cat << EOF > /etc/security/limits.conf * soft core unlimited * hard core unlimited * soft data unlimited * hard data unlimited * soft fsize unlimited * hard fsize unlimited * soft memlock unlimited * hard memlock unlimited * soft nofile 1048576 * hard nofile 1048576 * soft rss unlimited * hard rss unlimited * soft stack unlimited * hard stack unlimited * soft cpu unlimited * hard cpu unlimited * soft nproc unlimited * hard nproc unlimited * soft as unlimited * hard as unlimited * soft maxlogins unlimited * hard maxlogins unlimited * soft maxsyslogins unlimited * hard maxsyslogins unlimited * soft locks unlimited * hard locks unlimited * soft sigpending unlimited * hard sigpending unlimited * soft msgqueue unlimited * hard msgqueue unlimited EOF"
بمجرد تنفيذ ذلك ، ما عليك سوى إعادة تشغيل الخادم الخاص بك لتحميل كافة إعدادات التكوين الجديدة. لن تلاحظ أي اختلاف ، باستثناء أن عمليات التشغيل الاختبارية ، إذا كانت كثيفة الاستخدام للموارد ، فلن تتوقف عند مشكلات تكوين الحدود المختلفة بعد الآن.
ومع ذلك ، كما هو موضح أعلاه ، سوف تحتاج ، كجزء من إطار الاختبار الخاص بك ، إلى وجود مراقب قوي وعملية مراقبة موارد الخادم والتي تضمن عدم الإفراط في استخدام الخادم الخاص بك ، مما يؤدي غالبًا إلى حدوث توقف وإعادة تشغيل المتطلبات. في مقال مستقبلي ، قد أقدم الأساسيات لمثل هذا البرنامج النصي حيث يمكنك التوسع لتغطية الإعداد الخاص بك.
تغليف
توجد حالات استخدام صالحة للإعداد /etc/security/limits.conf
لكل حد أقصى ممكن. إنها نادرة بشكل عام (مع كون اختبار الخوادم استثناءً ملحوظًا).
في هذه المقالة ، تعلمنا المزيد حول limits.conf
: سبب وجوده وكيفية تغيير تكوينه. استكشفنا limits.conf
التنسيق وبناء الجملة والتعابير وأدرجنا نصًا بسيطًا يمكنه ضبط جميع إعداداتنا على عدد غير محدود.
حتى إذا كنت ترغب في تكوين الخادم الخاص بك إلى حدود أقل ، فمن السهل تكييف البرنامج النصي ويمكن دمجه (مثل رمز GPLv2 كما هو موضح) في البرامج النصية الخاصة بك: ما عليك سوى التغيير unlimited
إلى القيم المطلوبة. هذه أيضًا طريقة مباشرة لتكوين خادم سريعًا للقيم المطلوبة وبالتالي توحيد limits.conf
إعداد مزرعة الخوادم وتشفيرها.