আধুনিক ভার্চুয়াল মেশিনে গ্রাফিক্স পারফরম্যান্স কীভাবে উন্নত করা যায়

  • ভার্চুয়ালাইজেশনের ফলে সিপিইউ এবং র‍্যামের পারফরম্যান্সে সামান্য ঘাটতি দেখা যায়, কিন্তু এর প্রভাব সাধারণত স্টোরেজ এবং গ্রাফিক্সের উপর বেশি পড়ে, বিশেষ করে রিমোট ডেস্কটপের ক্ষেত্রে।
  • ভিএম-এর গ্রাফিক্স অভিজ্ঞতা জিপিইউ, সিপিইউ, মেমরি, ডিস্ক আই/ও, নেটওয়ার্ক এবং ব্যবহৃত রিমোট ডেস্কটপ প্রোটোকলের উপর নির্ভর করে।
  • SR-IOV এবং GPU passthrough উন্নততর গ্রাফিক্স পারফরম্যান্স প্রদান করে, কিন্তু জটিলতা ও খরচ বাড়িয়ে দেয়; KVM/Proxmox পরিবেশে virtio-gpu, SPICE, এবং virgl হলো বাস্তবসম্মত বিকল্প।
  • গ্রাফিক্সের কাজের জন্য ভার্চুয়াল মেশিন (VM) বা ফিজিক্যাল সার্ভারের মধ্যে কোনটি বেছে নেবেন, তার জন্য স্ট্রেস টেস্টিং এবং বাধাগুলো সূক্ষ্মভাবে সমন্বয় করার প্রয়োজন হয় এবং সেই অনুযায়ী হার্ডওয়্যার ও হাইপারভাইজর সামঞ্জস্য করতে হয়।

ভার্চুয়াল মেশিনে গ্রাফিক্স পারফরম্যান্স

যখন আপনি আধুনিক ভার্চুয়ালাইজেশন নিয়ে গুরুত্ব সহকারে কাজ শুরু করেন, তখন শীঘ্রই বা দেরিতে আপনি একটি পুনরাবৃত্তিমূলক সমস্যার সম্মুখীন হন: ভার্চুয়াল মেশিনগুলো খুব কমই হার্ডওয়্যারে সরাসরি ইনস্টল করা অপারেটিং সিস্টেমের মতো একই গ্রাফিক্স পারফরম্যান্স প্রদান করে।যদিও হোস্ট ডেস্কটপ 4K রেজোলিউশনেও মসৃণভাবে চলতে পারে, ভিএম ডেস্কটপটি খাপছাড়া হতে পারে, যেখানে মাউস ল্যাগ, স্ক্রিন টিয়ারিং দেখা যেতে পারে, অথবা ভিডিওগুলো যতটা মসৃণভাবে চলার কথা ততটা নাও চলতে পারে।

এই দৃশ্যপট গার্হস্থ্য পরিবেশে এবং উভয় ক্ষেত্রেই পুনরাবৃত্ত হয়। এন্টারপ্রাইজ প্ল্যাটফর্মগুলো, যেগুলো KVM, Proxmox, VMware, Hyper-V বা পাবলিক ক্লাউড ব্যবহার করে।এবং অনুভূতিটা একই: "হোস্টটি একদম ঠিকঠাক কাজ করছে, কিন্তু ভিএম-টা ধীরগতির... আমি কী ভুল করছি? আমার কি একটি ডেডিকেটেড জিপিইউ, এসআর-আইওভি, হাইপারভাইজর পরিবর্তন, নাকি কেবল আরও বেশি সিপিইউ পাওয়ার প্রয়োজন?"

ভিএম-এ গ্রাফিক্স পারফরম্যান্স: আপনি আসলে কী আশা করতে পারেন

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

একটি সাধারণ ক্ষেত্রে কেভিএম-এর মাধ্যমে হোস্ট হিসেবে ডেবিয়ান ১২, রেডিয়ন আইজিপিইউ এবং ৪কে ডিসপ্লে সহ রাইজেন ৭ প্রো ল্যাপটপফিজিক্যাল ডেস্কটপটি পুরোপুরি ঠিকঠাক কাজ করে: উইন্ডো সরানো তাৎক্ষণিক, ওয়েবসাইট দ্রুত লোড হয় এবং 4K ইউটিউব মসৃণভাবে চলে। তবে, ভার্চুও (virtio) বা স্পাইস (SPICE) গ্রাফিক্সযুক্ত লিনাক্স ভিএম-গুলোতে পারফরম্যান্স কমে যায়: ভারী ওয়েব পেজ এবং অনলাইন ভিডিওতে বেশি ল্যাগ হয়, এবং এর মসৃণতা হোস্টের মতো ভালো নয়।.

বিভিন্ন কনফিগারেশন (VirtIO-GPU ড্রাইভার, SPICE, virgl, বিভিন্ন রিমোট ভিউয়ার যেমন virt-viewer, উইন্ডোজ ক্লায়েন্ট, ইত্যাদি) পরীক্ষা করার সময় দেখা যায় যে পয়েন্টার এবং সামগ্রিক রেসপন্সিভনেস কিছুটা উন্নত হয়েছে, কিন্তু স্ক্রিন টিয়ারিং, ফ্রেম ড্রপ এবং ডেস্কটপের প্রাণবন্ত ভাবের অভাবের মতো সমস্যাগুলো এখনও রয়ে গেছে।এর ফলে অনেকেই সঙ্গে সঙ্গে জিপিইউ পাসথ্রু করার কথা ভাবেন। এমনকি প্ল্যাটফর্ম পরিবর্তন করার কথাও।

এটা বোঝা গুরুত্বপূর্ণ যে, এমনকি শক্তিশালী অবকাঠামোতেও, ভার্চুয়ালাইজেশনের ফলে সিপিইউ, র‍্যাম এবং বিশেষ করে ডিস্ক আই/ও ও গ্রাফিক্সের উপর সামান্য অতিরিক্ত চাপ সৃষ্টি হয়।প্রচলিত সার্ভার লোডের (ওয়েব, ডেটাবেস, মাইক্রোসার্ভিস) ক্ষেত্রে এই ঘাটতি গ্রহণযোগ্য; কিন্তু যখন আপনি প্রশ্ন করতে শুরু করেন চমৎকার গ্রাফিক ইন্টারঅ্যাক্টিভিটি, কম ল্যাটেন্সি এবং মসৃণ ভিডিওপ্রতিটি মিলিসেকেন্ড মূল্যবান।

আধুনিক ভার্চুয়াল মেশিনে গ্রাফিক্স পারফরম্যান্স কীভাবে উন্নত করা যায়

ভার্চুয়াল মেশিন বনাম ফিজিক্যাল সার্ভার: পারফরম্যান্সের উপর প্রকৃত প্রভাব

যদিও আমরা এখানে গ্রাফিক্সের উপর মনোযোগ দিচ্ছি, ভার্চুয়ালাইজেশনকে তার প্রেক্ষাপটে স্থাপন করাটা জরুরি। যখন আপনি সেরা পারফরম্যান্স এবং ন্যূনতম ল্যাটেন্সি খুঁজছেন, তখন ফিজিক্যাল (বেয়ার মেটাল) সার্ভারই ​​মানদণ্ড হিসেবে বিবেচিত হয়।বিশেষ করে উচ্চ-ক্ষমতাসম্পন্ন ডেটাবেস, 3D রেন্ডারিং, এআই, বা রিয়েল-টাইম স্ট্রিমিং-এর ক্ষেত্রে।

সাধারণ বেঞ্চমার্ক পরীক্ষাগুলিতে দেখা যায় যে, KVM বা VMware-এ একটি ভালোভাবে কনফিগার করা VM, CPU এবং RAM-এর ক্ষেত্রে প্রায় বেয়ার মেটালের মতোই পারফর্ম করে: সিপিইউ-তে আনুমানিক ৫-৮% এবং মেমরিতে ৭-১৩% ক্ষতি।সবচেয়ে বড় ঘাটতিটি হলো স্টোরেজে। 4K IOPS ১৭-২৫% পর্যন্ত কমে যেতে পারে, যা অত্যন্ত গুরুত্বপূর্ণ যদি আপনার ওয়ার্কলোড খুব বেশি ডিস্ক-নির্ভর হয়।

এই সীমাবদ্ধতা গ্রাফিক ডিজাইনেও বিদ্যমান, এই সূক্ষ্মতার সাথে যে জিপিইউ সাধারণত একাধিক ভিএম-এর সাথে রিসোর্স শেয়ার করে, এবং প্রেজেন্টেশন পাথ (যেমন SPICE, VNC, RDP, হাইপারভাইজরের নিজস্ব প্রোটোকল ইত্যাদি) ল্যাটেন্সি ও কম্প্রেশন যোগ করে।ফলাফল হলো: সিস্টেমটি "অব্যবহারযোগ্য নয়," কিন্তু হোস্টের সাথে তুলনা করলে এটি কম মসৃণ মনে হয়।

এই কারণেই এমন কিছু পরিস্থিতি আছে যেখানে খালি ধাতব কাঠামো ব্যবহার করাই লাভজনক: বৃহৎ লেনদেনমূলক ডেটাবেস (ওরাকল, এসকিউএল সার্ভার এন্টারপ্রাইজ, এসএপি হানা), শক্তিশালী জিপিইউ সহ এআই/এমএল ইঞ্জিন, অথবা গেম/স্ট্রিমিং সার্ভার অত্যন্ত কঠোর ল্যাটেন্সি প্রয়োজনীয়তার ক্ষেত্রে, ভার্চুয়ালাইজেশন লেয়ারের সিপিইউ, মেমরি, আই/ও এবং জিপিইউ ওভারহেড অনেক বেশি লক্ষণীয় হয়ে ওঠে।

এর পরিবর্তে, ওয়েব অ্যাপ্লিকেশন, মাইক্রোসার্ভিস, ডেভেলপমেন্ট এনভায়রনমেন্ট এবং ভার্চুয়াল অফিস ডেস্কটপ এমনকি একটি উবুন্টুতে হালকা ডেস্কটপএগুলো ভিএম-এ খুব ভালোভাবে খাপ খায়। এগুলো স্ন্যাপশট, হাই অ্যাভেইলেবিলিটি এবং ফাস্ট স্কেলিং-এর সুবিধা দেয়, এবং পারফরম্যান্সে সামান্য ঘাটতি পুরোপুরি গ্রহণযোগ্য।

সিপিইউ, র‍্যাম, ডিস্ক এবং নেটওয়ার্ক: একটি ধীরগতির ভিএম-এর ক্ষেত্রে কোন মেট্রিকগুলো খতিয়ে দেখা উচিত

জিপিইউ-কে দোষারোপ করার আগে, আমাদের নিশ্চিত করতে হবে যে আপনি সিপিইউ, মেমরি, ডিস্ক বা নেটওয়ার্ক দ্বারা সীমাবদ্ধ নন।অনেক "ধীরগতির ডেস্কটপ" সমস্যার মূল কারণ হলো অন্য কোনো রিসোর্সের অতিরিক্ত ব্যবহার, যেমন—সিপিইউ তার পালা আসার জন্য অপেক্ষা করা, অতিরিক্ত সোয়াপ ব্যবহার, অথবা ডিস্কের কার্যক্ষমতার শেষ সীমায় পৌঁছে যাওয়া।

উদাহরণস্বরূপ, VMware vSphere-এ প্রতিটি vCPU-এর সিপিইউ চারটি অবস্থার মধ্য দিয়ে যায়: RUN (কার্যরত), WAIT (অপেক্ষারত/I/O বা নিষ্ক্রিয়), READY (ফিজিক্যাল সিপিইউ ছাড়া কিউতে থাকা) এবং COSTOP (মাল্টি-কোর ভিএম-এ কো-স্টপ)উচ্চ READY বা COSTOP মানগুলো স্পষ্ট ইঙ্গিত দেয় যে হোস্টটিতে প্রতিযোগিতা চলছে এবং এটি ওভার-সাবস্ক্রাইবড।

সিপিইউ-এর ক্ষেত্রে মূল মেট্রিকগুলো হলো স্থিতিশীল ব্যবহারের শতাংশ, প্রতি vCPU-তে মেগাহার্টজ ব্যবহার, এবং রেডি/কস্টপ কাউন্টারযদি কোনো ভিএম ক্রমাগত ৯০-১০০% ব্যবহৃত হয়, অথবা ১০%-এর বেশি সময় ধরে READY অবস্থায় থাকে, তাহলে বুঝতে হবে মেশিনটি হিমশিম খাচ্ছে। হোস্ট যদি আগে থেকেই লোডের মধ্যে থাকে, তবে যথেচ্ছভাবে আরও vCPU যোগ করলে প্রায় কখনোই কোনো লাভ হয় না।

স্মৃতিতে, আমাদের অবশ্যই নজর রাখতে হবে বৈশ্বিক ব্যবহারের মধ্যে পেজিং/সোয়াপ এবং অ্যাজুর বা হাইপার-ভি-এর মতো প্ল্যাটফর্মে সেকেন্ডারি ডিস্কের পেজিং বা সোয়াপ ফাইল অন্তর্ভুক্ত।যখন ওই ভলিউমগুলোতে প্রচুর রিড/রাইট দেখা যায়, তখন এটি একটি স্পষ্ট লক্ষণ যে ভিএম-এর র‍্যাম শেষ হয়ে গেছে।

ডিস্ক এবং নেটওয়ার্কে নিম্নলিখিত বিষয়গুলো পরিলক্ষিত হয়: গড় রিড/রাইট লেটেন্সি, IOPS, এবং নেটওয়ার্ক ব্যান্ডউইথডিস্কে ১৫-২০ মিলিসেকেন্ডের বেশি সময় ধরে ল্যাটেন্সি অথবা রিমোট স্টোরেজে (অ্যাজুর স্টোরেজ, স্যান, ইত্যাদি) প্রাপ্যতা কমে যাওয়া এবং টাইমআউট হওয়া, রিমোট ডেস্কটপের অনুভূত পারফরম্যান্সের সরাসরি শত্রু।

অ্যাজুর মনিটর

মনিটরিং এবং ডায়াগনস্টিক টুলস: ESXTOP থেকে Azure Monitor পর্যন্ত

প্রধান নির্মাতারা একটি ভিএম-এর পারফরম্যান্স বিশ্লেষণ করার জন্য উন্নত সরঞ্জাম সরবরাহ করে। কয়েকটি উদাহরণ:

  • ভিএমওয়্যার: ভিসেন্টার এবং ইএসএক্সটপ।
  • অ্যাজুর: অ্যাজুর মনিটর এবং পারফইনসাইটস।
  • হাইপার-ভি: পারফরম্যান্স মনিটর এবং পাওয়ারশেল।
  • KVM/Proxmox: top, htop, iostat, virt-top-এর মতো বিভিন্ন সংমিশ্রণ এবং স্বয়ং ওয়েব ইন্টারফেস।.

রিয়েল-টাইম বিশ্লেষণের জন্য ESXTOP একটি ক্লাসিক। এটি আপনাকে প্রতি কয়েক সেকেন্ডে vCPU অনুযায়ী মেট্রিক দেখতে দেয়, যেমন— %ব্যবহৃত, %চলমান, %সিস্টেম, %অপেক্ষারত, %নিষ্ক্রিয়, %কার্যকর, %ধারিত, %মানানসই এবং আরও অনেক কিছু। মূল নিয়মটি হলো: যদি %RDY বা %CSTP হঠাৎ বেড়ে যায়, তার মানে হোস্টের তুলনায় আপনার vCPU বা VM অনেক বেশি।

Azure-এ, VM এবং স্টোরেজ অ্যাকাউন্ট স্তরে ডায়াগনস্টিকস সক্রিয় করলে আপনি চার্ট পাবেন সিপিইউ, মেমরি, ডিস্ক এবং নেটওয়ার্কএর সাথে প্রাপ্যতা, লেটেন্সি, থ্রটলিং এবং স্টোরেজ টাইমআউট ত্রুটির মেট্রিক্সও থাকে। এই তথ্য একটি প্ল্যাটফর্ম সমস্যা এবং অতিরিক্ত IOPS বা থ্রুপুটের কারণে আপনার প্রান্তের প্রতিবন্ধকতার মধ্যে পার্থক্য করতে সাহায্য করে।

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

প্রস্তুতকারকের বাইরেও, অনেক নির্দেশিকা চালানোর পরামর্শ দেয়। নির্দিষ্ট চাপ পরীক্ষাসিপিইউ-এর জন্য sysbench, র‍্যামের জন্য stress-ng ও memtester, ডিস্ক আই/ও-এর জন্য fio, এবং নেটওয়ার্কের জন্য iperf3 বা netperf। এর মাধ্যমে আপনি সহজেই বেয়ার মেটাল বনাম ভিএম-এর তুলনা করতে এবং প্রতিটি হাইপারভাইজরের সীমাবদ্ধতা দেখতে পারবেন।

জিপিইউ ভার্চুয়ালাইজেশন: এসআর-আইওভি, পাসথ্রু এবং মালিকানাধীন সমাধানসমূহ

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

  • জিপিইউ পাসথ্রু (পিসিআই পাসথ্রু)একটি সম্পূর্ণ গ্রাফিক্স কার্ড একটিমাত্র ভিএম-এর জন্য বরাদ্দ করা হয়। এর ফলে প্রায় নেটিভ পারফরম্যান্স পাওয়া যায়, কিন্তু এর কিছু সুস্পষ্ট সীমাবদ্ধতা রয়েছে: সেই জিপিইউটি হোস্ট এবং অন্যান্য ভিএম-এর জন্য অনুপলব্ধ হয়ে পড়ে, এবং সাধারণত সেই ভিএম-টির জন্য একটি ডেডিকেটেড ভিডিও আউটপুটের প্রয়োজন হয়, যা সবকিছু একই স্ক্রিনে দেখতে চাইলে আদর্শ নয়।
  • SR-IOV (সিঙ্গেল রুট আই/ও ভার্চুয়ালাইজেশন) দ্বারা জিপিইউ ভার্চুয়ালাইজেশনএটি বিভিন্ন ভিএম-এর কাছে ভার্চুয়াল জিপিইউ ফাংশন (ভিএফ) উন্মুক্ত করার সুযোগ দেয়। ধারণাটি খুবই আকর্ষণীয়: ন্যূনতম ওভারহেড সহ গ্রাফিক্স হার্ডওয়্যার শেয়ার করা। ইন্টেল তাদের ল্যাপটপের জন্য তৈরি Xe2 iGPU-তে (যেমন লুনার লেক) এবং ডেটা সেন্টারের জিপিইউ-তে (ফ্লেক্স) এই পদ্ধতিটিকে উৎসাহিত করছে, অন্যদিকে এএমডি এবং এনভিডিয়া মূলত এই ফিচারটি নিজেদের জন্য সংরক্ষিত রাখছে। খুব দামী বিজনেস কার্ড এর পাশাপাশি, প্রায়শই এমন লাইসেন্সিং এবং সাবস্ক্রিপশন মডেল থাকে যা বাড়ির ব্যবহারকারী বা ছোট ব্যবসার জন্য খুব একটা ব্যবহার-বান্ধব নয়।
  • এসআর-আইওভিএই সমাধান এটি ভিএম-এর কাছে পুরোপুরি স্বচ্ছ নয়, এর জন্য নির্দিষ্ট ড্রাইভার, বায়োস/ফার্মওয়্যার ও হাইপারভাইজরের সমর্থন প্রয়োজন হয় এবং এটি নিজস্ব সামঞ্জস্যজনিত সমস্যাও তৈরি করতে পারে।আপনার কাজের বাকি অংশ যদি অন্যান্য কারণের জন্য সীমাবদ্ধ থাকে, তবে সব হার্ডওয়্যার আপগ্রেড করা (যেমন, শুধু এর জন্য একটি ইন্টেল লুনার লেক ল্যাপটপ কেনা) সবসময় লাভজনক নয়। একটি ভালো পিসি হার্ডওয়্যার বিশ্লেষণ সিদ্ধান্ত নিতে সাহায্য করে।
  • মালিকানাধীন জিপিইউ ভার্চুয়ালাইজেশন সমাধানযেমন এনভিডিয়া আরটিএক্স ভিডব্লিউএস, এনভিডিয়া ভিজিএক্স, বা এদের পরবর্তী সংস্করণ। এগুলো নির্দিষ্ট হার্ডওয়্যারকে (উদাহরণস্বরূপ, একাধিক কেপলার জিপিইউ, বিপুল পরিমাণ জিডিডিআর৫ মেমরি এবং হাজার হাজার কুডা কোর সহ ভিজিএক্স কে১/কে২ ধরনের কার্ড) একটি জিপিইউ হাইপারভাইজরের সাথে একত্রিত করে, যা কয়েক ডজন ভার্চুয়াল ডেস্কটপের মধ্যে গ্রাফিক্স কম্পিউটিং ক্ষমতাকে মাল্টিপ্লেক্স করার সুযোগ দেয়।

QEMU দ্বারা

ডেস্কটপ পরিবেশে আংশিক জিপিইউ প্রযুক্তিসমূহ: ভার্চিও-জিপিইউ, ভার্গল, এবং স্পাইস

যারা KVM, QEMU, Proxmox বা অনুরূপ কিছু ব্যবহার করেন, তাদের জন্য সাধারণ পথটি হলো... ভার্চিও-জিপিইউ-এর মতো প্যারাভার্চুয়ালাইজড গ্রাফিক্স কন্ট্রোলার, স্পাইস (SPICE)-এর মতো রিমোট ডেস্কটপ প্রোটোকলের সাথে মিলিত হয়েগেস্ট সাইডে একটি ড্রাইভার ইনস্টল করা হয়, যা ওই ভার্চুয়াল ডিভাইসটিকে "বুঝতে পারে" এবং একটি নির্দিষ্ট স্তরের মৌলিক ২ডি/৩ডি অ্যাক্সিলারেশন অনুমোদন করে।

VirGL হলো একটি অতিরিক্ত স্তর যা গেস্ট থেকে হোস্ট জিপিইউ-তে OpenGL কল অনুবাদ করেএইভাবে, ভিএম-এর ভেতরের একটি অ্যাপ্লিকেশন পরোক্ষভাবে আসল ৩ডি অ্যাক্সিলারেশন ব্যবহার করে। তত্ত্বগতভাবে, এর ফলে ডেস্কটপ এবং অ্যাপগুলোর গ্রাফিক্স পারফরম্যান্স উন্নত হওয়ার কথা। তবে, বাস্তবে কখনও কখনও এর বিপরীতটাই ঘটে। যদি হোস্টের আইজিপিইউ (iGPU) কম শক্তিশালী হয় অথবা এর বাস্তবায়ন নিখুঁত না হয়, তবে পারফরম্যান্সে একটি উল্লেখযোগ্য ঘাটতি চোখে পড়ে।

প্রকৃতপক্ষে, AMD iGPU (উদাহরণস্বরূপ, Renoir) ব্যবহারকারী অনেকেই জানান যে, যখন তাঁরা VirGL সক্রিয় করেন, তখন ভিএম ডেস্কটপটি অনেক বেশি ধীর এবং ভারী হয়ে যায়।এমনকি এটি 'জিপিইউ ছাড়া' Virtio-GPU ব্যবহারের চেয়েও খারাপ। এর মানে এই নয় যে VirGL অকেজো, তবে এটি মূলত সমন্বয়ের উপর ব্যাপকভাবে নির্ভর করে। হার্ডওয়্যার + ড্রাইভার + ভিএম গ্রাফিক্স লোড.

প্রক্সমক্সে, ত্রয়ী ভার্চিও-জিপিইউ + স্পাইস + ভার্চ-ভিউয়ার এটি সাধারণত একটি গ্রাফিক্যাল লিনাক্স ডেস্কটপের জন্য সর্বনিম্ন যুক্তিসঙ্গত কনফিগারেশন। এটি একটি ভালো মাউস পয়েন্টার, উইন্ডো রিসাইজিং এবং সাধারণ VNC-এর চেয়ে উন্নত ইমেজ কম্প্রেশনের সুবিধা দেয়, কিন্তু তবুও... VMware ESXi রিমোট কনসোল বা VMRC-এর মতো একই অভিজ্ঞতা আশা করবেন না।যেগুলো বছরের পর বছর ধরে অপ্টিমাইজেশনের পর অত্যন্ত পরিমার্জিত হয়েছে।

এই কারণেই ESXi থেকে আসা অনেক প্রশাসক Proxmox ব্যবহার করে অবাক হন। অত্যন্ত শক্তিশালী একটি হাইপারভাইজর থাকা সত্ত্বেও, রিমোট ডেস্কটপের দ্রুততার অনুভূতি কম যদি না আপনি অনেক সূক্ষ্ম সমন্বয় করেন বা একটি ডেডিকেটেড জিপিইউ ব্যবহার করেন।

কখন জিপিইউ পাসথ্রু লাভজনক, এবং কখন নয়?

একটি নির্দিষ্ট ভিএম-এর জন্য জিপিইউ পাসথ্রু এখনও সেরা পারফর্মিং অপশন। তবে, দৈনন্দিন ডেস্কটপ ব্যবহারের ক্ষেত্রে এর বেশ কিছু অসুবিধা রয়েছে। উদাহরণস্বরূপ, আরেকটি মনিটর ইনপুটের প্রয়োজন, হোস্টের জিপিইউ (GPU) বিকল হওয়া, অতিরিক্ত জটিলতা (আইওএমএমইউ (IOMMU), গ্রুপ, বায়োস (BIOS), ড্রাইভার, সাসপেন্ড সংক্রান্ত বাগ ইত্যাদি)।.

যদি তোমার লক্ষ্য হয় যে একটি একক ভিএম-এ সম্পূর্ণ 3D ত্বরণ রয়েছে।এই প্রচেষ্টা সাধারণত সার্থক হয়। লুকিং গ্লাসের মতো প্রজেক্টগুলো আপনাকে অতিরিক্ত মনিটর এড়ানোর জন্য হোস্ট ডেস্কটপে ভিএম ইমেজ 'পুনরায় প্রবেশ করানোর' সুযোগ দেয়। কিন্তু, আপনি যদি চান ভালো মৌলিক দক্ষতা সহ বেশ কয়েকটি অফিস বা টেস্টিং ভিএম।প্রত্যেকটিতে একটি করে জিপিইউ স্থানান্তর করা সম্ভব নয়।

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

ল্যাপটপের ক্ষেত্রে বিষয়গুলো আরও জটিল হয়ে যায়। সেগুলোতে সাধারণত থাকে একটি একক iGPU (অথবা iGPU + dGPU যা ফার্মওয়্যারের সাথে নিবিড়ভাবে সমন্বিত)সীমিত রিসোর্স এবং আরেকটি গ্রাফিক্স কার্ড ইনস্টল করার কোনো বাস্তব সম্ভাবনা না থাকলে, পাসথ্রু খুব কমই লাভজনক হয়। এর চেয়ে প্যারাভার্চুয়ালাইজড অপশন (যেমন ভার্চিও-জিপিইউ, স্পাইস, আরডিপি) ব্যবহার করে ভিএমগুলোর গ্রাফিক্সের ওপর চাপ কমানোই বেশি যুক্তিযুক্ত।

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

হাইপারভাইজর, NUMA, ডাইনামিক মেমরি এবং অন্যান্য পারফরম্যান্স ফ্যাক্টর

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

উদাহরণস্বরূপ, হাইপার-ভি আর্কিটেকচারটি একটির উপর ভিত্তি করে তৈরি। হার্ডওয়্যারে অ্যাক্সেস নিয়ন্ত্রণকারী হাইপারভাইজর, ম্যানেজমেন্ট সিস্টেম সহ একটি রুট পার্টিশন, এবং ভিএমগুলির জন্য সেকেন্ডারি পার্টিশন।এটি ভার্চুয়াল NUMA, ডাইনামিক মেমরি, ভার্চুয়াল সুইচ, নেটওয়ার্ক SR-IOV এবং ODX-এর মতো স্টোরেজ অপটিমাইজেশন প্রযুক্তি দ্বারা সমর্থিত।

NUMA (Non-Uniform Memory Access) বিশেষত বহু-কোর বিশিষ্ট সার্ভারের ক্ষেত্রে অত্যন্ত গুরুত্বপূর্ণ। যদি একটি বড় ভিএম ফিজিক্যাল নুমা নোডগুলোর মধ্যে সঠিকভাবে পার্টিশন করা না থাকে, তাহলে এর মেমোরি ল্যাটেন্সি বেড়ে যায়। এবং কাগজে-কলমে পর্যাপ্ত রিসোর্স আছে বলে মনে হলেও পারফরম্যান্স ক্ষতিগ্রস্ত হয়। আদর্শগতভাবে, ভিএম-এর vNUMA টপোলজি হোস্টের pNUMA টপোলজির সাথে সামঞ্জস্যপূর্ণ হওয়া উচিত।

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

স্টোরেজই এখন পর্যন্ত সবচেয়ে সাধারণ প্রতিবন্ধকতা। এটি সুপারিশ করা হয় নিবিড় কাজের চাপের জন্য নির্দিষ্ট আকারের VHDX ডিস্ক, আলাদা সিস্টেম ও ডেটা ডিস্ক ব্যবহার করুন, এন্টারপ্রাইজ-গ্রেড SSD বা NVMe ড্রাইভ বেছে নিন এবং দুর্বল রাইট আচরণযুক্ত RAID কনফিগারেশন (RAID 5/6) এড়িয়ে চলুন।যেখানে উপলব্ধ, স্টোরেজ স্পেসেস ডাইরেক্ট বা এনভিএমই অ্যারে ল্যাটেন্সি গ্রহণযোগ্য সীমার মধ্যে রাখতে সাহায্য করে।

একটি নেটওয়ার্কে, কনফিগার করা বাঞ্ছনীয়। দ্রুতগতির NIC-গুলিতে (সম্ভব হলে 10 GbE) এক্সটার্নাল ভার্চুয়াল সুইচ ব্যবহার করুন, NIC টিমিং ব্যবহার করুন, অত্যধিক নেটওয়ার্ক লোডের জন্য SR-IOV সক্রিয় করুন, এবং MTU ও অফলোড টিউন করুন। শুধুমাত্র যদি সম্পূর্ণ নেটওয়ার্ক চেইনটি সমর্থন করে। একটি দুর্বল নেটওয়ার্ক কনফিগারেশনের কারণে, এমনকি একটি ভালো জিপিইউ থাকা সত্ত্বেও, রিমোট ডেস্কটপের পারফরম্যান্স প্রত্যাশার চেয়ে খারাপ হতে পারে।

স্ট্রেস টেস্টিং এবং ব্যবহারের ক্ষেত্র: কখন ভিএম বা ফিজিক্যাল বেছে নেবেন

গ্রাফিক্স ওয়ার্কলোডকে ভিএম-এ স্থানান্তর করা হবে নাকি ফিজিক্যাল মিডিয়াতেই রেখে দেওয়া হবে, সেই সিদ্ধান্ত নেওয়ার জন্য এটি গুরুত্বপূর্ণ। বেঞ্চমার্ক এবং স্ট্রেস টুল দিয়ে পরীক্ষা করুন তাদের সিপিইউ, র‍্যাম, ডিস্ক এবং নেটওয়ার্কের ব্যবহার পরিমাপ করা উচিত। এবং, সম্ভব হলে, জিপিইউ-এর ব্যবহারও। আদর্শগতভাবে, 'আসল' অ্যাপ্লিকেশনটিকে একটি ভিএম-এ চলমান একই অ্যাপ্লিকেশনের সাথে তুলনা করা উচিত।

একটি বাস্তবসম্মত প্যাটার্ন হতে পারে: সিপিইউ-এর জন্য sysbench বা Geekbench, র‍্যামের জন্য stress-ng বা memtester, 4K IOPS ও ডিস্ক ল্যাটেন্সির জন্য fio এবং নেটওয়ার্ক ব্যান্ডউইথের জন্য iperf3 চালান।এবং হোস্ট ও ভিএম উভয়টিতেই কিছু বেসিক গ্রাফিক্স বেঞ্চমার্ক (যেমন, glxgears বা ব্রাউজার-ভিত্তিক WebGL টেস্ট)।

যদি কর্মক্ষমতার হ্রাস গ্রহণযোগ্য সীমার মধ্যে থাকে (উদাহরণস্বরূপ, সিপিইউ/র‍্যামে ১০%-এর কম এবং ডিস্কে ১৫-২০% খরচ হয়।যদি রিমোট ডেস্কটপ উদ্দিষ্ট ব্যবহারের (অফিস অটোমেশন, অ্যাডমিন, হালকা ডেভেলপমেন্ট) জন্য যথেষ্ট সাবলীল মনে হয়, তবে ভার্চুয়ালাইজেশন একটি সম্পূর্ণ বৈধ বিকল্প।

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

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