Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

Part 1. Babagan CPU

Ing artikel iki kita bakal pirembagan bab memori akses acak (RAM) counter kinerja ing vSphere.
Iku misale jek sing karo memori kabeh luwih cetha tinimbang karo prosesor: yen masalah kinerja njedhul ing VM, iku angel ora sok dong mirsani. Nanging yen padha katon, iku luwih angel kanggo menehi hasil karo wong-wong mau. Nanging dhisik dhisik.

Minangka teori

RAM mesin virtual dijupuk saka memori server sing VMs mlaku. Iki cukup jelas :). Yen RAM server ora cukup kanggo kabeh wong, ESXi wiwit nggunakake Techniques reclamation memori. Yen ora, sistem operasi VM bakal nabrak karo kasalahan akses RAM.

ESXi mutusake teknik sing digunakake gumantung saka beban RAM:

Status memori

Watesan

Tindakan

High

400% min Gratis

Sawise tekan wates ndhuwur, kaca memori gedhe dipérang dadi cilik (TPS beroperasi ing mode standar).

Clear

100% min Gratis

Kaca memori gedhe dipérang dadi cilik, TPS dipeksa.

Soft

64% min Gratis

TPS + Balon

hard

32% min Gratis

TPS + Compress + Swap

kurang

16% min Gratis

Compress + Swap + Blokir

Sumber

minFree minangka RAM sing dibutuhake supaya hypervisor bisa mlaku.

Nganti ESXi 4.1 klebu, minFree didandani kanthi standar - 6% saka RAM server (persentase bisa diganti liwat opsi Mem.MinFreePct ing ESXi). Ing versi mengko, amarga tuwuhing memori ing server, minFree wiwit diwilang adhedhasar jumlah memori saka host, lan ora minangka nilai persentasi tetep.

Nilai minFree (standar) diitung kaya ing ngisor iki:

Persentase memori dilindhungi undhang-undhang kanggo minFree

Range memori

6%

0-4 GB

4%

4-12 GB

2%

12-28 GB

1%

Sisa memori

Sumber

Contone, kanggo server kanthi 128 GB RAM, nilai MinFree bakal kaya ing ngisor iki:
MinFree = 245,76 + 327,68 + 327,68 + 1024 = 1925,12 MB = 1,88 GB
Nilai nyata bisa beda-beda dening saperangan atus MB, gumantung ing server lan RAM.

Persentase memori dilindhungi undhang-undhang kanggo minFree

Range memori

Nilai kanggo 128 GB

6%

0-4 GB

245,76 MB

4%

4-12 GB

327,68 MB

2%

12-28 GB

327,68 MB

1%

Sisa memori (100 GB)

1024 MB

Biasane, kanggo stands produktif, mung negara High bisa dianggep normal. Kanggo pangujian lan bangku pangembangan, Clear/Soft states bisa ditrima. Yen RAM ing host kurang saka 64% MinFree, mula VM sing mlaku mesthi ngalami masalah kinerja.

Ing saben negara, Techniques reclamation memori tartamtu digunakake, wiwit saka TPS, kang wis sakbenere ora efek ing kinerja VM, kanggo Swapping. Aku bakal ngandhani sampeyan luwih akeh babagan dheweke.

Transparent Page Sharing (TPS). TPS, kira-kira, deduplikasi kaca RAM mesin virtual ing server.

ESXi nggoleki kaca RAM mesin virtual podho rupo dening pancacahan lan mbandhingaké jumlah hash saka kaca, lan mbusak duplikat kaca, ngganti karo referensi kanggo kaca padha ing memori fisik server. Akibaté, konsumsi memori fisik suda lan sawetara oversubscription memori bisa digayuh tanpa impact kinerja.

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori
Sumber

Mekanisme iki mung dianggo kanggo kaca memori ukuran 4 KB (kaca cilik). Hypervisor malah ora nyoba kanggo deduplikat kaca ukuran 2 MB (kaca gedhe): kasempatan kanggo nemokake kaca sing padha ukuran iki ora gedhe.

Kanthi gawan, ESXi allocates memori kanggo kaca gedhe. Pamisahan kaca gedhe dadi kaca cilik diwiwiti nalika ambang negara dhuwur tekan lan dipeksa nalika negara Clear tekan (ndeleng tabel negara hypervisor).

Yen sampeyan pengin TPS miwiti kerja tanpa ngenteni RAM host kebak, sampeyan kudu nyetel nilai ing Advanced Options ESXi "Mem.AllocGuestLargePage" kanggo 0 (standar 1). Banjur alokasi kaca memori gedhe kanggo mesin virtual bakal dipateni.

Wiwit Desember 2014, ing kabeh rilis ESXi, TPS antarane VM dipateni kanthi gawan, amarga kerentanan ditemokake sing sacara teoritis ngidini siji VM ngakses RAM saka VM liyane. Rincian kene. Aku durung nemokake informasi babagan implementasine praktis kanggo ngeksploitasi kerentanan TPS.

Kabijakan TPS dikontrol liwat opsi lanjutan "Mem.ShareForceSalting" ing ESXi:
0 - TPS Inter-VM. TPS dianggo kanggo kaca VM beda;
1 - TPS kanggo VMs karo padha "sched.mem.pshare.salt" Nilai ing VMX;
2 (standar) – TPS Intra-VM. TPS dianggo kanggo kaca ing VM.

Temtunipun masuk akal kanggo mateni kaca gedhe lan ngaktifake Inter-VM TPS ing bangku test. Iki uga bisa digunakake kanggo stands karo nomer akeh VMs padha. Contone, ing stands karo VDI, tabungan ing memori fisik bisa tekan puluhan persen.

Balon Memori. Balon ora ana maneh teknik sing ora mbebayani lan transparan kanggo sistem operasi VM minangka TPS. Nanging yen digunakake kanthi bener, sampeyan bisa urip lan malah nggarap Ballooning.

Bebarengan karo Vmware Tools, driver khusus sing diarani Balloon Driver (alias vmmemctl) diinstal ing VM. Nalika hypervisor wiwit mbukak metu saka memori fisik lan lumebu ing negara Soft, takon ESXi VM kanggo mbalekake RAM sing ora digunakake liwat Driver Balon iki. Driver, ing siji, dianggo ing tingkat sistem operasi lan njaluk memori free saka iku. Hypervisor ndeleng kaca memori fisik sing dikuwasani Driver Balon, njupuk memori saka mesin virtual lan bali menyang host. Ora ana masalah karo operasi OS, amarga ing tingkat OS memori dikuwasani dening Balon Driver. Kanthi gawan, Balon Driver bisa njupuk nganti 65% saka memori VM.

Yen VMware Tools ora diinstal ing VM utawa Ballooning dipatèni (Aku ora nyaranake, nanging ana KB:), hypervisor langsung ngalih menyang Techniques luwih kenceng kanggo njabut memori. Kesimpulan: priksa manawa VMware Tools ana ing VM.

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori
Operasi Driver Balon bisa dipriksa saka OS liwat VMware Tools.

Kompresi memori. Teknik iki digunakake nalika ESXi tekan negara Hard. Minangka jeneng tabet, nyoba ESXi compress a 4KB kaca RAM menyang 2KB, mangkono mbebasake sawetara papan ing memori fisik server. Teknik iki kanthi signifikan nambah wektu akses menyang isi kaca VM RAM, amarga kaca kasebut kudu didekompresi dhisik. Kadhangkala ora kabeh kaca bisa dikompres lan proses kasebut mbutuhake sawetara wektu. Mulane, teknik iki ora efektif banget ing praktik.

Pertukaran memori. Sawise fase singkat saka Kompresi memori, ESXi meh pesti (yen VM wis ora dipindhah menyang sarwa dumadi liyane utawa ora dipateni) ngalih menyang Swapping. Lan yen ana sethitik banget memori kiwa (negara Low), banjur hypervisor uga mandheg allocating kaca memori kanggo VM, kang bisa nimbulaké masalah ing OS tamu saka VM.

Iki cara kerja Swapping. Nalika sampeyan nguripake mesin virtual, file karo extension .vswp digawe kanggo iku. Iku witjaksono ing ukuran kanggo RAM unreserved VM: iki prabédan antarane diatur lan memori dilindhungi undhang-undhang. Nalika Swapping mlaku, ESXi ngganti kaca memori mesin virtual menyang file iki lan wiwit nggarap tinimbang memori fisik server. Mesthi, memori "RAM" kuwi sawetara pesenan gedhene luwih alon tinimbang memori nyata, sanajan .vswp ing panyimpenan cepet.

Boten kados Ballooning, nalika kaca sing ora dienggo dijupuk saka VM, kanthi ngganti kaca sing aktif digunakake dening OS utawa aplikasi ing VM bisa dipindhah menyang disk. Akibaté, kinerja VM mudhun nganti beku. VM resmi digunakake lan paling ora bisa dipateni kanthi bener saka OS. Yen sabar 😉

Yen VM wis pindhah menyang Swap, iki minangka kahanan darurat sing paling apik dihindari yen bisa.

counter kinerja memori mesin virtual dhasar

Dadi kita entuk perkara utama. Kanggo ngawasi status memori VM, ana counter ing ngisor iki:

aktif - nuduhake jumlah RAM (KB) sing diakses VM ing periode pangukuran sadurunge.

Dianggo - padha Active, nanging minangka persentasi saka RAM diatur saka VM. Dietung nggunakake rumus ing ngisor iki: aktif ÷ ukuran memori konfigurasi mesin virtual.
Dhuwur Panggunaan lan Aktif, mungguh, ora tansah dadi indikator masalah kinerja VM. Yen VM agresif nggunakake memori (paling ora ngakses), iki ora ateges sing ana ora cukup memori. Nanging, iki minangka alesan kanggo ndeleng apa sing kedadeyan ing OS.
Ana weker standar kanggo panggunaan memori kanggo VM:

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

sambungan - jumlah VM RAM deduplicated nggunakake TPS (ing VM utawa antarane VM).

Ditampa - jumlah memori fisik inang (KB) sing diparengake kanggo VM. Ngaktifake Dibagi.

Nganggep (Diwenehake - Dibagi) - jumlah memori fisik (KB) sing dikonsumsi VM saka host. Ora kalebu Shared.

Yen bagéan saka memori VM diwenehi ora saka memori fisik inang, nanging saka file pertukaran, utawa memori dijupuk saka VM liwat Balon Driver, jumlah iki ora dijupuk menyang akun Diwenehi lan migunakaken.
Nilai Dhuwur sing Diwenehi lan Digunakake pancen normal. Sistem operasi mboko sithik njupuk memori saka hypervisor lan ora menehi maneh. Sajrone wektu, ing VM sing aktif, nilai-nilai counter kasebut nyedhaki jumlah memori sing dikonfigurasi, lan tetep ana.

Zero - jumlah VM RAM (KB), kang ngandhut nul. Memori kasebut dianggep gratis dening hypervisor lan bisa diwenehake menyang mesin virtual liyane. Sawise OS tamu wis ditulis soko kanggo memori zeroed, dadi menyang Konsumsi lan ora bali maneh.

Overhead Reserved - jumlah VM RAM, (KB) dilindhungi undhang-undhang dening hypervisor kanggo operasi VM. Iki jumlah cilik, nanging kudu kasedhiya ing inang, digunakake VM ora bakal miwiti.

Balon - jumlah RAM (KB) dibusak saka VM nggunakake Balloon Driver.

Dikompresi - jumlah RAM (KB) sing dikompres.

Ditukar - jumlah RAM (KB), kang, amarga lack saka memori fisik ing server, dipindhah menyang disk.
Balon lan counters Techniques reclamation memori liyane nul.

Iki minangka grafik karo counter Memori saka VM sing biasane digunakake kanthi 150 GB RAM.

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

Ing grafik ing ngisor iki, VM duwe masalah sing jelas. Ing ngisor grafik sampeyan bisa ndeleng manawa kanggo VM iki kabeh teknik sing diterangake kanggo nggarap RAM digunakake. Balon kanggo VM iki luwih gedhe tinimbang Konsumsi. Nyatane, VM luwih mati tinimbang urip.

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

ESXTOP

Kaya CPU, yen kita pengin cepet netepake kahanan ing host, uga dinamika kanthi interval nganti 2 detik, kita kudu nggunakake ESXTOP.

Layar Memori ESXTOP diarani nganggo tombol "m" lan katon kaya iki (bidang B,D,H,J,K,L,O dipilih):

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

Parameter ing ngisor iki bakal dadi kapentingan kanggo kita:

Mem overcommit avg - Nilai rata-rata oversubscription memori ing inang kanggo 1, 5 lan 15 menit. Yen ndhuwur nol, banjur iki alesan kanggo katon ing apa mengkono, nanging ora tansah indikator saka masalah.

Ing baris PMEM/MB и VMKMEM/MB - informasi babagan memori fisik server lan memori kasedhiya kanggo VMkernel. Antarane menarik ing kene sampeyan bisa ndeleng nilai minfree (ing MB), negara inang ing memori (ing kasus kita, dhuwur).

Ing baris NUMA/MB sampeyan bisa ndeleng distribusi RAM ing simpul NUMA (soket). Ing conto iki, distribusi ora rata, sing ing asas ora apik banget.

Ing ngisor iki statistik server umum kanggo teknik reklamasi memori:

PSHARE/MB - iki minangka statistik TPS;

SWAP/MB - Statistik panggunaan pertukaran;

ZIP/MB - statistik komprèsi kaca memori;

MEMCTL/MB - Statistik panggunaan Balon Driver.

Kanggo VM individu, kita bisa uga kasengsem ing informasi ing ngisor iki. Aku ndhelikake jeneng VMs supaya ora mbingungake penonton :). Yen metrik ESXTOP padha karo counter ing vSphere, Aku bakal nyedhiyani counter cocog.

MEMSZ - jumlah memori sing dikonfigurasi ing VM (MB).
MEMSZ = GRANT + MCTLSZ + SWCUR + ora kena.

PEMBERI - Diwenehake ing MB.

TCHD - Aktif ing MByte.

MCTL? - apa Balloon Driver wis diinstal ing VM.

MCTLSZ — Balon kanggo MB.

MCTLGT - jumlah RAM (MBytes) sing ESXi pengin mbusak saka VM liwat Driver Balon (Memctl Target).

MCTLMAX - jumlah maksimum RAM (MBytes) sing ESXi bisa mbusak saka VM liwat Driver Balon.

SWCUR - jumlah saiki RAM (MBytes) diparengake kanggo VM saka file Swap.

S.W.G.T. - jumlah RAM (MBytes) sing ESXi pengin menehi VM saka file Swap (Swap Target).

Sampeyan uga bisa ndeleng informasi sing luwih rinci babagan topologi NUMA saka VM liwat ESXTOP. Kanggo nindakake iki, pilih kolom D, G:

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

Cilik – Node NUMA ing ngendi VM dumunung. Kene sampeyan bisa langsung sok dong mirsani sudhut vm, kang ora pas ing siji simpul NUMA.

NRMEM – pinten megabyte memori VM njupuk saka simpul NUMA remot.

NLMEM – pinten megabyte memori VM njupuk saka simpul NUMA lokal.

N%L - persentase memori VM ing simpul NUMA lokal (yen kurang saka 80%, masalah kinerja bisa uga muncul).

Memori ing hypervisor

Yen counters CPU kanggo hypervisor biasane ora kapentingan tartamtu, banjur karo memori kahanan ngelawan. Panggunaan Memori Dhuwur ing VM ora tansah nuduhake masalah kinerja, nanging Panggunaan Memori sing dhuwur ing hypervisor micu teknik manajemen memori lan nyebabake masalah karo kinerja VM. Sampeyan kudu ngawasi weker Panggunaan Memori Host lan nyegah VM supaya ora mlebu Swap.

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

Unswap

Yen VM kejiret ing Swap, kinerjane suda banget. Ngambah Ballooning lan komprèsi cepet ilang sawise free RAM katon ing inang, nanging mesin virtual ora cepet-cepet bali saka Swap kanggo RAM server.
Sadurunge ESXi 6.0, siji-sijine cara sing bisa dipercaya lan cepet kanggo mbusak VM saka Swap yaiku urip maneh (luwih tepat, mateni / ing wadhah). Miwiti karo ESXi 6.0, sanajan ora resmi, cara sing bisa digunakake lan dipercaya kanggo mbusak VM saka Swap wis katon. Ing salah sawijining konferensi, aku bisa ngobrol karo salah sawijining insinyur VMware sing tanggung jawab kanggo Penjadwal CPU. Dheweke negesake manawa cara kasebut cukup digunakake lan aman. Ing pengalaman kita, ora ana masalah.

Printah nyata kanggo mbusak VM saka Swap diterangake Duncan Epping. Aku ora bakal mbaleni deskripsi rinci, aku mung bakal menehi conto panggunaane. Nalika sampeyan bisa ndeleng ing gambar, sawetara wektu sawise nglakokaké printah kasebut, Swap ing VM ilang.

Analisis kinerja VM ing VMware vSphere. Bagean 2: Memori

Tips kanggo ngatur RAM ing ESXi

Pungkasan, ana sawetara tips sing bakal mbantu sampeyan ngindhari masalah karo kinerja VM amarga RAM:

  • Aja oversubscription RAM ing kluster produktif. Disaranake tansah duwe ~ 20-30% saka memori free ing kluster supaya DRS (lan administrator) duwe kamar kanggo maneuver lan VMs ora pindhah menyang Swap sak migrasi. Uga, aja lali babagan margin kanggo toleransi kesalahan. Iku ora nyenengake nalika, nalika siji server gagal lan VM rebooted nggunakake HA, sawetara saka mesin uga menyang Swap.
  • Ing infrastruktur sing digabungake banget, coba aja nggawe VM kanthi memori luwih saka setengah memori host. Iki maneh bakal bantuan DRS kanggo disebaraké mesin virtual ing server kluster tanpa masalah. Aturan iki, mesthi, ora universal :).
  • Watch metu kanggo Host Memory Usage Alarm.
  • Aja lali nginstal VMware Tools ing VM lan aja mateni Ballooning.
  • Coba ngaktifake Inter-VM TPS lan mateni Large Pages ing VDI lan lingkungan tes.
  • Yen VM ngalami masalah kinerja, priksa manawa nggunakake memori saka simpul NUMA remot.
  • Mbusak VM saka Swap kanthi cepet! Antarane liyane, yen VM ana ing Swap, sistem panyimpenan nandhang sebab-sebab sing jelas.

Iku kabeh kanggo kula babagan RAM. Ing ngisor iki ana artikel sing gegandhengan kanggo sing pengin luwih jero. Artikel sabanjure bakal darmabakti kanggo storaj.

link migunanihttp://www.yellow-bricks.com/2015/03/02/what-happens-at-which-vsphere-memory-state/
http://www.yellow-bricks.com/2013/06/14/how-does-mem-minfreepct-work-with-vsphere-5-0-and-up/
https://www.vladan.fr/vmware-transparent-page-sharing-tps-explained/
http://www.yellow-bricks.com/2016/06/02/memory-pages-swapped-can-unswap/
https://kb.vmware.com/s/article/1002586
https://www.vladan.fr/what-is-vmware-memory-ballooning/
https://kb.vmware.com/s/article/2080735
https://kb.vmware.com/s/article/2017642
https://labs.vmware.com/vmtj/vmware-esx-memory-resource-management-swap
https://blogs.vmware.com/vsphere/2013/10/understanding-vsphere-active-memory.html
https://www.vmware.com/support/developer/converter-sdk/conv51_apireference/memory_counters.html
https://docs.vmware.com/en/VMware-vSphere/6.5/vsphere-esxi-vcenter-server-65-monitoring-performance-guide.pdf

Source: www.habr.com

Add a comment