একটি ডকারের ধারক কয়টি সিপিইউ ব্যবহার করে?


120

বলুন যে আমি একাধিক প্রক্রিয়া তৈরি করে ডকারের ধারকটির ভিতরে মাল্টিপ্রসেসিং পরিষেবা চালাচ্ছি , ডকার কি হোস্টের সমস্ত / একাধিক কোর / সিপিইউ ব্যবহার করবে বা কেবল একটি?


11
এতে থাকা সিগ্রুপ হিসাবে যতগুলি সিপিইউ ব্যবহার করার অনুমতি রয়েছে। কোনটি ডিফল্টরূপে সীমাবদ্ধ নয়। আপনি --cpuset-cpusযে এটি পরিবর্তন করতে চেয়েছিলেন দেখুন ।
চার্লস ডাফি

3
(ডকার কনটেইনারটি কেবল প্রাইভেট নেমস্পেসের একগুচ্ছ - যেহেতু এটি সিপিইউগুলি অনুকরণ করে না, তাই তাদের উপর কোনও বিধিনিষেধ আরোপের জন্য তার পথের বাইরে চলে যাওয়া দরকার; লিনাক্স কার্নেলগুলি এ জাতীয় বাইরে যাওয়ার অনুমতি দেওয়ার জন্য সুবিধা সরবরাহ করে) একতরফা, তবে এটি এখনও এমন কিছু যা আসলে স্পষ্টভাবে সম্পাদন করা দরকার) needs
চার্লস ডাফি

ভার্চুয়ালবক্স ব্যবহার করে উইন্ডোজের ডকার টুলবক্স সম্পর্কে কীভাবে?
ডিম ক্রাইভ

উত্তর:


111

চার্লস যেমন উল্লেখ করেছেন, ডিফল্টরূপে সমস্ত ব্যবহার করা যেতে পারে বা আপনি --cpuset-cpusপ্যারামিটারটি ব্যবহার করে এটি ধারক প্রতি সীমাবদ্ধ করতে পারেন ।

docker run --cpuset-cpus="0-2" myapp:latest

এটি ধারকটিকে 3 সিপিইউতে সীমাবদ্ধ করবে (0, 1 এবং 2) দেখুন Docker চালানো ডক্স আরো বিস্তারিত জানার জন্য।


ধারকগুলির সিপিইউ ব্যবহার সীমিত করার পছন্দের উপায় হ'ল সিপিইউগুলিতে ভগ্নাংশের সীমা রয়েছে:

docker run --cpus 2.5 myapp:latest

এটি হোস্টের আপনার ধারকটিকে 2.5 কোরের মধ্যে সীমাবদ্ধ করবে।


সবশেষে, আপনি যদি ম্যাকের জন্য ডকার, উইন্ডোজের জন্য ডকার, এবং ডকার-মেশিন সহ কোনও ভিএম এর অভ্যন্তরে ডকার চালনা করেন তবে সেই ভিএম এর আপনার ল্যাপটপ থেকে আলাদা সিপিইউ সীমা থাকবে। ডকার সেই ভিএম এর ভিতরে চলে এবং ভিএমকে দেওয়া সমস্ত সংস্থান নিজেই ব্যবহার করবে। যেমন ম্যাকের জন্য ডকার সহ আপনার নিম্নলিখিত মেনু রয়েছে:

ম্যাক উন্নত সেটিংসের জন্য ডকার


2 সিপিইউ সহ একই ভিএম এ চলমান দুটি ডকার পাত্রগুলি যদি উভয়ই প্রসেস প্রক্রিয়া হয় তবে তাদের কর্মক্ষমতা প্রভাবিত করবে? উভয়ই মোট চারটির জন্য দুটি প্রক্রিয়া তৈরি করে যখন ভিএম-তে কেবল 2 সিপিইউ থাকে?
কোকোপফস

@cocoPuffs আপনি সিপিইউ সীমা নির্ধারণ না করা পর্যন্ত একই রকম হয় যদি আপনি একই হোস্টের একটি ধারকটির বাইরে এই প্রক্রিয়াগুলি চালান। প্রতিটি পাত্রে সিপিইউ সীমা যুক্ত করা একটি কনটেইনারের প্রক্রিয়াগুলিকে নিজের জন্য সমস্ত সিপিইউ সংস্থান ব্যবহার করা থেকে বিরত করতে পারে।
বিএমইচ

সত্যই বিস্তৃত, দুর্দান্ত স্টাফ
দারাগ এনরাট

7

সম্ভবত আপনার হোস্ট ভিএম এর ডিফল্টরূপে একটি কোর রয়েছে। সুতরাং আপনার আপনার ভিএম বাড়ানো উচিত প্রথমে সিপিইউ-কাউন্ট এবং তারপরে আপনার ডকার কোরগুলি বাড়ানোর জন্য --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
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.