X86 / x64 ভার্চুয়ালাইজেশন কত ওভারহেড আছে?


24

X86 / x64 ভার্চুয়ালাইজেশন (আমি সম্ভবত ভার্চুয়ালবক্স, সম্ভবত VMWare ব্যবহার করব, অবশ্যই প্যারাচুয়ালাইজেশন নয়) কতটা ওভারহেডে ইনটেল হার্ডওয়্যার ভার্চুয়ালাইজেশন ব্যবহার করে একটি Win64 হোস্ট এবং লিনাক্স 64 অতিথি রয়েছে?

  • খাঁটি সিপিইউ-আবদ্ধ, ব্যবহারকারীর মোড -৪-বিট কোড

  • খাঁটি সিপিইউ-আবদ্ধ, ব্যবহারকারী মোড 32-বিট কোড

  • হার্ড ড্রাইভে আই / ও ফাইল করুন (আমি বেশিরভাগ ক্ষেত্রে থ্রুটপুট সম্পর্কে চিন্তা করি, বিলম্ব না করে)

  • নেটওয়ার্ক I / O

  • থ্রেড সিঙ্ক্রোনাইজেশন আদিম (মুটেক্সেস, সেমফোরস, শর্ত ভেরিয়েবল)

  • থ্রেড প্রসঙ্গে সুইচগুলি

  • পারমাণবিক ক্রিয়াকলাপ ( lockউপসর্গ ব্যবহার করে তুলনা-ও-বদলের মতো জিনিস)

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


(1) "x86" এর অর্থ 32-বিট। আপনি 64-বিট কোড চালাতে সক্ষম হবেন না। এএমডি (৪ (x64 নামে পরিচিত) ভার্চুয়ালাইজেশনের বিভিন্ন সীমাবদ্ধতা রয়েছে কারণ এর জন্য হার্ডওয়্যার এক্সটেনশনগুলির প্রয়োজন। (২) আপনি কি বাইনারি অনুবাদ দ্বারা x86 ভার্চুয়ালাইজেশন (কেবলমাত্র x86) বা হার্ডওয়্যার সহিত ভার্চুয়ালাইজেশন (ভিটি) দ্বারা বোঝাচ্ছেন?
স্কাইহক

@ মাইলস: আমি প্রশ্নটি পরিষ্কার করে দিয়েছি।
dsimcha

উত্তর:


26

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

বিভিন্ন বেঞ্চমার্ক পরীক্ষার মধ্যে সম্পর্ক খুঁজে পাওয়ার চেষ্টা করার সময় এটি আরও জটিল হয়। আমি যেগুলি সমাধান করেছি সেগুলির কোনওটিরই মাইক্রো-অপারেশন পরীক্ষায় ভাল পারফরম্যান্স ছিল না। উদাহরণস্বরূপ: ভিএম এর অভ্যন্তরে "গেটটাইমডে ()" এর একটি একক কল হার্ডওয়ারের তুলনায় গড়ে 11.5 গুণ বেশি ঘড়িচক্র গ্রহণ করেছে। হাইপারভাইজারগুলি বাস্তব বিশ্বের অ্যাপ্লিকেশনগুলির জন্য অনুকূলিত এবং মাইক্রো-ক্রিয়াকলাপগুলিতে ভাল সম্পাদন করে না। এটি আপনার অ্যাপ্লিকেশনের জন্য সমস্যা নাও হতে পারে যা বাস্তব বিশ্বের অ্যাপ্লিকেশন হিসাবে আরও ভাল ফিট করে। আমি মাইক্রো-অপারেশন বলতে চাইছি এমন কোনও অ্যাপ্লিকেশন যা সমাপ্ত হতে 1,000 ঘড়ির চক্র ব্যয় করে (একটি 2.6 গিগাহার্টজ সিপিইউয়ের জন্য, 1000 ঘড়ি চক্র 385 ন্যানোসেকেন্ডে বা 3.85e-7 সেকেন্ডে ব্যয় করা হয়)।

আমি x86 আর্কিটেকচারের জন্য ডেটা সেন্টার একীকরণের জন্য মূল চারটি সমাধানের উপর বিস্তৃত বেঞ্চমার্ক টেস্টিং করেছি। আমি ভিএমএসের ভিতরে পারফরম্যান্সটির সাথে হার্ডওয়্যার পারফরম্যান্সের সাথে তুলনা করে প্রায় 3000 পরীক্ষা করেছি। হার্ডওয়্যারে পরিমাপ করা সর্বাধিক পারফরম্যান্সের সাথে ভিএম (গুলি) এর মধ্যে পরিমাপ করা সর্বাধিক পারফরম্যান্সের পার্থক্যটিকে আমি 'ওভারহেড' বলেছি।

সমাধান:

  • ভিএমওয়্যার ইএসজিআই 5
  • মাইক্রোসফ্ট হাইপার-ভি উইন্ডোজ 2008 আর 2 এসপি 1
  • সিট্রিক্স জেন সার্ভার 6
  • Red Hat Enterprise ভার্চুয়ালাইজেশন 2.2

অতিথি ওএস:

  • মাইক্রোসফ্ট উইন্ডোজ 2008 আর 2 64 বিট
  • Red Hat Enterprise Linux 6.1 64 বিট

পরীক্ষার তথ্য:

  • সার্ভারস: 2 জি সান ফায়ার এক্স 4150 8 জিবি র‌্যাম, 2 এক্স ইন্টেল সিওন ই 54040 সিপিইউ এবং চার গিগাবিট ইথারনেট পোর্ট সহ
  • ডিস্কগুলি: গিগাবিট ইথারনেটের উপর দিয়ে আইএসসিএসআই-র উপরে 6 এক্স 136 জিবি এসএএস ডিস্কগুলি

বেঞ্চমার্ক সফ্টওয়্যার:

  • সিপিইউ এবং মেমরি: 32 এবং 64 বিটের উভয়ের জন্য লিনপ্যাকের মানদণ্ড । এটি সিপিইউ এবং মেমরি নিবিড়।

  • ডিস্ক I / O এবং লেটেন্সি: বনি ++

  • নেটওয়ার্ক I / O: নেট্পেরফ: টিসিপিসিপিআরএম, টিসিপি_আরআর, টিসিপি_সিআরআর, ইউডিপি_আরআর এবং ইউডিপিপিআরআম

  • মাইক্রো-অপারেশন: rdtscbench : সিস্টেম কল, আন্ত প্রক্রিয়া পাইপ যোগাযোগ

গড়গুলি পরামিতিগুলির সাথে গণনা করা হয়:

  • সিপিইউ এবং মেমরি: গড় (এইচপিএল 32, এইচপিএল 64)

  • ডিস্ক I / O: গড় (পুট_ব্লক, পুনর্লিখন, get_ block)

  • নেটওয়ার্ক I / O: AVERAGE (tcp_crr, tcp_rr, tcp_stream, udp_rr, udp_stream)

  • মাইক্রো-অপারেশনস গড় (গেটপিড (), সিসকনফ (), গেটটাইমডে (), ম্যালোক [1 এম], ম্যালোক [1 জি], 2 পাইপ [], সরলম্যাথ [])

আমার পরীক্ষার দৃশ্যের জন্য, আমার মেট্রিকগুলি ব্যবহার করে, চারটি ভার্চুয়ালাইজেশন সমাধানের ফলাফলগুলির গড় হল:

ভিএম স্তর ওভারহেড, লিনাক্স গেস্ট:

  • সিপিইউ এবং মেমরি: 14.36%

  • নেটওয়ার্ক I / O: 24.46%

  • ডিস্ক I / O: 8.84%

  • পড়ার জন্য ডিস্কের বিলম্ব: 2.41 বার ধীর times

  • মাইক্রো-ক্রিয়াকলাপের কার্যকর সময়: 10.84 গুণ কম

ভিএম স্তর ওভারহেড, উইন্ডোজ অতিথি:

  • 32 এবং 64 বিট উভয়ের জন্য সিপিইউ এবং মেমরির গড়: 13.06%

  • নেটওয়ার্ক I / O: 35.27%

  • ডিস্ক I / O: 15.20%

দয়া করে মনে রাখবেন যে এই মানগুলি জেনেরিক এবং নির্দিষ্ট কেসগুলির দৃশ্যের প্রতিফলন করে না।

: দয়া করে সম্পূর্ণ নিবন্ধ কটাক্ষপাত করা http://petersenna.com/en/projects/81-performance-overhead-and-comparative-performance-of-4-virtualization-solutions


2
এই নিবন্ধটি
পুরানো

1
For a 2.6 GHz CPU, 1,000 clock cycles are spent in 23 milliseconds, এক হাজার ঘন্টার চক্রটি যে সেকেন্ডের সেকেন্ডটি নেয় সে সংখ্যাটি পেতে ২,00০০,০০০ বাই একটি সাধারণ বিভাগ হওয়া উচিত নয়? (যা 23 মিলিসেকেন্ড নয়)
ডিভিডভোরেল

2
@জনাব. হ্যাপি, আপনি ঠিক বলেছেন। আমি 385 ন্যানোসেকেন্ড পেয়েছি: 1000/2600000000 = 0.000000385 = 385 ন্যানোসেকেন্ডে। তুমি এর সঙ্গে একমত? এই বিষয়টি চিহ্নিত করার জন্য ধন্যবাদ.
পিটার সেন্না

@ আদায়সনি, আমি আপডেটেড সংস্করণ দিয়ে পরীক্ষার পুনরাবৃত্তি করতে হার্ডওয়্যার সন্ধান করছি। কোন ধারণা আমি এটি কোথায় খুঁজে পেতে পারি?
পিটার সেন্না

হার্ডওয়্যার সহজেই কোনও দোকানে পাওয়া যায়
ডায়াসনি

4

আপনার প্রশ্নে অনেকগুলি ভেরিয়েবল রয়েছে, তবে আমি এটি সংকীর্ণ করার চেষ্টা করতে পারি। আসুন ধরে নেওয়া যাক আপনি ভিএমওয়্যার ইএসএক্সের সাথে যাচ্ছেন, আপনি সবকিছু ঠিকঠাক করুন - ভার্চুয়ালাইজেশনের সমর্থনে সর্বশেষ সিপিইউ, প্যারাচুয়ালাইজড স্টোরেজ এবং নেটওয়ার্ক ড্রাইভারগুলির সাথে ভিএমওয়্যার সরঞ্জাম, প্রচুর স্মৃতি। এখন ধরে নেওয়া যাক আপনি এই সেটআপটিতে একটি একক ভার্চুয়াল মেশিন চালান। আমার অভিজ্ঞতা থেকে, আপনার সিপিইউ বাউন্ড কাজের চাপের জন্য 90% সিপিইউ গতি থাকা উচিত। আমি আপনাকে নেটওয়ার্কের গতি সম্পর্কে বেশি কিছু বলতে পারি না, যেহেতু আমরা 1 জিবিপিএস লিঙ্কগুলি ব্যবহার করছি এবং আমি কোনও সমস্যা ছাড়াই এটি পরিপূর্ণ করতে পারি, এটি 10 ​​জিবিপি লিঙ্কের সাথে আলাদা হতে পারে তবে আমাদের এর কোনওটি নেই। স্টোরেজ থ্রুপুট স্টোরেজ প্রকারের উপর নির্ভর করে, স্থানীয় স্টোরেজ সহ আমি প্রায় ~ 80% স্টোরেজ থ্রুটপুট পেতে পারি, তবে 1 জিবিপিএস এনএফএসের জন্য এটি নেটওয়ার্কিং এখানে বাধা হওয়ায় এটি 100% এর কাছাকাছি। অন্যান্য মেট্রিকের বিষয়ে বলতে পারি না,

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

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


আমি অভিজ্ঞতা থেকে বলতে পারি যে একটি একক ভিএম এর সাথে 10 জিবিই লিঙ্কটি স্যাচুরেট করা খুব কঠিন। আমরা ভিএমওয়্যার এফটি ব্যবহার করেছি, যা 10 গিগাবাইটেরও বেশি ইজিলি একটি নিজস্ব 1 জিবিপিএস লিঙ্ক পরিপূর্ণ করতে পারে এবং এটি এটি সংশ্লেষের কাছাকাছি আসে নি।
মার্ক হেন্ডারসন

0

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

http://www.altechnative.net/2012/08/04/virtual-performance-part-1-vmware/


2
এটি দুর্দান্ত যে আপনি জেন ​​এবং কেভিএমের জন্য কিছু তথ্য পেয়েছেন ... তবে সর্বাধিক জনপ্রিয় দুটি হাইপারভাইজারের কী ?! তারা পুরোপুরি অনুপস্থিত। এবং আপনি বেশ কয়েকটি টাইপ 2 হাইপারভাইজার অন্তর্ভুক্ত করেছেন, কোনও বুদ্ধিমান সিসএডমিন এটি উত্পাদনের জন্য ব্যবহার করবে না।
ক্রিস এস

ডাউন ভোট দিয়েছেন। লিঙ্কটি মারা গেছে।
টিম ডানক্লে
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.