Analisis kinerja VM di VMware vSphere. Bagian 3: Penyimpanan



Bagian 1. Tentang CPU
Bagian 2. Tentang Memori

Hari ini kita akan menganalisis metrik subsistem disk di vSphere. Masalah dengan penyimpanan adalah alasan paling umum untuk mesin virtual yang lambat. Jika dalam kasus dengan CPU dan RAM pemecahan masalah berakhir pada tingkat hypervisor, maka dengan masalah dengan disk, Anda mungkin harus berurusan dengan jaringan data dan sistem penyimpanan.

Saya akan menganalisis topik pada contoh akses blok ke penyimpanan, meskipun dengan akses file penghitung hampir sama.

Sedikit teori


Ketika berbicara tentang kinerja subsistem disk mesin virtual, biasanya perhatikan tiga parameter terkait:

  • jumlah operasi input / output (Operasi Input / Output Per Detik, IOPS);
  • bandwidth (Throughput);
  • latensi operasi input / output (Latensi).

Jumlah IOPS biasanya penting untuk beban kerja acak: akses ke blok pada disk yang terletak di tempat yang berbeda. Basis data, aplikasi bisnis (ERP, CRM), dll. Dapat berfungsi sebagai contoh pemuatan tersebut.

Throughput penting untuk beban berurutan: akses ke blok yang terletak satu demi satu. Misalnya, server file (tetapi tidak selalu) dan sistem pengawasan video dapat menghasilkan beban seperti itu.

Throughput terkait dengan jumlah operasi I / O sebagai berikut:

Throughput = IOPS * Ukuran blok , di mana ukuran Blok adalah ukuran blok.

Ukuran blok adalah fitur yang cukup penting. Versi ESXi modern memungkinkan blok hingga 32.767 KB. Jika blok lebih besar, itu dibagi menjadi beberapa. Tidak semua sistem penyimpanan dapat bekerja secara efektif dengan blok besar seperti itu, jadi Pengaturan Lanjutan ESXi memiliki parameter DiskMaxIOSize. Dengan menggunakannya, Anda dapat mengurangi ukuran maksimum blok yang dilewati oleh hypervisor (lebih detail di sini ). Saya sarankan Anda berkonsultasi dengan produsen sistem penyimpanan sebelum mengubah parameter ini, atau setidaknya menguji perubahan di bangku laboratorium.

Ukuran blok besar dapat mempengaruhi kinerja penyimpanan. Bahkan jika jumlah IOPS dan throughput relatif kecil, latensi tinggi dapat terjadi dengan ukuran blok yang besar. Karena itu, perhatikan parameter ini.

Latensi adalah parameter kinerja yang paling menarik. Latensi operasi I / O untuk mesin virtual adalah jumlah dari:

  • keterlambatan dalam hypervisor (KAVG, Average Kernel MilliSec / Read);
  • latensi yang diberikan oleh jaringan data dan penyimpanan (DAVG, Average Driver MilliSec / Command).

Total keterlambatan yang terlihat di OS tamu (GAVG, MilliSec / Perintah Tamu Rata-Rata) adalah jumlah dari KAVG dan DAVG.

GAVG dan DAVG diukur, dan KAVG dihitung: GAVG - DAVG.


Sumber

Mari kita memikirkan KAVG . Dalam operasi normal, KAVG harus cenderung nol, atau setidaknya jauh lebih kecil daripada DAVG. Satu-satunya kasus saya tahu kapan KAVG diharapkan menjadi tinggi adalah batas IOPS pada disk VM. Dalam hal ini, ketika mencoba melampaui batas, KAVG akan meningkat.

Komponen paling penting dari KAVG adalah QAVG - waktu dalam antrian untuk memproses di dalam hypervisor. Komponen yang tersisa dari KAVG dapat diabaikan.

Antrian dalam driver adaptor disk dan antrian bulan memiliki ukuran tetap. Untuk lingkungan yang sarat muatan, ukuran ini dapat bermanfaat untuk meningkat. Ini menjelaskan cara meningkatkan antrian di driver adaptor (pada saat yang sama, antrian ke bulan akan meningkat). Pengaturan ini berfungsi ketika hanya satu VM yang bekerja dengan bulan, yang jarang terjadi. Jika ada beberapa VM di bulan, Anda juga harus meningkatkan parameter Disk.SchedNumReqOutstanding (instruksi di sini ). Dengan meningkatkan antrian, Anda mengurangi QAVG dan KAVG.

Tetapi, sekali lagi, pertama-tama baca dokumentasi dari vendor HBA dan uji perubahannya di bangku laboratorium.

Ukuran antrian ke bulan dapat dipengaruhi oleh masuknya mekanisme SIOC (Storage I / O Control). Ini memberikan akses seragam ke bulan dari semua server di cluster dengan secara dinamis mengubah antrian ke bulan di server. Yaitu, jika VM berjalan pada host yang membutuhkan jumlah kinerja yang tidak proporsional (tetangga berisik VM), SIOC mengurangi panjang antrian ke bulan pada host ini (DQLEN). Lebih detail di sini .

KAVG beres, sekarang sedikit tentang DAVG . Semuanya sederhana di sini: DAVG adalah penundaan yang diperkenalkan oleh lingkungan eksternal (jaringan data dan penyimpanan). Setiap sistem penyimpanan modern dan tidak begitu memiliki penghitung kinerjanya sendiri. Untuk menganalisis masalah dengan DAVG, masuk akal untuk melihatnya. Jika semuanya baik-baik saja di ESXi dan sisi penyimpanan, periksa jaringan data.

Untuk menghindari masalah kinerja, pilih Kebijakan Pemilihan Jalur (PSP) yang tepat untuk penyimpanan Anda. Hampir semua sistem penyimpanan modern mendukung PSP Round-Robin (dengan atau tanpa ALUA, Asymmetric Logical Unit Access). Kebijakan ini memungkinkan Anda untuk menggunakan semua jalur yang tersedia untuk penyimpanan. Dalam kasus ALUA, hanya jalur ke pengontrol yang memiliki bulan yang digunakan. Tidak semua sistem penyimpanan pada ESXi memiliki aturan default yang menetapkan kebijakan Round-Robin. Jika tidak ada aturan untuk sistem penyimpanan Anda, gunakan plug-in dari pabrik penyimpanan yang akan membuat aturan terkait pada semua host di kluster, atau buat aturan sendiri. Detail di sini .

Selain itu, beberapa vendor penyimpanan merekomendasikan untuk mengubah jumlah IOPS per jalur dari nilai standar 1000 menjadi 1. Dalam praktik kami, ini memungkinkan kami untuk "memeras" kinerja lebih banyak dari penyimpanan dan secara signifikan mengurangi waktu yang diperlukan untuk failover jika terjadi kegagalan atau pembaruan pengontrol. Periksa rekomendasi vendor, dan jika tidak ada kontraindikasi, maka cobalah mengubah parameter ini. Detail di sini .

Penghitung kinerja dasar subsistem disk mesin virtual


Penghitung kinerja subsistem disk di vCenter dikumpulkan di bagian Datastore, Disk, Virtual Disk:



Bagian Datastore berisi metrik untuk penyimpanan disk vSphere (datastores) tempat disk VM berada. Di sini Anda akan menemukan penghitung standar untuk:

  • IOPS (Permintaan baca / tulis rata-rata per detik),
  • bandwidth (Baca / Tulis rate),
  • keterlambatan (Baca / Tulis / Latensi tertinggi).

Dari nama-nama penghitung, pada prinsipnya, semuanya jelas. Sekali lagi, saya akan menarik perhatian pada kenyataan bahwa di sini statistik bukan untuk VM (atau disk VM) tertentu, tetapi umum untuk seluruh datastore. Menurut pendapat saya, lebih mudah untuk melihat statistik ini di ESXTOP, setidaknya dengan dasar bahwa periode pengukuran minimum adalah 2 detik.

Bagian Disk berisi metrik untuk perangkat blok yang digunakan oleh VM. Ada penghitung IOPS dari tipe penjumlahan (jumlah operasi I / O per periode pengukuran) dan beberapa penghitung yang terkait dengan akses blok (Perintah dibatalkan, Bus direset). Menurut pendapat saya, informasi ini juga lebih nyaman untuk ditonton di ESXTOP.

Bagian Disk Virtual adalah yang paling berguna dalam hal mengatasi masalah kinerja subsistem disk VM. Di sini Anda dapat melihat kinerja untuk setiap disk virtual. Informasi ini diperlukan untuk memahami jika mesin virtual tertentu memiliki masalah. Selain penghitung standar untuk jumlah operasi input / output, volume baca / tulis dan penundaan, bagian ini berisi penghitung berguna yang menunjukkan ukuran blok: Baca / Tulis ukuran permintaan.

Pada gambar di bawah ini, grafik kinerja disk VM, di mana Anda dapat melihat jumlah IOPS, latensi, dan ukuran blok.



Metrik kinerja juga dapat dilihat di seluruh datastore jika SIOC diaktifkan. Berikut adalah beberapa informasi dasar tentang Latency dan IOPS rata-rata. Secara default, informasi ini hanya dapat dilihat secara waktu nyata.



ESXTOP


ESXTOP memiliki beberapa layar yang menampilkan informasi tentang subsistem disk host secara keseluruhan, masing-masing mesin virtual dan disk mereka.

Mari kita mulai dengan informasi di mesin virtual. Layar "Disk VM" dipanggil oleh tombol "v":



NVDISK adalah jumlah disk VM. Untuk melihat informasi pada setiap disk, tekan "e" dan masukkan GID VM yang Anda minati.

Arti dari parameter yang tersisa pada layar ini jelas dari namanya.

Layar lain yang bermanfaat untuk pemecahan masalah adalah Adaptor disk. Ini disebut dengan tombol "d" (pada gambar di bawah ini, bidang A, B, C, D, E, G dipilih):



NPTH adalah jumlah jalur bulan yang terlihat dari adaptor ini. Untuk mendapatkan informasi tentang setiap jalur pada adaptor, tekan "e" dan masukkan nama adaptor:



AQLEN - ukuran antrian maksimum pada adaptor.

Juga pada layar ini adalah penghitung keterlambatan yang saya bicarakan di atas: KAVG / cmd, GAVG / cmd, DAVG / cmd, QAVG / cmd .

Layar perangkat Disk, yang disebut dengan tombol โ€œuโ€, menampilkan informasi pada masing-masing perangkat blok - bulan (pada gambar di bawah ini, bidang A, B, F, G, saya dipilih). Di sini Anda dapat melihat status antrian ke bulan.



DQLEN - ukuran antrian untuk perangkat blok.
ACTV adalah jumlah perintah I / O dalam inti ESXi.
QUED - jumlah perintah I / O dalam antrian.
% USD - ACTV / DQLEN ร— 100%.
LOAD - (ACTV + QUED) / DQLEN.

Jika% USD tinggi, Anda harus mempertimbangkan untuk memperluas lineup. Semakin banyak tim dalam antrian, semakin tinggi QAVG dan, karenanya, KAVG.

Anda juga dapat melihat pada layar perangkat Disk apakah VAAI (vStorage API untuk Integrasi Array) berjalan pada penyimpanan. Untuk melakukan ini, pilih bidang A dan O.

Mekanisme VAAI memungkinkan Anda untuk mentransfer sebagian pekerjaan dari hypervisor langsung ke sistem penyimpanan, misalnya, memusatkan perhatian, menyalin blok atau memblokir.



Seperti yang Anda lihat pada gambar di atas, VAAI bekerja pada sistem penyimpanan ini: Nol dan primitif ATS digunakan secara aktif.

Kiat Optimasi Disk ESXi


  • Perhatikan ukuran blok.
  • Atur ukuran antrian optimal pada HBA.
  • Ingatlah untuk mengaktifkan SIOC di datastore.
  • Pilih PSP Anda sesuai dengan rekomendasi pabrikan.
  • Pastikan VAAI berfungsi.

Source: https://habr.com/ru/post/id461127/


All Articles