বলুন যে আমি একাধিক প্রক্রিয়া তৈরি করে ডকারের ধারকটির ভিতরে মাল্টিপ্রসেসিং পরিষেবা চালাচ্ছি , ডকার কি হোস্টের সমস্ত / একাধিক কোর / সিপিইউ ব্যবহার করবে বা কেবল একটি?
বলুন যে আমি একাধিক প্রক্রিয়া তৈরি করে ডকারের ধারকটির ভিতরে মাল্টিপ্রসেসিং পরিষেবা চালাচ্ছি , ডকার কি হোস্টের সমস্ত / একাধিক কোর / সিপিইউ ব্যবহার করবে বা কেবল একটি?
উত্তর:
চার্লস যেমন উল্লেখ করেছেন, ডিফল্টরূপে সমস্ত ব্যবহার করা যেতে পারে বা আপনি --cpuset-cpusপ্যারামিটারটি ব্যবহার করে এটি ধারক প্রতি সীমাবদ্ধ করতে পারেন ।
docker run --cpuset-cpus="0-2" myapp:latest
এটি ধারকটিকে 3 সিপিইউতে সীমাবদ্ধ করবে (0, 1 এবং 2) দেখুন Docker চালানো ডক্স আরো বিস্তারিত জানার জন্য।
ধারকগুলির সিপিইউ ব্যবহার সীমিত করার পছন্দের উপায় হ'ল সিপিইউগুলিতে ভগ্নাংশের সীমা রয়েছে:
docker run --cpus 2.5 myapp:latest
এটি হোস্টের আপনার ধারকটিকে 2.5 কোরের মধ্যে সীমাবদ্ধ করবে।
সবশেষে, আপনি যদি ম্যাকের জন্য ডকার, উইন্ডোজের জন্য ডকার, এবং ডকার-মেশিন সহ কোনও ভিএম এর অভ্যন্তরে ডকার চালনা করেন তবে সেই ভিএম এর আপনার ল্যাপটপ থেকে আলাদা সিপিইউ সীমা থাকবে। ডকার সেই ভিএম এর ভিতরে চলে এবং ভিএমকে দেওয়া সমস্ত সংস্থান নিজেই ব্যবহার করবে। যেমন ম্যাকের জন্য ডকার সহ আপনার নিম্নলিখিত মেনু রয়েছে:
সম্ভবত আপনার হোস্ট ভিএম এর ডিফল্টরূপে একটি কোর রয়েছে। সুতরাং আপনার আপনার ভিএম বাড়ানো উচিত প্রথমে সিপিইউ-কাউন্ট এবং তারপরে আপনার ডকার কোরগুলি বাড়ানোর জন্য --cpuset-cpus বিকল্পটি ব্যবহার করা উচিত । আপনি নিম্নলিখিত কমান্ডটি ব্যবহার করে ডকার ডিফল্ট ভিএম অপসারণ করতে পারেন তবে আপনি alচ্ছিক সিপিইউ-কাউন্ট এবং মেমরি আকারের সাথে অন্য ভিএম তৈরি করতে পারেন :
docker-machine rm default
docker-machine create -d virtualbox --virtualbox-cpu-count=8 --virtualbox-memory=4096 --virtualbox-disk-size=50000 default
এই পদক্ষেপের পরে আপনি আপনার চিত্র চালানোর আগে কয়েকটি নম্বর নির্দিষ্ট করতে পারেন। এই কমান্ডটি মোট 8 টি কোরের 4 টি কোর ব্যবহার করবে।
docker run -it --cpuset-cpus="0-3" your_image_name
তারপরে আপনি এই কমান্ডটি ব্যবহার করে আপনার চিত্রটিতে উপলব্ধ কোরগুলির সংখ্যা পরীক্ষা করতে পারেন:
nproc
--cpuset-cpusযে এটি পরিবর্তন করতে চেয়েছিলেন দেখুন ।