Bagaimana cara menggambarkan persyaratan kinerja VMware untuk aplikasi kita ke admin VMware?

23

Seringkali, instalasi aplikasi berbasis debian-stable kami berjalan di mesin virtual - biasanya di VMware ESXi. Dalam kasus umum, kami tidak memiliki visibilitas ke atau pengaruh atas lingkungan virtualisasi mereka dan tidak memiliki akses ke mis. Klien VMware vCenter atau yang setara. Saya fokus pada VMware di sini, karena sejauh ini adalah yang paling umum yang kita lihat.

Kami ingin:

  • Beri tahu admin VMware pelanggan: Anda dapat menjalankan aplikasi kami di misalnya lingkungan VMware ESX Anda, asalkan memenuhi kriteria kinerja X, Y dan Z.
  • Dapat menentukan apakah kriteria X, Y dan Z sebenarnya dipenuhi secara terus menerus (misalnya juga sekarang ), bahkan pada sistem yang sedang berjalan (kami tidak dapat menghentikan aplikasi kami dan menjalankan tolok ukur, dan tolok ukur awal tidak akan cukup, karena kinerja dalam lingkungan virtual berubah seiring waktu).
  • Yakinlah bahwa jika kriteria X, Y dan Z dipenuhi, kami akan memiliki sumber daya HW virtual yang memadai untuk menjalankan aplikasi kami dengan kinerja yang memuaskan.

Sekarang apa X, Y dan Z?

Kami telah melihat berulang kali, bahwa ketika ada masalah kinerja, masalahnya bukan pada aplikasi kita, tetapi dengan lingkungan virtualisasi. Misalnya mesin virtual lain menggunakan berton-ton CPU, memori, atau SAN tempat disk-disk itu disimpan benar-benar digunakan oleh sesuatu selain aplikasi kita. Kami saat ini tidak memiliki cara untuk membuktikan atau menyangkal hal itu.

Secara teoritis bisa juga bahwa kadang-kadang aplikasi kita lambat ... ;-)

Bagaimana cara menentukan akar penyebab masalah kinerja kami: Lingkungan virtual atau aplikasi kita?

Biasanya ada 3 area untuk masalah kinerja CPU, Memori dan DISK I / O.

CPU

Dalam mis. VMware, administrator dapat menentukan Reservasi dan Batas, dinyatakan dalam MHz, tetapi apakah mis. 512MHz pada satu host ESX persis sama dengan 512MHz pada host ESX lain, mungkin dalam cluster ESX yang sama sekali berbeda?

Dan bagaimana seseorang mengukur apakah kita benar-benar mendapatkannya? Ketika aplikasi kita sedang berjalan, kita mungkin dapat melihat bahwa kita berada pada pemanfaatan CPU 212% pada 4 CPU. Apakah itu karena aplikasi kita banyak melakukan atau karena VM lain pada host yang sama menjalankan tugas intensif CPU dan menggunakan semua CPU?

Memori (Balon?)

Jika kita meminta misalnya 16GB RAM, yang sering dikonfigurasi, tetapi karena balon , kita sebenarnya hanya mendapatkan 4GB, dan mengejutkan, aplikasi kita berkinerja buruk.

Seseorang dapat menanyakan alat-alat VMware tentang balon yang ada saat ini, tetapi kami mendapati bahwa alat itu sering berbohong (atau setidaknya tidak akurat). Kami telah melihat contoh di mana OS mengira ada 16GB total RAM, jumlah memori penduduk (RSS) dari semua proses adalah 4GB RAM, tetapi hanya ada 2GB RAM, bahkan ketika alat VMware memberi tahu kami ada 0 balon: - (

Selain itu, menambahkan RSS secara bersamaan tidak valid, karena ada RAM yang dapat dibagikan dengan mudah, misalnya memori salin saat menulis sehingga 512MB + 512MB tidak selalu berarti 1GB tetapi dapat berarti sesuatu yang kurang. Jadi seseorang tidak bisa hanya mengurangi RSS dari semua proses untuk mendapatkan ukuran berapa banyak RAM yang harus bebas dan dengan demikian mendeteksi balon yang andal. Satu dapat mendeteksi beberapa kasus balon, tetapi ada kasus lain di mana balon terjadi, tetapi tidak terdeteksi oleh metode ini.

Disk I / O

Saya kira kita dapat membuat grafik dari waktu ke waktu jumlah disk membaca dan menulis, jumlah byte yang dibaca dan ditulis, dan IO menunggu%. Tapi apakah itu akan memberi kita gambaran akurat tentang disk I / O? Saya membayangkan bahwa jika ada penambang bitcoin berjalan di VM lain menggunakan semua CPU, IO kami menunggu% akan naik, bahkan jika SAN yang mendasarinya memberikan kinerja yang persis sama, hanya karena sumber daya CPU kami turun, dan karenanya IO menunggu ( yang diukur dalam% ) naik.

Jadi, secara ringkas, bahasa apa yang bisa kita gunakan untuk menggambarkan misalnya admin VMware, kinerja apa yang kita butuhkan, dengan cara yang portabel dan terukur?

Peter V. Mørch
sumber
Apa persyaratan sebenarnya dari aplikasi Anda? Apa yang telah Anda jelaskan sejauh ini tidak cukup bagi saya untuk secara akurat mengukur kebutuhan sumber daya di lingkungan saya, dan saya berpengalaman dalam VMware. Target audiens Anda akan memiliki waktu yang lebih sulit. Dalam praktiknya, saya akhirnya mengabaikan persyaratan vendor dan mengukur / mengukur VM dengan menggunakan metrik historis dan pengamatan menggunakan vRealize Operations Manager.
ewwhite
1
@ewwhite: Saya bukan ahli perangkat keras. Tapi izinkan saya lebih spesifik dan mengatakan itu berjalan dengan baik pada Core i7-5820K dengan RAM 8GB. Disk magnetik ca. 2015 baik-baik saja, SSD lebih baik (saya bisa lebih spesifik di sini, jika perlu). Kami membutuhkan ruang disk bebas 80GB.
Peter V. Mørch
2
Sebagai seorang admin, saya akan mengatakan, "berapa banyak core yang harus saya alokasikan, apa persyaratan RAM yang sebenarnya, apa persyaratan penyimpanan dari IOP dan perspektif throughput, berapa tingkat pertumbuhan penyimpanan, apakah saya baik-baik saja dengan thin-provisioning, dll? "
ewwhite
Apa yang dibutuhkan aplikasi Anda dari perspektif kinerja? Apakah Anda memiliki tolok ukur untuk aplikasi Anda? Mengatakan "It runs fine with x, y, and z"tidak cukup tepat. Anda harus bisa memberi tahu pelanggan Anda secara tepat apa yang dibutuhkan aplikasi Anda. Jika mereka memberi Anda sumber daya dan aplikasi berkinerja buruk maka pertanyaannya bukan "What do we need from a resource perspective?", tapi"Why is it performing poorly even though the proper resources have been allocated?"
joeqwerty
1
@ewwhite: "Terselesaikan"? Tidak. Saya masih belum memiliki enantasi 25 kata yang dapat saya berikan kepada admin VMware, dan kemudian dapat menguji dan mengetahui bahwa kami akan mendapatkan kinerja yang dapat diprediksi, karena, seperti yang Anda tahu, "itu tergantung". Tetapi saya telah menerima jawaban Anda, karena saya sekarang berpikir bahwa persyaratan yang tepat dan terukur seperti itu tidak mungkin dan informasi Anda sangat membantu dalam berbicara bahasa yang tepat. Di masa mendatang, saya akan merekomendasikan kita pergi ke rute "Jika Anda ingin kami memecahkan masalah kinerja, kami setidaknya perlu melihat akses ke vCenter".
Peter V. Mørch

Jawaban:

23
  • Serius, kebanyakan administrator VMware tidak pandai dalam hal ini: Pemahaman yang buruk tentang manajemen sumber daya, seringkali tidak ada pengetahuan Linux (itu membantu) dan kurangnya bandwidth waktu. Saya menemukan sebagian besar admin internal mengalami kesulitan mempertahankan pengetahuan virtualisasi yang mendalam.

  • Untungnya, ada buku yang bisa Anda baca !

  • Sebagian besar lingkungan VMware tidak bagus: desain cluster yang buruk , perencanaan sumber daya yang buruk , penyimpanan di bawah standar (yaitu Synology NAS), HA salah konfigurasi, tidak ada pemantauan atau penambalan.

  • VMware sebagai organisasi mengecewakan kami: Mereka sangat buruk dalam menyebarkan informasi terkini dan mempromosikan praktik terbaik. Pencarian dasar untuk pertanyaan umum menghasilkan hasil dari 2009 dan revisi yang lebih lama dari VMware, terlepas dari kenyataan bahwa proses dan desain telah berubah seiring waktu.

Semua hal ini akan merugikan Anda.

Anda harus menentukan persyaratan nyata dari solusi Anda. Untuk dapat secara akurat menyatakan bahwa alat Anda memerlukan: 2 vCPU, 8GB RAM, dan kinerja penyimpanan 500 IOP akan sangat membantu seseorang seperti saya.

Pendekatan lain adalah mengamati lingkungan yang sehat atau ideal dan memperkirakan metrik dari sana.

Anda telah menggambarkan masalah dengan penggunaan tertentu. Apa masalah dan hambatannya?


Contoh VM berukuran tepat:

Server Exchange untuk organisasi 300 pengguna.

  • Kami memiliki 6 minggu beban kerja / heatmaps stres terhadap waktu.
  • 6 vCPU membuat kami tetap berada di atas zona stres dengan ruang penyangga untuk paku.
  • RAM 32GB membuat kita di atas nilai stres, tetapi bukan jumlah yang tidak masuk akal di atas apa yang benar-benar dibutuhkan.

masukkan deskripsi gambar di sini

  • Saya bisa mendapatkan kembali beberapa GB RAM dan vCPU, tetapi semua dalam, ini adalah VM yang efisien.
  • Akan lebih bijaksana untuk mendapatkan jenis pemantauan aplikasi Anda dalam kondisi ideal.

masukkan deskripsi gambar di sini


Contoh pemantauan sumber daya VM.

Good-ish: - VM berukuran tepat. - CPU overcommitted di seluruh cluster, tapi kami tidak mengalami pertentangan.

masukkan deskripsi gambar di sini

Buruk-ish:

  • VM tidak akan pernah mendapatkan semua RAM yang dikonfigurasikan dengannya.
  • VM sudah menukar RAM.
  • CPU terlalu terkonfigurasi.

masukkan deskripsi gambar di sini

putih
sumber
2
Terima kasih, putih untuk jawaban Anda. Demi argumen, katakanlah pada satu pelanggan, ini berjalan sangat baik dengan: 2 vCPU, 8GB RAM dan 500 IOP kinerja penyimpanan (dari jawaban Anda). Di situs pelanggan lain, kami meminta hal yang sama dan mendapatkannya, menurut admin VMware. Namun, 2vCPU dibagi dengan 17 VM lapar CPU lainnya dan 8GB RAM juga menggelembung. Saya tidak mengerti disk VM dengan sangat baik, jadi katakanlah kita benar-benar mendapatkannya. Aplikasi kami berkinerja bagus di yang pertama dari dua lingkungan ESXi ini, dan mengerikan di yang lain. Bagaimana saya mengukur perbedaan dari dalam VM?
Peter V. Mørch
1
Anda dapat memonitor " CPU Steal " di bagian atas dalam VM Anda untuk melihat apakah CPU terlalu banyak berkomitmen. Untuk RAM ballooning / swapping, sulit untuk mengetahui dari dalam VM, kecuali untuk kinerja yang buruk. Anda dapat meminta pandangan vCenter dan sumber daya untuk VM. Lihat contoh di atas.
ewwhite
1
Saya akan melihat Mencuri CPU. Kami terkadang berakhir dengan admin VMware menunjuk jari ke aplikasi kami dan kami menunjuk jari pada lingkungan VMware yang lambat. Namun, kami paling sering bahkan tidak melihat akses ke vSphere dan kemudian menjadi sulit untuk memecahkan masalah, ketika itu berfungsi dengan baik di instalasi lain. Saya kira satu pendekatan bisa menjadi: "Jika Anda ingin kami memecahkan masalah kinerja, kami setidaknya perlu melihat akses ke vCenter Anda"
Peter V. Mørch
3
Kebanyakan admin VMware bahkan tidak tahu cara membaca hal-hal ini. Saya menghabiskan banyak waktu untuk membersihkan setelah mereka. Jadi sebagai vendor, sulit untuk meminta akses atau wawasan tentang pengaturan mereka. Tapi saya pikir akan lebih baik untuk memperkuat persyaratan Anda kemudian menegakkannya. Meskipun saya biasanya tidak merekomendasikan pengaturan pemesanan, jika aplikasi Anda kritis mungkin masuk akal. Atau paling tidak, menetapkan "prioritas saham". Apa yang dilakukan aplikasi?
ewwhite
1
Sudahkah Anda mempertimbangkan untuk mendistribusikan ini sebagai alat VMware dengan konfigurasi yang disarankan kecil, sedang, dan besar?
ewwhite