Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Yen sampeyan ngatur infrastruktur virtual adhedhasar VMware vSphere (utawa tumpukan teknologi liyane), sampeyan bisa uga kerep krungu keluhan saka pangguna: "Mesin virtual alon!" Ing seri artikel iki, aku bakal nganalisa metrik kinerja lan menehi pitutur marang kowe apa lan ngapa alon-alon lan carane nggawe manawa ora alon.

Aku bakal nimbang aspek ing ngisor iki kinerja mesin virtual:

  • CPU,
  • Frame,
  • DISK,
  • Jaringan.

Aku bakal miwiti karo CPU.

Kanggo nganalisa kinerja kita kudu:

  • vCenter Performance Counter - counter kinerja, grafik sing bisa dideleng liwat Klien vSphere. Informasi ing counters iki kasedhiya ing sembarang versi klien ("ngendel" klien ing C #, klien web ing Flex lan klien web ing HTML5). Ing artikel iki, kita bakal nggunakake gambar saka klien C #, mung amarga katon luwih apik ing miniatur :)
  • ESXTOP – sarana sing mbukak saka baris printah ESXi. Kanthi bantuan, sampeyan bisa entuk nilai counter kinerja ing wektu nyata utawa ngunggah nilai kasebut sajrone wektu tartamtu menyang file .csv kanggo analisis luwih lanjut. Sabanjure, aku bakal ngandhani sampeyan luwih lengkap babagan alat iki lan nyedhiyakake sawetara tautan sing migunani kanggo dokumentasi lan artikel babagan topik kasebut.

Minangka teori

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Ing ESXi, proses kapisah - donya ing terminologi VMware - tanggung jawab kanggo operasi saben vCPU (inti mesin virtual). Ana uga pangolahan layanan, nanging saka sudut pandang nganalisa kinerja VM kurang menarik.

Proses ing ESXi bisa ana ing salah siji saka patang negara:

  • Run – proses nindakake sawetara karya migunani.
  • ngenteni - proses ora nindakake karya (idle) utawa ngenteni input / output.
  • Kostop - kondisi sing dumadi ing mesin virtual multi-inti. Iku occurs nalika hypervisor CPU scheduler (ESXi CPU Scheduler) ora bisa gawe jadwal eksekusi simultaneous kabeh inti mesin virtual aktif ing inti server fisik. Ing donya fisik, kabeh intine prosesor bisa podo karo, OS tamu ing VM ngarepake prilaku sing padha, mula hypervisor kudu alon-alon intine VM sing nduweni kemampuan kanggo ngrampungake siklus jam luwih cepet. Ing versi modern saka ESXi, panjadwal CPU nggunakake mekanisme disebut anteng co-scheduling: hypervisor nganggep longkangan antarane "paling cepet" lan inti mesin virtual "paling alon" (skew). Yen longkangan ngluwihi batesan tartamtu, inti cepet lumebu ing negara costop. Yen intine VM nglampahi akeh wektu ing negara iki, bisa nyebabake masalah kinerja.
  • siap - proses mlebu negara iki nalika hypervisor ora bisa nyedhiakke sumber daya kanggo eksekusi. Nilai siap sing dhuwur bisa nyebabake masalah kinerja VM.

Counter kinerja CPU mesin virtual dhasar

Panggunaan CPU, %. Nuduhake persentase panggunaan CPU kanggo wektu tartamtu.

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Kepiye cara nganalisa? Yen VM terus-terusan nggunakake CPU ing 90% utawa ana puncak nganti 100%, mula kita duwe masalah. Masalah bisa dituduhake ora mung ing operasi "alon" aplikasi ing VM, nanging uga ora bisa diakses VM liwat jaringan. Yen sistem ngawasi nuduhake yen VM periodik tiba mati, mbayar manungsa waΓ© kanggo puncak ing grafik Panggunaan CPU.

Ana Weker standar sing nuduhake beban CPU mesin virtual:

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Apa aku kudu? Yen panggunaan CPU VM terus-terusan ngliwati atap, sampeyan bisa mikir babagan nambah jumlah vCPU (sayange, iki ora mbantu) utawa mindhah VM menyang server kanthi prosesor sing luwih kuat.

Panggunaan CPU ing MHz

Ing grafik ing vCenter Usage ing% sampeyan bisa ndeleng mung kanggo kabeh mesin virtual; ora ana grafik kanggo inti individu (ing Esxtop ana % nilai kanggo inti). Kanggo saben inti sampeyan bisa ndeleng Dianggo ing MHz.

Kepiye cara nganalisa? Mengkono yen aplikasi ora dioptimalake kanggo arsitektur multi-inti: mung nggunakake siji inti 100%, lan liyane nganggur tanpa mbukak. Contone, kanthi setelan serep gawan, MS SQL miwiti proses ing mung siji inti. Akibaté, serep slows mudhun ora amarga kacepetan alon saka disk (iki sing pangguna pisanan ngeluh), nanging amarga prosesor ora bisa ngatasi. Masalah iki ditanggulangi kanthi ngganti paramèter: serep wiwit mbukak ing podo karo ing sawetara file (mungguh, ing sawetara pangolahan).

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU
Conto beban sing ora rata ing inti.

Ana uga kahanan (kaya ing grafik ing ndhuwur) nalika inti dimuat ora rata lan sawetara ana puncak 100%. Kaya sing ngemot mung siji inti, weker kanggo panggunaan CPU ora bisa digunakake (iku kanggo kabeh VM), nanging bakal ana masalah kinerja.

Apa aku kudu? Yen piranti lunak ing mesin virtual ngemot inti kanthi ora rata (mung nggunakake siji inti utawa bagean saka inti), ora ana gunane kanggo nambah jumlahe. Ing kasus iki, luwih apik kanggo mindhah VM menyang server kanthi prosesor sing luwih kuat.

Sampeyan uga bisa nyoba mriksa setelan konsumsi daya ing BIOS server. Akeh administrator ngaktifake mode Kinerja Tinggi ing BIOS lan kanthi mangkono mateni teknologi hemat energi C-states lan P-states. Prosesor Intel modern nggunakake teknologi Turbo Boost, sing nambah frekuensi inti prosesor individu kanthi biaya inti liyane. Nanging mung bisa digunakake nalika teknologi hemat energi diuripake. Yen kita mateni, prosesor ora bisa nyuda konsumsi daya saka inti sing ora dimuat.

VMware nyaranake supaya ora mateni teknologi hemat daya ing server, nanging milih mode sing ninggalake manajemen daya kanggo hypervisor sabisa. Ing kasus iki, ing setelan konsumsi daya hypervisor, sampeyan kudu milih High Performance.

Yen sampeyan duwe VM individu (utawa intine VM) ing prasarana sing mbutuhake frekuensi CPU tambah, konsumsi daya kanthi bener bisa nambah kinerja.

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

CPU Siap

Yen inti VM (vCPU) ing negara Siap, iku ora nindakake karya migunani. Kahanan iki dumadi nalika hypervisor ora nemokake inti fisik free kang proses vCPU mesin virtual bisa diutus.

Kepiye cara nganalisa? Biasane, yen inti mesin virtual ing negara Siap luwih saka 10% wektu, sampeyan bakal sok dong mirsani masalah kinerja. Cukup, luwih saka 10% wektu VM ngenteni sumber daya fisik kasedhiya.

Ing vCenter sampeyan bisa ndeleng 2 counters related kanggo CPU Ready:

  • kesiapan,
  • Siap.

Nilai saka loro counter bisa dideleng kanggo kabeh VM lan kanggo inti individu.
Kesiapan nuduhake nilai kasebut kanthi cepet minangka persentase, nanging mung ing Real-time (data kanggo jam pungkasan, interval pangukuran 20 detik). Iku luwih apik kanggo nggunakake counter iki mung kanggo nggoleki masalah "panas ing tumit".

Nilai counter siap uga bisa dideleng saka perspektif sejarah. Iki migunani kanggo nggawe pola lan kanggo analisis sing luwih jero babagan masalah kasebut. Contone, yen mesin virtual wiwit nemu masalah kinerja ing wektu tartamtu, sampeyan bisa mbandhingakΓ© interval saka Nilai CPU Siap karo mbukak total ing server ngendi VM iki mlaku, lan njupuk ngukur kanggo nyuda mbukak (yen DRS). gagal).

Siap, ora kaya Kesiapan, ditampilake ora ing persentase, nanging ing milidetik. Iki minangka counter tipe Summation, yaiku, nuduhake suwene wektu pangukuran inti VM ana ing negara Siap. Sampeyan bisa ngowahi nilai iki dadi persentase nggunakake rumus prasaja:

(Nilai penjumlahan siap CPU / (interval nganyari standar grafik ing detik * 1000)) * 100 = CPU siap %

Contone, kanggo VM ing grafik ing ngisor iki, nilai Puncak Siap kanggo kabeh mesin virtual bakal kaya ing ngisor iki:

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Nalika ngetung persentasi Siap, sampeyan kudu menehi perhatian marang rong poin:

  • Nilai Ready ing kabeh VM yaiku jumlah saka Ready antarane inti.
  • Interval pangukuran. Kanggo Real-time yaiku 20 detik, lan, contone, ing grafik saben dina yaiku 300 detik.

Kanthi pemecahan masalah aktif, titik-titik prasaja iki bisa gampang dilewati lan wektu sing penting bisa dibuwang kanggo ngrampungake masalah sing ora ana.

Ayo ngetung Siap adhedhasar data saka grafik ing ngisor iki. (324474 / (20 * 1000)) * 100 = 1622% kanggo kabeh VM. Yen sampeyan ndeleng inti, ora medeni: 1622/64 = 25% saben inti. Ing kasus iki, nyekel cukup gampang kanggo titik: Nilai Siap ora realistis. Nanging yen kita ngomong babagan 10-20% kanggo kabeh VM kanthi sawetara intine, mula kanggo saben inti nilai kasebut bisa uga ana ing kisaran normal.

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Apa aku kudu? Nilai Siap dhuwur nuduhake yen server ora duwe sumber daya prosesor cukup kanggo operasi normal mesin virtual. Ing kahanan kaya mengkono, sing isih ana yaiku nyuda oversubscribe dening prosesor (vCPU:pCPU). Temenan, iki bisa ditindakake kanthi nyuda paramèter VM sing wis ana utawa kanthi migrasi bagean VM menyang server liyane.

Co-stop

Kepiye cara nganalisa? Counter iki uga saka jinis Summation lan diowahi dadi persentase kanthi cara sing padha karo Siap:

(Nilai penjumlahan co-stop CPU / (interval nganyari standar grafik ing detik * 1000)) * 100 = CPU co-stop %

Ing kene sampeyan uga kudu menehi perhatian marang jumlah inti ing VM lan interval pangukuran.
Ing negara costop, kernel ora nindakake karya migunani. Kanthi pilihan sing bener saka ukuran VM lan mbukak normal ing server, co-stop counter kudu cedhak karo nul.

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU
Ing kasus iki, beban kasebut jelas ora normal :)

Apa aku kudu? Yen sawetara VM karo nomer akeh intine mlaku ing siji hypervisor lan ana oversubscription ing CPU, banjur co-stop counter bisa nambah, kang bakal mimpin kanggo masalah karo kinerja VMs iki.

Uga, co-stop bakal nambah yen inti aktif siji VM nggunakake utas ing siji inti server fisik kanthi hyper-treading aktif. Kahanan iki bisa uga muncul, contone, yen VM duwe intine luwih akeh tinimbang kasedhiya ing server sing mlaku, utawa yen setelan "preferHT" diaktifake kanggo VM. Sampeyan bisa maca babagan setelan iki kene.

Kanggo supaya masalah karo kinerja VM amarga dhuwur co-mandeg, pilih ukuran VM sesuai karo Rekomendasi saka Produsèn saka piranti lunak sing mlaku ing VM iki lan Kapabilitas saka server fisik ngendi VM mlaku.

Aja nambah intine ing cadangan; iki bisa nyebabake masalah kinerja ora mung kanggo VM dhewe, nanging uga kanggo tetanggan ing server.

Metrik CPU liyane sing migunani

Run - pinten wektu (ms) sajrone wektu pangukuran vCPU ana ing negara RUN, yaiku, bener-bener nindakake pakaryan sing migunani.

Idle – suwene (ms) sajrone wektu pangukuran vCPU ora aktif. Nilai Idle sing dhuwur ora dadi masalah, vCPU mung "ora ana sing kudu ditindakake."

ngenteni – suwene (ms) sajrone wektu pangukuran vCPU ana ing status Enteni. Wiwit IDLE kalebu ing counter iki, nilai Enteni dhuwur uga ora nuduhake masalah. Nanging yen Enteni IDLE kurang nalika Enteni dhuwur, tegese VM nunggu operasi I / O rampung, lan iki bisa uga nuduhake masalah karo kinerja hard drive utawa piranti virtual VM.

Max winates - suwene (ms) sajrone wektu pangukuran vCPU ana ing status Siap amarga watesan sumber daya sing disetel. Yen kinerja inexplicably kurang, iku migunani kanggo mriksa Nilai counter iki lan watesan CPU ing setelan VM. VM bisa uga duwe watesan sing sampeyan ora ngerti. Contone, iki kedadeyan nalika VM dikloning saka cithakan sing watesan CPU disetel.

Ganti ngenteni - suwene sajrone wektu pangukuran vCPU ngenteni operasi karo VMkernel Swap. Yen nilai counter iki luwih saka nol, mula VM mesthi duwe masalah kinerja. Kita bakal pirembagan liyane babagan SWAP ing artikel bab counters RAM.

ESXTOP

Yen counter kinerja ing vCenter apik kanggo nganalisa data sajarah, banjur analisis operasional masalah luwih apik rampung ing ESXTOP. Ing kene, kabeh nilai ditampilake ing wangun siap-siap (ora perlu nerjemahake apa-apa), lan wektu pangukuran minimal yaiku 2 detik.
Layar ESXTOP kanggo CPU diarani nganggo tombol "c" lan katon kaya iki:

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Kanggo penak, sampeyan mung bisa ninggalake pangolahan mesin virtual kanthi mencet Shift-V.
Kanggo ndeleng metrik kanggo inti VM individu, penet "e" banjur ketik GID saka VM kapentingan (30919 ing gambar ing ngisor iki):

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Ayo kula sedhela liwat kolom sing diwenehi standar. Kolom tambahan bisa ditambahake kanthi mencet "f".

NWLD (Jumlah Dunia) - nomer pangolahan ing grup. Kanggo nggedhekake grup lan ndeleng metrik kanggo saben proses (contone, kanggo saben inti ing VM multi-inti), pencet "e". Yen ana luwih saka siji proses ing grup, banjur nilai metrik kanggo grup padha karo jumlah metrik kanggo proses individu.

%USED – pinten siklus CPU server digunakake dening proses utawa klompok pangolahan.

%RUN - suwene sajrone periode pangukuran proses kasebut ana ing negara RUN, yaiku. nindakake karya migunani. Beda karo %USED amarga ora nganggep hyper-threading, skala frekuensi lan wektu sing ditindakake kanggo tugas sistem (%SYS).

%SYS - wektu ngginakaken ing tugas sistem, contone: ngganggu Processing, I / O, operasi jaringan, etc. Nilai bisa dhuwur yen VM wis I / O gedhe.

%OVRLP – pinten wektu inti fisik ing kang proses VM mlaku ngginakaken ing tugas pangolahan liyane.

Metrik iki ana hubungane karo saben liyane kaya ing ngisor iki:

%USED = %RUN + %SYS -%OVRLP.

Biasane metrik %USED luwih informatif.

%NGENTENI - suwene sajrone wektu pangukuran proses kasebut ana ing negara Enteni. Ngaktifake IDLE.

%IDLE – suwene wektu pangukuran proses ana ing negara IDLE.

%SWPWT - suwene sajrone wektu pangukuran vCPU ngenteni operasi karo VMkernel Swap.

%VMWAIT - suwene wektu pangukuran vCPU ing negara ngenteni acara (biasane I / O). Ora ana counter sing padha ing vCenter. Nilai dhuwur nuduhake masalah karo I / O ing VM.

%WAIT = %VMWAIT + %IDLE + %SWPWT.

Yen VM ora nggunakake VMkernel Swap, banjur nalika nganalisa masalah kinerja dianjurake kanggo ndeleng% VMWAIT, amarga metrik iki ora njupuk menyang akun wektu nalika VM ora nindakake apa-apa (% IDLE).

%RDY - suwene sajrone wektu pangukuran proses kasebut ana ing negara Siap.

%CSTP - suwene sajrone periode pangukuran proses kasebut ana ing negara costop.

%MLMTD - suwene wektu pangukuran vCPU ana ing negara Siap amarga watesan sumber daya sing disetel.

% WAIT + % RDY + % CSTP + % RUN = 100% - inti VM tansah ing salah siji saka papat negara iki.

CPU ing hypervisor

vCenter uga counters kinerja CPU kanggo hypervisor, nanging padha ora menarik - padha mung jumlah saka counters kanggo kabeh VM ing server.
Cara sing paling trep kanggo ndeleng status CPU ing server yaiku ing tab Ringkesan:

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Kanggo server, uga kanggo mesin virtual, ana Weker standar:

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Nalika beban CPU server dhuwur, VM sing mlaku ing kono bakal ngalami masalah kinerja.

Ing ESXTOP, data beban CPU server ditampilake ing sisih ndhuwur layar. Saliyane beban CPU standar, sing ora informatif banget kanggo hypervisor, ana telung metrik liyane:

UTIL Inti(%) - ngemot inti server fisik. Counter iki nuduhake suwene wektu inti nindakake karya sajrone wektu pangukuran.

PCPU UTIL(%) - yen hyper-threading diaktifake, banjur ana rong utas (PCPU) saben inti fisik. Metrik iki nuduhake suwene saben thread kanggo ngrampungake karya.

PCPU USED(%) - padha PCPU UTIL (%), nanging njupuk menyang akun skala frekuensi (salah siji ngurangi frekuensi inti kanggo tujuan ngirit energi, utawa nambah frekuensi inti amarga teknologi Turbo Boost) lan hyper-threading.

PCPU_USED% = PCPU_UTIL% * frekuensi inti efektif / frekuensi inti nominal.

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU
Ing gambar iki, kanggo sawetara inti, amarga Turbo Boost, nilai USED luwih saka 100%, amarga frekuensi inti luwih dhuwur tinimbang nominal.

Sawetara tembung babagan carane hyper-threading dianggep. Yen proses dieksekusi 100% wektu ing loro utas inti fisik server, nalika inti beroperasi ing frekuensi nominal, banjur:

  • CORE UTIL kanggo inti bakal 100%,
  • PCPU UTIL kanggo loro Utas bakal 100%,
  • PCPU USED kanggo loro Utas bakal 50%.

Yen loro Utas ora bisa 100% saka wektu sak periode pangukuran, banjur ing wektu sing Utas makarya ing podo karo, PCPU USED kanggo inti dipΓ©rang dadi setengah.

ESXTOP uga duwe layar karo paramèter konsumsi daya CPU server. Ing kene sampeyan bisa ndeleng apa server nggunakake teknologi hemat energi: C-states lan P-states. Disebut kanthi tombol "p":

Analisis kinerja mesin virtual ing VMware vSphere. Bagean 1: CPU

Masalah Kinerja CPU Umum

Pungkasan, aku bakal nliti panyebab umum masalah karo kinerja CPU VM lan menehi tips singkat kanggo ngrampungake:

Kacepetan jam inti ora cukup. Yen ora bisa nganyarke VM dadi intine sing luwih kuat, sampeyan bisa nyoba ngganti setelan daya supaya Turbo Boost bisa luwih efisien.

Ukuran VM salah (akeh banget / sawetara inti). Yen sampeyan nginstal sawetara inti, bakal ana beban CPU sing dhuwur ing VM. Yen ana akeh, nyekel co-stop dhuwur.

Oversubscription gedhe saka CPU ing server. Yen VM wis Siap dhuwur, nyuda oversubscription CPU.

Topologi NUMA sing salah ing VM gedhe. Topologi NUMA sing katon dening VM (vNUMA) kudu cocog karo topologi NUMA server (pNUMA). Diagnostik lan solusi sing bisa kanggo masalah iki ditulis, contone, ing buku "VMware vSphere 6.5 Host Resources Deep Dive". Yen sampeyan ora pengin pindhah luwih jero lan sampeyan ora duwe watesan lisensi ing OS diinstal ing VM, nggawe akeh soket virtual ing VM, siji inti ing wektu. Sampeyan ora bakal kelangan akeh :)

Iku kabeh kanggo kula babagan CPU. Takon pitakonan. Ing sisih sabanjure aku bakal ngomong babagan RAM.

link migunanihttp://virtual-red-dot.info/vm-cpu-counters-vsphere/
https://kb.vmware.com/kb/1017926
http://www.yellow-bricks.com/2012/07/17/why-is-wait-so-high/
https://communities.vmware.com/docs/DOC-9279
https://www.vmware.com/content/dam/digitalmarketing/vmware/en/pdf/techpaper/performance/whats-new-vsphere65-perf.pdf
https://pages.rubrik.com/host-resources-deep-dive_request.html

Source: www.habr.com

Add a comment