Pertanyaan ini cukup umum, tetapi yang paling khusus saya tertarik untuk mengetahui apakah mesin virtual yang menjalankan Ubuntu Enterprise Cloud akan lebih lambat daripada mesin fisik yang sama tanpa virtualisasi apa pun. Berapa (1%, 5%, 10%)?
Adakah yang mengukur perbedaan kinerja server web atau server db (virtual VS physical)?
Jika tergantung pada konfigurasi, mari kita bayangkan dua prosesor quad core, memori 12 GB dan banyak disk SSD, menjalankan server perusahaan ubuntu 64-bit. Selain itu, hanya 1 mesin virtual yang diizinkan menggunakan semua sumber daya yang tersedia.
virtualization
performance
cloud-computing
benchmark
Michal Illich
sumber
sumber
Jawaban:
Pengalaman khas untuk beban kerja server tujuan umum pada bare metal \ Type 1 Hypervisor adalah sekitar 1-5% dari overhead CPU dan 5-10% overhead memori, dengan beberapa overhead tambahan yang bervariasi tergantung pada beban IO keseluruhan. Itu cukup konsisten dalam pengalaman saya untuk menjalankan Guest OS modern di bawah VMware ESX \ ESXi, Microsoft Hyper-V dan Xen di mana perangkat keras yang mendasarinya telah dirancang dengan tepat. Untuk sistem operasi Server 64 bit yang berjalan pada perangkat keras yang mendukung ekstensi virtualisasi perangkat keras cpu terkini, saya harapkan semua hypervisor Tipe 1 menuju nomor overhead 1% itu. Kedewasaan KVM tidak cukup hingga Xen (atau VMware) pada saat ini tetapi saya tidak melihat alasan untuk berpikir bahwa itu akan jauh lebih buruk daripada mereka untuk contoh yang Anda gambarkan.
Untuk kasus penggunaan khusus meskipun keseluruhan "kinerja" agregat dari lingkungan virtual dapat melebihi server bare metal \ discrete. Berikut adalah contoh diskusi tentang bagaimana implikasi VMware Clustered bisa lebih cepat \ lebih baik \ lebih murah daripada Oracle RAC bare metal. Teknik manajemen memori VMware (terutama berbagi halaman transparan) dapat menghilangkan overhead memori hampir seluruhnya jika Anda memiliki cukup VM yang cukup mirip. Yang penting dalam semua kasus ini adalah manfaat kinerja \ efisiensi yang dapat dihasilkan oleh virtualisasi hanya akan terwujud jika Anda mengkonsolidasikan banyak VM ke host, contoh Anda (1 VM pada host) akan selalu lebih lambat daripada bare metal pada tingkat tertentu .
Meskipun ini semua berguna, masalah nyata dalam hal virtualisasi Server cenderung berpusat di sekitar manajemen, teknik ketersediaan tinggi, dan skalabilitas. Margin kinerja CPU 2-5% tidak sepenting kemampuan skala secara efisien hingga 20, 40 atau berapa pun VM yang Anda butuhkan di setiap host. Anda dapat menangani hit kinerja dengan memilih CPU yang sedikit lebih cepat sebagai baseline Anda, atau dengan menambahkan lebih banyak node dalam cluster Anda tetapi jika tuan rumah tidak dapat mengukur jumlah VM yang dapat dijalankan, atau lingkungan sulit untuk mengelola atau tidak dapat diandalkan maka tidak berharga dari perspektif virtualisasi server.
sumber
"Kinerja" memiliki banyak aspek. N00b mengukur waktu boot OS, dan mengatakan misalnya Windows 2012 sangat bagus karena boot dalam 12 detik pada HD nyata, mungkin 1 detik pada SSD.
Tapi ukuran semacam ini tidak terlalu berguna: kinerja sama dengan waktu boot OS, tetapi OS boot sebulan sekali sehingga mengoptimalkan yang tidak masuk akal.
Karena ini adalah urusan harian saya, saya mungkin akan menunjukkan 4 bagian berikut yang membentuk "kinerja"
Beban CPU
Ini harus sebanding, artinya tugas yang mengambil 1000 ms pada bare metal akan dieksekusi dalam waktu proses 1000 ms dan mungkin 1050 ms dari waktu jam dalam lingkungan VM yang tidak digunakan pada perangkat keras yang sama (beberapa perincian kemudian). Google MSDN untuk waktu proses dan penghitung kinerja dan Anda dapat melakukan hal yang dapat menunjukkan seberapa banyak VM memakan waktu CPU Anda.
Kinerja SQL
Kinerja SQL sangat bergantung pada IO ke datastore tempat data SQL disimpan. Saya telah melihat perbedaan 300% antara gen pertama ISCSI yang dapat Anda temukan di Buffalo home NAS, kemudian ISCSI dengan DCE dan lingkungan FC sekolah tua yang nyata, di semua tingkatan. FC masih menang saat ini, karena latensi FC adalah lowesst archievable yang mengarah pada "salinan" protokol FC untuk peningkatan TCP / IP pusat data. Di sini IOps dan latensi sangat penting tetapi juga bandwidth IO dari proses server ke media - tergantung apakah aplikasi cenderung ke No-SQL atau ke Datawarehousing atau berada di tengah-tengahnya seperti sistem ERP ... Sage KHK untuk perusahaan kecil, SAP untuk yang besar.
Akses
Sistem File Beberapa aplikasi, seperti streaming video bergantung pada bandwidth minimum yang dijamin, yang lain bergantung pada throughput IO maksimum seperti hanya membuka file besar dalam hex editor, memuat proyek video ke prog pembuatan film favorit Anda. Bukan situasi yang khas pada vm .... IOps mungkin juga penting bagi pengembang. Pengembang sering menggunakan VM karena mengembangkan lingkungan sangat sensitif dan oleh karena itu godaan untuk melakukannya dalam VM adalah tinggi. Mengompilasi sebuah proyek besar sering kali berarti membaca berton-ton file kecil, mengerjakan tugas-tugas kompiler dan membangun EXE dan komponen-komponen yang menyertainya.
Latensi jaringan untuk klien
Di sini kegunaan prog WYSIWIG seperti kata 2010, Openoffice Writer, LaTEX, GSView, dan lainnya sangat bergantung pada kecepatan - seberapa cepat tindakan mouse didapat dari klien ke server. Terutama di aplikasi CAD ini penting .... tetapi juga bukan masalah LAN, itu akses jarak jauh melalui WAN di mana ini penting.
Tapi - dan saya berbicara dari sudut pandang konsultasi bertahun-tahun - ada pengguna yang memiliki kata sandi admin (dan mereka sering kali adalah karyawan perusahaan besar dengan anggaran BESAR dan dompet besar) mengeluh ini dan itu, tetapi harus diklarifikasi komponen kinerja mana yang penting bagi mereka dan mana yang penting dari perspektif aplikasi yang mereka gunakan.
Kemungkinan besar bukan notepad, tetapi aplikasi yang sangat canggih untuk rekayasa ini dan itu, yang juga sangat mahal dan harus dipindahkan pada VMware, HyperV atau Xenapp dan tidak berfungsi seperti yang diharapkan.
Tetapi mereka tidak memiliki pikiran bahwa itu dapat berjalan pada 1,5 GHz Xeon pada blade tidak dibuat untuk kinerja CPU murni, mereka dibangun untuk rata-rata, katakanlah "dioptimalkan untuk $ per siklus CPU" atau "siklus CPU per Watt" .
Dan ketika kita berbicara tentang pengorbanan dan penghematan - yang sebagian besar mengarah pada komitmen berlebihan. Komitmen berlebihan menyebabkan kurangnya sumber daya di mana CPU dapat ditangani dengan cukup baik, tetapi kurangnya memori mengarah ke paging, kurangnya IO pada router inti mengarah pada peningkatan waktu jawab pada segala hal, dan kelebihan beban transaksional pada segala jenis penyimpanan dapat menghentikan setiap aplikasi yang berguna dari merespons terlalu cepat. Di sini pemantauan diperlukan, tetapi banyak vendor perangkat lunak tidak dapat memberikan informasi seperti itu .... di sisi lain tuan rumah dengan sumber daya 3 server fisik kemungkinan besar dapat menangani 8 mesin virtual dengan tata letak yang sama seperti yang fisik ...
Pengorbanan CPU pada sistem idle sering menyebabkan sistem berkinerja 50% lebih lambat daripada sistem fisik, di sisi lain tidak ada yang dapat menginstal os "dunia nyata" dan aplikasi "dunia nyata" yang ingin dipindahkan oleh pelanggan IT kotak. Dan butuh berhari-hari (mungkin berminggu-minggu tetapi pasti 42 pertemuan) untuk menjelaskan bahwa teknologi VM dapat menawarkan fleksibilitas dengan memperdagangkan kecepatan CPU murni. Ini hanya dibangun pada CPU pada sistem blade ini yang menjadi tuan rumah lingkungan VM yang lebih besar. Juga memori tidak akan sebanding, juga beberapa pengorbanan berlaku. DDR3 1600 CL10 akan memiliki bandwidth memori lebih tinggi dari DDR2 800 ECC LLR - dan semua orang tahu bahwa Intel CPU mendapat untung dari ini dengan cara yang berbeda dari AMD cpus. Tapi mereka jarang digunakan pada lingkungan produktif, lebih banyak di whitebox atau di pusat data yang di-host di negara-negara dunia ke-3 yang menawarkan layanan pusat data untuk 10% dari harga yang bisa ditagih pusat data di tanah air Anda sendiri. Berkat Citrx, pusat data bisa ada di mana-mana jika kurang dari 150 ms latensi antara pengguna akhir dan pusat data.
Dan perspektif pengguna rumahan ....
Terakhir, beberapa orang ingin membuang Win7 atau XP dan menukarnya dengan Linux, dan kemudian muncul pertanyaan tentang permainan karena sebenarnya hanya sedikit permainan yang tersedia untuk Linux dan Windows. Gaming mengandalkan higly pada akselerasi 3D. VMWare 6.5 Workstation dan pemutar gratis yang terhubung dapat menangani DirectX 9, yang berarti Doom3 dalam VM dapat berjalan pada kartu grafis host dalam layar penuh. Game sebagian besar adalah aplikasi 32 bit, sehingga tidak memakan lebih dari 3 GB dan sebagian besar tidak lebih dari 3 CPU (terlihat pada Crysis). Pemain VM yang lebih baru dan WS dapat menangani versi DirectX yang lebih tinggi dan mungkin juga OpenGL ... Saya memainkan UT dan UT2004 pada VMware 6.5, tuan rumah memiliki ATI Radeon 2600 mobile dan CPU T5440. Itu stabil pada 1280x800 dan dapat dimainkan bahkan pada game jaringan ....
sumber
Iya. Tapi itu bukan pertanyaannya. Perbedaannya biasanya dapat diabaikan (1% hingga 5%).
sumber
Saya akan menunjukkan bahwa virtualisasi dapat melebihi kinerja fisik dalam situasi tertentu. Karena lapisan jaringan tidak terbatas pada kecepatan gigabit (meskipun emulasi perangkat keras adalah kartu kartu tertentu), VM pada server yang sama dapat berkomunikasi satu sama lain dengan kecepatan di luar beberapa server phyiscal dengan peralatan jaringan rata-rata.
sumber
Saya telah melakukan beberapa perbandingan uji dari perangkat lunak yang sama menjalankan tes yang sama (aplikasi web berbasis .NET dengan volume lalu lintas web yang tinggi dan akses SQL Server yang cukup besar). Inilah yang saya lihat:
Saya dapat dengan mudah melihat bagaimana seseorang dapat membangun tolok ukur yang membuktikan bahwa mereka 1% berbeda atau sama atau di mana VM lebih cepat. Jangan sertakan apa pun di mana proses Anda mengambil keuntungan dari manfaat dukungan perangkat keras lokal di mana VM perlu mensimulasikannya dalam perangkat lunak.
sumber
Anda mencoba membandingkan sistem operasi, perangkat lunak, dan data yang diinstal pada perangkat keras fisik tertentu dengan sistem operasi, perangkat lunak, dan data yang diinstal dengan sendirinya di dalam hypervisor pada perangkat keras asli yang sama. Perbandingan ini tidak valid, karena hampir tidak ada yang melakukan ini (setidaknya pada awalnya). Tentu saja itu akan lebih lambat. Untungnya, itu benar-benar merindukan titik paling umum mengapa Anda memvirtualkan server sama sekali.
Contoh yang lebih baik di sini adalah melihat dua (atau lebih!) Server lama di pusat data Anda. Cari server yang berkinerja cukup baik, tetapi sudah tua dan muncul di siklus penyegaran. Server-server ini sudah berkinerja baik pada perangkat keras yang lebih lama, dan karenanya berkat hukum Moore, segala hal baru yang Anda dapatkan akan menjadi terlalu spesifik.
Jadi apa yang kamu lakukan? Itu mudah. Daripada membeli dua server baru, Anda hanya membeli satu, lalu memigrasi kedua server lama Anda ke perangkat baru yang sama. Saat bersiap untuk membeli server baru Anda, Anda berencana sehingga Anda memiliki kapasitas yang cukup untuk tidak hanya menangani beban dari kedua server lama tetapi juga setiap beban dari hypervisor (dan mungkin sedikit tambahan, sehingga Anda masih bisa mendapatkan peningkatan kinerja dan dapat memungkinkan untuk pertumbuhan).
Singkatnya: mesin virtual memberikan kinerja "cukup baik" untuk sebagian besar situasi, dan membantu Anda memanfaatkan server Anda dengan lebih baik untuk menghindari daya komputasi "terbuang".
Sekarang mari kita lanjutkan ini sedikit lebih jauh. Karena ini adalah server lama, mungkin Anda sedang mencari beberapa server kotak pizza sederhana seharga $ 1500 untuk menggantinya. Kemungkinannya, bahkan salah satu kotak pizza ini masih dapat dengan mudah menangani beban dari kedua mesin yang lebih tua secara hipotetis ... tetapi katakanlah Anda memutuskan untuk menghabiskan $ 7500 atau lebih untuk beberapa perangkat keras nyata. Sekarang Anda memiliki perangkat yang dapat dengan mudah menangani sebanyak selusin server Anda yang ada (tergantung pada bagaimana Anda menangani penyimpanan dan jaringan), dengan biaya awal hanya 5. Anda juga memiliki manfaat hanya mengelola satu server fisik, decoupling perangkat lunak Anda dari perangkat keras Anda (yaitu: penyegaran perangkat keras sekarang cenderung membutuhkan lisensi windows baru atau menyebabkan downtime), Anda menghemat satu ton daya, dan hypervisor Anda dapat memberi Anda informasi yang lebih baik tentang kinerja daripada Anda pernah di masa lalu. Dapatkan dua dari ini dan tergantung pada seberapa besar Anda mungkin seluruh pusat data Anda hanya untuk dua mesin, atau mungkin Anda ingin menggunakan server kedua sebagai siaga panas untuk menceritakan kisah ketersediaan tinggi yang lebih baik.
Maksud saya di sini adalah bahwa ini bukan hanya tentang kinerja. Saya tidak akan pernah mengambil server produksi yang sangat baik dan memvirtualisasikannya sendiri ke perangkat keras yang setara hanya karena. Ini lebih tentang penghematan biaya dan manfaat lain yang dapat Anda peroleh dari konsolidasi, seperti ketersediaan tinggi. Menyadari manfaat ini berarti Anda memindahkan server ke perangkat keras yang berbeda, dan pada gilirannya itu berarti Anda perlu meluangkan waktu untuk mengukur perangkat keras secara tepat, termasuk memperhitungkan penalti hypervisor. Ya, Anda mungkin membutuhkan daya komputasi sedikit lebih banyak daripada jika masing-masing mesin itu menggunakan perangkat fisik mereka sendiri (petunjuk: Anda sebenarnya mungkin membutuhkan daya komputasi total lebih sedikit ), tetapi itu akan menjadi jauh lebih murah, lebih hemat energi, dan lebih mudah untuk mempertahankan untuk menjalankan satu server fisik daripada menjalankan banyak.
sumber
Saya baru saja meng-upgrade ke SSD (OCZ Vertex 2) dan saya menjalankan lingkungan pengembangan VM XP saya di atasnya, saya adalah seorang pengembang perangkat lunak. Satu hal yang saya perhatikan adalah ketika saya meluncurkan sebuah program (satu yang cukup besar untuk meluangkan waktu untuk memuat), satu inti dari pasak CPU virtual keluar. Ini terjadi ketika memuat IE juga. Karena CPU keluar, saya menganggap bottleneck adalah CPU dan bukan SSD. Tapi sepertinya aneh, saya punya perasaan bahwa jika hal yang sama dilakukan pada mesin fisik yang akan memuat lebih cepat dan perasaan saya adalah bahwa ada beberapa proses overhead tambahan VMWare melakukan itu adalah mengkonsumsi CPU pada akses disk.
Salah satu contoh, saya menggunakan Delphi dan pada mesin fisik dengan HDD biasa diperlukan waktu 20 detik untuk memulai dari boot dingin. Dalam VM yang menjalankan SSD, ia dimuat dalam 19 detik dari awal yang dingin. Tidak banyak perbedaan, saya yakin jika SSD ada di mesin fisik itu akan memuat lebih cepat. Namun saya tidak memeriksa penggunaan CPU pada mesin fisik, kemungkinan CPU adalah hambatan di sana juga.
Tetapi nuansa VM adalah bahwa akses disk memajaki VM.
sumber
Jelas mesin virtual lebih lambat daripada mesin fisik. Tetapi ketika Anda berada dalam skenario ini, Anda harus mengevaluasi apa yang optimal untuk memenuhi kebutuhan Anda. Jika Anda hanya membutuhkan satu sistem dan Anda harus cepat, maka instal langsung ke perangkat keras. Di sisi lain, jika Anda memerlukan fleksibilitas, skalabilitas (dan semua manfaat virtualisasi lainnya: P) gunakan VM. Ini akan lebih lambat, tetapi IMHO dalam beberapa kasus itu dibenarkan dan kinerjanya tidak lambat secara signifikan.
sumber
Sepertinya Microsoft telah melakukan beberapa pengujian benchmark menggunakan server BizTalk, dan SQL Server dalam konfigurasi berbeda dalam hal ini. Lihat tautan di bawah:
http://msdn.microsoft.com/en-us/library/cc768537(v=BTS.10).aspx
sumber
Idealnya kinerja PC Virtual ada pada:
CPU: 96-97% dari host
Jaringan: 70-90% dari host
Disk: 40-70% dari host
sumber
Maaf tidak setuju dengan TomTom.
Saya telah menggunakan VMware Workstation untuk sementara waktu terutama pada Windows XP, Windows Vista dan sekarang sistem Windows Seven untuk menjalankan berbagai rasa Windows serta Ubuntu.
Ya, lingkungan tervirtualisasi lebih lambat daripada sistem asli dan yang mungkin berkisar antara 5 hingga 100%.
Masalah utama bukanlah beban CPU yang banyak tetapi kekurangan memori fisik.
Katakanlah Anda memiliki Windows Seven 64 Ultimate yang berjalan pada sistem 4 Gb yang ketika idle membutuhkan hampir 1,5 Gb dan menggunakan ~ 10% dari CPU. Meluncurkan lapisan tambahan VMware akan dikenakan biaya ~ 300 Kb dan beban CPU akan naik hingga ~ 20%. Kemudian meluncurkan sistem virtual di dalam VMware akan meminta jumlah minimum memori yang Anda tentukan untuk mesin virtual yang minimum 1 Gb untuk sistem yang layak. Kemudian Anda akan melihat beban CPU ~ 60% jika mesin virtual Ubuntu dan ~ 80% untuk setiap rasa OS Windows terbaru.
Sekarang, Anda akan memulai berbagai aplikasi di dalam mesin virtual itu.
Jika jumlah memori yang Anda tetapkan untuk mesin virtual itu tidak cukup, sistem tervirtualisasi akan mulai bertukar, kemudian secara dramatis memperlambat keseluruhan kinerja dan daya tanggapnya.
Jika jumlah dari jumlah memori yang Anda tetapkan untuk mesin virtual itu ditambah jumlah memori yang dibutuhkan untuk sistem asli Anda berada di atas jumlah memori sistem asli Anda, maka itu sistem asli Anda yang akan bertukar, memperlambat baik sistem asli dan virtual.
Jadi, pertama-tama tergantung pada keseimbangan memori yang dibutuhkan untuk mesin asli dan virtual.
Sekarang hampir sama dengan beban CPU. Jika aplikasi tervirtualisasi membutuhkan beban CPU yang besar, dan aplikasi asli juga membutuhkan beban CPU yang sangat besar, sistem asli Anda harus mengelola prioritas dan menyeimbangkan biaya CPU di antara berbagai aplikasinya, sistem tervirtualisasi tidak lain hanyalah sebuah aplikasi tetapi Fenomena adalah masalah beban CPU klasik yang dapat Anda tipu dengan prioritas aplikasi.
Jadi, saran pertama saya jika Anda perlu menggunakan virtualisasi adalah meletakkan banyak memori di mesin Anda, apa pun OS yang Anda gunakan secara asli atau di dalam mesin virtual.
Hanya 2 sen saya.
Salam Hormat.
sumber
Dalam pengalaman saya, mesin virtual selalu jauh lebih lambat daripada yang secara fisik OUT OF THE BOX.
Anda hanya akan melihatnya ketika menjalankan aplikasi yang menekan disk dan banyak membebani CPU. Saya telah menjalankan banyak basis data dan server web pada mesin virtual dan sebagai pengguna akhir dan umpan balik dari pengguna akhir lainnya (yaitu: mengakses aplikasi dari browser web jarak jauh) ada jeda yang cukup besar ketika menggunakan mesin virtual.
Tentu saja mesin virtual yang dikonfigurasi dengan benar dapat mencapai 80% (saya tidak tahu angka sebenarnya) atau berapa pun kecepatan mesin fisik, tetapi Anda akhirnya harus benar-benar menggali lebih dalam apa yang sedang dilakukan aplikasi dan bagaimana mesin virtual tersebut bekerja. Jadi saya kira itu adalah persamaan biaya betapa berharganya waktu Anda untuk mengkonfigurasi ayat-ayat VMs hanya membeli dan hosting server baru.
Bagi saya mesin virtual BUKAN TENTANG KINERJA, tetapi tentang menjadi lebih mudah untuk mengelola dan untuk hosting beberapa VM kinerja rendah tentu saja.
sumber