কম্পিউটার

একটি ভার্চুয়াল মেশিনের জন্য vCPU এবং কোরের সংখ্যা নির্বাচন করা

বিভিন্ন হাইপারভাইজারে (VMWare, KVM, Hyper-V, ইত্যাদি) ভার্চুয়াল মেশিন তৈরি করার সময়, আপনি দেখতে পারেন যে কখনও কখনও একটি ভার্চুয়াল মেশিন এটিতে নির্ধারিত সমস্ত ভার্চুয়াল প্রসেসর সকেট (vCPU) দেখতে নাও পারে। আমাদের ক্ষেত্রে, একটি কেভিএম ভার্চুয়াল মেশিনে 8টি ভিসিপিইউ বরাদ্দ করা হয়েছিল এবং অতিথি ওএস হিসাবে উইন্ডোজ 10 এটিতে ইনস্টল করা হয়েছিল। যাইহোক, উইন্ডোজ এই ভিসিপিইউগুলিকে পৃথক প্রসেসর হিসাবে সনাক্ত করেছে (কোর নয়) এবং এটি তাদের মধ্যে মাত্র 2টি ব্যবহার করতে পারে।

Windows 10 ভার্চুয়াল মেশিন শুধুমাত্র 2 কোর ব্যবহার করে

আপনি উইন্ডোজ ডিভাইস ম্যানেজার খুললে, আপনি নিশ্চিত করতে পারেন যে সমস্ত বরাদ্দ করা কোর 8টি পৃথক ভার্চুয়াল প্রসেসর হিসাবে দৃশ্যমান QEMU ভার্চুয়াল CPU সংস্করণ 2.5+ .

একটি ভার্চুয়াল মেশিনের জন্য vCPU এবং কোরের সংখ্যা নির্বাচন করা

একই সময়ে, Windows 10 বৈশিষ্ট্য (কম্পিউটার -> বৈশিষ্ট্য) এবং টাস্ক ম্যানেজার দেখায় যে শুধুমাত্র 2টি QEMU ভার্চুয়াল প্রসেসর উপলব্ধ।

একটি ভার্চুয়াল মেশিনের জন্য vCPU এবং কোরের সংখ্যা নির্বাচন করা

এর মানে হল যে Windows 10 শুধুমাত্র 2 কোর ব্যবহার করতে সক্ষম হবে না কেন আপনি তাদের মধ্যে কতগুলি যোগ করবেন। একই সময়ে, একই হাইপারভাইজারে উইন্ডোজ সার্ভার 2016 চালিত একটি ভার্চুয়াল সার্ভার এটিতে বরাদ্দ করা 16টি vCPU দেখতে পারে৷

উইন্ডোজে সমর্থিত প্রসেসরের সংখ্যা

সমস্যা হল যে ডেস্কটপ উইন্ডোজ সংস্করণে (উইন্ডোজ 10/8.1/7) সর্বোচ্চ সংখ্যক শারীরিক প্রসেসর (সকেট) এর উপর সীমাবদ্ধতা রয়েছে একটি কম্পিউটার ব্যবহার করতে পারে:

  • Windows 10 Home – 1 CPU
  • Windows 10 Professional – 2 CPU
  • Windows 10 ওয়ার্কস্টেশন – 4 CPU পর্যন্ত
  • Windows Server 2016 – 64 CPU পর্যন্ত

যাইহোক, এই সীমাবদ্ধতা কোরের সংখ্যার সাথে সম্পর্কিত নয়। আপনার ভার্চুয়াল মেশিনের কর্মক্ষমতা উন্নত করার জন্য, আপনি আরও কোর সহ একটি প্রসেসর ব্যবহার করতে পারেন . বেশিরভাগ হাইপারভাইজার প্রসেসর, প্রসেসর কোর বা এমনকি থ্রেড হিসাবে ভিসিপিইউ সরবরাহ করতে পারে। এর মানে হল 8টি vCPU-এর পরিবর্তে, আপনি প্রতি সকেটে 4টি সহ 2টি vCPU (2 সকেট) যোগ করতে পারেন। চলুন দেখি কিভাবে ভার্চুয়াল প্রসেসরকে বিভিন্ন হাইপারভাইজারে কোর হিসেবে বরাদ্দ করা যায় এবং আধুনিক প্রসেসরে ব্যবহৃত NUMA আর্কিটেকচারের সাথে এটিকে কিভাবে আবদ্ধ করা যায়।

KVM-এ ভার্চুয়াল কোর এবং vCPU ম্যানেজ করা

আমার KVM ভার্চুয়াল মেশিনে Windows 10 চলছে , সমস্ত নির্ধারিত ভার্চুয়াল কোর আলাদা প্রসেসর হিসাবে বিবেচিত হয়।

একটি ভার্চুয়াল মেশিনে বরাদ্দকৃত সমস্ত CPU সম্পদ ব্যবহার করতে, এটি অবশ্যই একটি 8 কোর প্রসেসর দেখতে হবে, 8টি vCPU-এর পরিবর্তে দুটি থ্রেডে 4 কোর সহ 4টি প্রতিটি কোর সহ 2টি vCPU বা 1টি vCPU দেখতে হবে৷ চলুন KVM ভার্চুয়াল মেশিনের জন্য ভার্চুয়াল কোরের বরাদ্দ পরিবর্তন করার চেষ্টা করি।

আপনার ভার্চুয়াল মেশিন বন্ধ করুন:

# virsh shutdown w10testvm – যেখানে w10testvm আপনার ভার্চুয়াল মেশিনের নাম

এখানে virsh ব্যবহার করে কনসোল থেকে KVM ভার্চুয়াল মেশিন পরিচালনার দিকগুলি রয়েছে .

KVM ভার্চুয়াল মেশিনের বর্তমান XML কনফিগারেশন প্রদর্শন করুন:

# virsh dumpxml w10testvm

VM CPU সেটিংস বর্ণনা করার জন্য আমাদের একটি ব্লক প্রয়োজন:

<vcpu placement='static'>8</vcpu>
<cputune>
<shares>1000</shares>
</cputune>
<resource>
<partition>/machine</partition>
</resource>
<os>
<type arch='x86_64' machine='pc-i440fx-rhel7.6.0'>hvm</type>
<bootmenu enable='yes'/>
</os>
<features>
<acpi/>
<apic/>
<pae/>
</features>

আপনি দেখতে পাচ্ছেন, এখানে 8টি vCPU সেট করা আছে। কনফিগারেশন পরিবর্তন করা যাক:

# virsh edit w10testvm

পরে নিম্নলিখিত ব্লক যোগ করুন :

<cpu mode='host-passthrough' check='none'>
<topology sockets='1' cores='4' threads='2'/>
</cpu>

কোথায়:

  • host-passthrough ইমুলেশন মোড যেখানে ভার্চুয়াল মেশিন ক্লাস্টার নোডের ফিজিক্যাল প্রসেসর দেখে
  • sockets='1' নির্দেশ করে যে একটি vCPU (সকেট)
  • আছে
  • cores='4' প্রসেসরে প্রতি সকেটে 4টি কোর রয়েছে
  • threads='2' অর্থাৎ প্রতিটি কোরে 2টি থ্রেড আছে

কনফিগারেশন ফাইলটি সংরক্ষণ করুন এবং ভার্চুয়াল মেশিন শুরু করুন। Windows 10 গেস্ট ভিএম-এ লগ ইন করুন, টাস্ক ম্যানেজার বা রিসোর্স মনিটর চালান এবং নিশ্চিত করুন যে Windows সমস্ত বরাদ্দকৃত ভার্চুয়াল কোর দেখতে পাচ্ছে৷

একটি ভার্চুয়াল মেশিনের জন্য vCPU এবং কোরের সংখ্যা নির্বাচন করা

হোস্টের একটি ফিজিক্যাল প্রসেসর, Intel(R) Xeon(R) Silver 4114 CPU , এখন সিস্টেম বৈশিষ্ট্যে ভার্চুয়ালের পরিবর্তে প্রদর্শিত হয়৷

একটি ভার্চুয়াল মেশিনের জন্য vCPU এবং কোরের সংখ্যা নির্বাচন করা

এখানে আমরা কীভাবে VM-এর জন্য ভারী লোড সমস্যাটি সমাধান করতে পেরেছি কারণ দুটি কোর অ্যাপগুলি সঠিকভাবে কাজ করার জন্য যথেষ্ট ছিল না৷

একটি VMWare VM এর জন্য প্রতি vCPU কোরের সংখ্যা সেট করা

আপনি vSphere ক্লায়েন্ট ইন্টারফেসে একটি VMWare ভার্চুয়াল মেশিনের জন্য vCPU উপস্থাপনার উপায় পরিবর্তন করতে পারেন৷

  1. VM বন্ধ করুন এবং সেটিংস খুলুন;
  2. CPU প্রসারিত করুন বিভাগ;
  3. ভিএম কনফিগারেশন পরিবর্তন করুন যাতে গেস্ট ওএস প্রতিটি 4টি কোর সহ 2টি প্রসেসর দেখতে পারে। সকেট প্রতি কোর মান পরিবর্তন করুন 4 থেকে . এর মানে হল গেস্ট ওএস দুটি 4-কোর CPU দেখতে পাবে (প্রতি সকেটে 4 কোর সহ 2 সকেট); একটি ভার্চুয়াল মেশিনের জন্য vCPU এবং কোরের সংখ্যা নির্বাচন করা
  4. পরিবর্তনগুলি সংরক্ষণ করুন এবং VM চালান৷

ভার্চুয়াল মেশিন vCPU এবং NUMA আর্কিটেকচার

ভার্চুয়াল মেশিনে ভিসিপিইউ এবং কোর বরাদ্দ করার আরও কিছু দিক রয়েছে যা আপনাকে অবশ্যই বুঝতে হবে।

প্রতি সকেটের কোরের সংখ্যা নির্ধারণ করার সময়, আপনার NUMA আর্কিটেকচার আছে কিনা তা নিশ্চিত করুন (বেশিরভাগ আধুনিক CPU-তে ব্যবহৃত)। আপনার ফিজিক্যাল সকেটে (NUMA নোড) উপলব্ধ কোরের সংখ্যার চেয়ে একটি VM-তে প্রতি সকেটের বেশি কোর (এবং vCPU-এর মোট সংখ্যা) নির্ধারণ করার পরামর্শ দেওয়া হয় না। একটি একক শারীরিক NUMA নোডে রাখা হলে, একটি ভার্চুয়াল মেশিন নির্দিষ্ট NUMA নোডে উপলব্ধ দ্রুত স্থানীয় RAM ব্যবহার করতে সক্ষম হবে। অন্যথায়, প্রক্রিয়াগুলিকে অন্য NUMA নোড থেকে প্রতিক্রিয়ার জন্য অপেক্ষা করতে হবে (যা বেশি সময় নেয়)।

আপনি যদি একটি VM-এ দুটি পৃথক ভার্চুয়াল সকেট বরাদ্দ করেন, হাইপারভাইজার সেগুলিকে বিভিন্ন NUMA নোডে চালাতে পারে। এটি VM কর্মক্ষমতা প্রভাবিত করবে৷

যদি প্রয়োজনীয় vCPU-র সংখ্যা 1টি ফিজিক্যাল সকেটে (NUMA নোড) কোরের সংখ্যার চেয়ে বেশি হয়, তাহলে প্রয়োজনীয় সংখ্যক কোর সহ বেশ কয়েকটি ভার্চুয়াল সকেট (প্রসেসর) তৈরি করুন। এছাড়াও এটি একটি বিজোড় সংখ্যক প্রসেসর ব্যবহার করার পরামর্শ দেওয়া হয় না (1 vCPU যোগ করা ভাল)।

এটি ভার্চুয়াল মেশিনের কর্মক্ষমতা বজায় রাখার অনুমতি দেয়।

একটি ভার্চুয়াল মেশিনের জন্য vCPU এবং কোরের সংখ্যা নির্বাচন করা

উদাহরণস্বরূপ, প্রতি সকেটে 10 কোর সহ একটি 2-প্রসেসর হোস্টের জন্য নিম্নলিখিত কনফিগারেশন ব্যবহার করার পরামর্শ দেওয়া হয় (হাইপার সহ মোট 40টি vCPU পাওয়া যায় —থ্রেডিং ) যখন আপনি একটি VM এর জন্য vCPUs কনফিগার করেন:

vCPU নম্বর প্রয়োজন VM সেটিংসে ভার্চুয়াল সকেটের সংখ্যা ভিএম সেটিংসে একটি ভার্চুয়াল প্রসেসর প্রতি কোরের সংখ্যা
1 1 1
……
10 1 10
11 অনুকূল নয়
12 2 6
……
20 2 10
একটি বিনামূল্যের ESXi সংস্করণে আপনি 8টির বেশি vCPU সহ একটি VM তৈরি করতে পারবেন না।

উদাহরণস্বরূপ, 16 vCPU সহ একটি VM চলমান Microsoft SQL সার্ভার 2016 এন্টারপ্রাইজ সংস্করণ (প্রতি সকেটে 2 কোর সহ 8 সকেটের কনফিগারেশনে ) প্রতি সকেট 2 সকেট x 8 কোর সহ একটি VM-এর কার্যক্ষমতা আরও খারাপ হবে .
এছাড়াও মনে রাখবেন যে কিছু অ্যাপ্লিকেশানগুলি ফিজিক্যাল সকেটের সংখ্যার উপর নির্ভর করে লাইসেন্স করা হয় (যেমন এটি আগের SQL সার্ভার সংস্করণে ছিল)। কখনও কখনও কম সংখ্যক কোর সহ একাধিক প্রসেসরের চেয়ে একটি মাল্টিকোর প্রসেসর লাইসেন্স করা বেশি লাভজনক।

আধুনিক উইন্ডোজ সার্ভার সংস্করণগুলি ভার্চুয়াল পরিবেশে একটি বিশেষ উপায়ে লাইসেন্সপ্রাপ্ত। এছাড়াও VMWare vSphere-এ প্রসেসর লাইসেন্সিংয়ের কিছু দিক রয়েছে।


  1. উইন্ডোজ 10-এ জাভা ভার্চুয়াল মেশিন তৈরি করা যায়নি

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

  3. Mozilla Firefox এখন Windows 10 এবং 11 এর জন্য Microsoft স্টোরে উপলব্ধ

  4. 10 সেরা ভার্চুয়াল মেশিন সফ্টওয়্যার Windows PC (2022)