Skip to content

Container Resource Management: রিসোর্স নিয়ন্ত্রণ ⚡

ডকার কন্টেইনারগুলো ডিফল্টভাবে হোস্ট মেশিনের সব CPU এবং RAM ব্যবহার করতে পারে। কিন্তু প্রোডাকশন এনভায়রনমেন্টে একটি কন্টেইনার যেন পুরো সিস্টেমের রিসোর্স দখল করে না নেয়, সেজন্য লিমিট সেট করা খুবই জরুরি।


১. মেমোরি কন্ট্রোল (Memory Management)

কন্টেইনারের জন্য র্যাম (RAM) লিমিট করার জন্য নিচের ফ্ল্যাগগুলো ব্যবহার করা হয়:

  • RAM Limit (-m): কন্টেইনার কতটুকু মেমোরি ব্যবহার করতে পারবে।
    bash
    docker run -d -m 512m nginx
  • Swap Limit (--memory-swap): RAM এর সাথে কতটুকু সোয়াপ মেমোরি ব্যবহার করতে পারবে।
    bash
    docker run -d -m 512m --memory-swap 1g nginx
    (এখানে কন্টেইনারটি ৫১২ মেগাবাইট র্যাম এবং অতিরিক্ত ৫১২ মেগাবাইট সোয়াপ ব্যবহার করতে পারবে, মোট ১ জিবি।)

২. CPU কন্ট্রোল (CPU Management)

কন্টেইনারের প্রোসেসিং পাওয়ার নিয়ন্ত্রণ করার পদ্ধতি:

  • CPU Limit (--cpus): কন্টেইনার কতটি CPU কোর ব্যবহার করতে পারবে।

    bash
    docker run -d --cpus 2 nginx

    (এটি ২ টি কোর ব্যবহার করার পারমিশন দেবে।)

  • CPU Weight (--cpu-shares): রিসোর্স ক্রাইসিস বা চাপের সময় কোন কন্টেইনার বেশি অগ্রাধিকার পাবে তা ঠিক করে।

    bash
    docker run -d --cpu-shares 512 nginx

    (ডিফল্ট ভ্যালু ১০২৪। ৫১২ দিলে এটি অন্য কন্টেইনারের তুলনায় অর্ধেক প্রায়োরিটি পাবে।)


৩. স্ট্যাটাস এবং মনিটরিং (Monitoring)

কোন কন্টেইনার বর্তমানে কতটুকু রিসোর্স ব্যবহার করছে তা লাইভ দেখার জন্য:

bash
docker stats

এটি একটি ইন্টারাক্টিভ ড্যাশবোর্ড দেখাবে যেখানে CPU, Memory, এবং Network usage এর লাইভ স্টেটাস দেখা যায়।


৪. রানিং কন্টেইনার আপডেট (Docker Update)

একটি কন্টেইনার চালু থাকা অবস্থায় তার রিসোর্স লিমিট পরিবর্তন করতে হলে:

bash
docker update -m 1g --cpus 1.5 container_id

এটি কন্টেইনার রিস্টার্ট না করেই তার লিমিট আপডেট করে দেয়।


৫. রিসোর্স ম্যানেজমেন্ট সামারি

টাস্ককমান্ড / ফ্ল্যাগ
মেমোরি লিমিট-m বা --memory
সোয়াপ লিমিট--memory-swap
CPU লিমিট--cpus
প্রায়োরিটি সেট--cpu-shares
সরাসরি আপডেটdocker update
লাইভ মনিটরিংdocker stats

CAUTION

যদি কোনো কন্টেইনার তার লিমিট করা মেমোরির চেয়ে বেশি ব্যবহার করার চেষ্টা করে, তবে ডকার তাকে OOM (Out Of Memory) Kill করে দিতে পারে। তাই সবসময় ইম্পরট্যান্ট কন্টেইনারের জন্য কিছু 'Memory Reservation' রাখা ভালো।

Released under the MIT License.