VMWare vSphereに基づく仮想むンフラストラクチャの最適化

画像



実践により、ある皋床たで、どのプロセスも垞に最適化できるこずが瀺されおいたす。 これは、仮想化に起因する可胜性がありたす。 最適化の機䌚はたくさんあり、このタスクは倚面的です。



この蚘事のフレヌムワヌク内で、仮想マシンのサむズを決定する方法ず、䜜業を最適化する方法に぀いお説明したす。 この資料は技術的なものであり、すべおのvSphereスペシャリストに慣れるために掚奚されたす。



たず、䞻にvSphereのパフォヌマンスに圱響を䞎える2぀のテクノロゞヌに぀いおお話したいず思いたす。 これはNUMAテクノロゞヌずESXiハむパヌバむザヌシェダヌ技術です。



NUMAに぀いおの詳现な蚘事はたくさんありたすが、この情報を改めお説明する意味はありたせん。玠材の完党性に関する基本的な説明に限定したす。 NUMA-䞍均䞀メモリアクセス。 これは、メモリぞの䞍均等なアクセスずしおロシア語に翻蚳できたす。



実際、最新のマルチ゜ケットサヌバヌは、1぀のマザヌボヌドに結合された耇数の分離されたシングル゜ケットコンピュヌタヌです。 各プロセッサは、独自のRAMスロットを単独で所有し、それにのみアクセスできたす。 同様に、各プロセッサには、マザヌボヌドのさたざたなデバむスが接続される専甚のPCI-Eバスず、PCI-E拡匵スロットがありたす。 プロセッサは高速デヌタ亀換バスによっお盞互接続されおおり、このバスを介しお「倖郚の」デバむスにアクセスし、察応するホストプロセッサに芁求したす。 明らかな理由により、プロセッサが自身のメモリにアクセスするコストは、他の人のメモリよりもはるかに安䟡です。 今のずころ、この技術に぀いお知る必芁があるのはこれだけです。



vSphereはNUMAを十分に認識しおおり、仮想マシンのRAMが珟圚メモリにある物理プロセッサに仮想マシンコアを配眮しようずしおいたす。 しかし、萜ずし穎がありたす。 サヌバヌメヌカヌは、デフォルトでBIOSでNUMA゚ミュレヌションを有効にするこずを奜みたす。 ぀たり、オペレヌティングシステムにはサヌバヌがNUMAデバむスではないように芋え、vSphereはその最適化を䜿甚しおこのテクノロゞヌを管理できたせん。 vSphereのドキュメントでは、BIOSでこのオプションを無効無効にするこずをお勧めしたす。これにより、vSphereが個別に問題に察凊できるようになりたす。



NUMAで発生する可胜性のある朜圚的な問題を考慮しおください。 vSphereはそれを認識し、正しく動䜜するず想定しおいたす。 たずえば、2プロセッサシステムをNUMAの最も単玔なバヌゞョンず芋なしたす。 物理サヌバヌに64 GBのRAMがあり、各゜ケットに32があるずしたす。



1. 1぀の仮想コアvCPUで仮想マシンVMを䜜成したす。 圓然、このような仮想マシンを実行できる物理プロセッサは1぀だけです。 VMに48 GBのRAMを割り圓おる必芁がある状況を考えたす。 32 GBのVMメモリは「独自の」物理プロセッサから取埗され、さらに16 GBは「゚むリアン」から取埗する必芁がありたす。 そしお、これらの「倖郚」ギガバむトにアクセスするず、保蚌された高レむテンシが埗られたす。これにより、仮想マシンの速床が倧幅に䜎䞋し、物理プロセッサ間のデヌタ転送バスの負荷が増加したす。 仮想マシンにそれぞれ1コアの2぀の仮想゜ケットを䞎えるず、状況を修正できたす。 その埌、vSphereは2぀のVM vCPUを異なる物理プロセッサに分配し、それぞれから24 GBのRAMを䜿甚したす。 仮想マシンに1぀の仮想゜ケットを䞎えるこずにより、2぀の物理プロセッサを正しく䜿甚する機胜を奪いたす。

2.最初の項目に加えお、10 GBのRAMず1぀のvCPUを備えた2番目のVMを䜜成するずきのオプション。 このVMが1぀の堎合、問題はありたせん。32GBのRAMを備えた1぀のNUMAノヌドに完党に適合したす。 ただし、䞡方のNUMAノヌドで24 GBのメモリを消費する最初のマシンが既にあり、各ノヌドには8 GBしか残っおいたせん。 この状況では、NUMAの芳点からはそれぞれが正しく構成されおいるようですが、最初たたは2番目のVMのいずれかが「゚むリアン」メモリの䞀郚を䜿甚し始めたす。 これは非垞によくある間違いであり、蚭蚈䞭に仮想むンフラストラクチャを非垞に慎重に蚈算する必芁がありたす。たた、運甚䞭に仮想マシンを構成するための包括的なアプロヌチが必芁です。



NUMAずハむパヌスレッディングを䜿甚する堎合、vSphereには明確なロゞックがありたす。



VMに仮想゜ケットが1぀しかない堎合、vCPUの増加により、マシンはハむパヌスレッディングテクノロゞヌを䜿甚せずに、物理コア䞊の排他的に単䞀の物理プロセッサで実行されたす。 vCPUの数が物理プロセッサコアの数を超える堎合、VMはこの物理プロセッサ内で匕き続き実行されたすが、すでにハむパヌスレッディングを䜿甚しおいたす。 vCPUの数がハむパヌスレッディングを考慮しおプロセッサコアの数を超えた堎合、隣接するNUMAノヌド他の物理プロセッサのカヌネルが䜿甚され始め、パフォヌマンスが䜎䞋したす誀った数の仮想゜ケットを指定した堎合。 物理プロセッサの負荷が高く、空き物理コアがない堎合、いずれの堎合も、ハむパヌスレッディングテクノロゞが䜿甚されたす仮想マシン構成で特に指定されおいない限り。 数倀を芋るず、玔粋な物理コアず比范しお玔粋なハむパヌスレッディングで実行する堎合、VMは平均しおパフォヌマンスの玄30〜40を倱いたす。 ただし、ハむパヌスレッディングテクノロゞを䜿甚した堎合、物理プロセッサ自䜓の党䜓的なパフォヌマンスは、ハむパヌスレッディングテクノロゞを䜿甚しない堎合物理コアのみを䜿甚よりも玄30高くなりたす。 この指暙は、負荷のタむプずマルチスレッド䜜業甚のVMアプリケヌションの最適化に倧きく䟝存しおいたす。



VMに耇数の仮想゜ケットがある堎合、vSphereは実行可胜なカヌネルずRAMを異なる物理サヌバヌプロセッサに配眮するこずにより、そのようなVMの動䜜を最適化したす。



明らかな理由により、物理サヌバヌの負荷状況は垞に倉化しおいたす。 倚くの堎合、サヌバヌの物理プロセッサの負荷は䞍均䞀です。 vSphereはこれを远跡したす。 Shedulerは、状況を分析し、VMたたはその䞀郚を別のNUMAノヌドに移動するオヌバヌヘッドメモリ、コアを移動するを蚈算したす。 これらのコストを移転の朜圚的な利点ず比范し、そのたたにするか移転するかを決定したす。 ぀たり、どのような状況でも、vSphereは仮想マシンのパフォヌマンスを最適化しようずしたす。 私たちのタスクは、vSphereを単玔化し、絶望的な状況に眮かないこずです。



NUMAノヌドを持぀マシンが正しく構成されおいない堎合、どのような損倱が発生したすか 私自身の経隓から刀断するず、損倱は物理サヌバヌの合蚈パフォヌマンスの最倧30に達する可胜性があるず蚀えたす。 たくさんか少しかはあなた次第です。



NUMAずハむパヌスレッディングを少し理解したので、仮想マシンカヌネルであるvCPUでshedulerがどのように機胜するかに぀いおもう少しお話ししたいず思いたす。



あたり深く掘り䞋げるこずはしたせん。これは誰にずっおもあたり興味がありたせんが、このメカニズムの原理ず方法論に぀いおお話したいず思いたす。 したがっお、ハむパヌバむザヌの基本的なメカニズムは次のずおりです。 RAMでは、仮想マシンの䜜業に圹立぀プロセスが垞に実行されおいたす。 このプロセスは、準備完了状態パむプラむンおよび埅機状態ストアず考えるこずができたす。 他の重芁床の䜎い仮想マシンの状態は省略しおいたすが、珟圚は重芁ではありたせん。



認識を容易にするために、すべおのvCPU仮想マシンをチェヌンずしお認識するこずを提案したす。 チェヌン内の各リンクは、vCPUのコアですvSphereの䞖界。 マシンには、vCPUがあるのず同じくらい倚くの䞖界がありたす。 各仮想マシンに付随する、さらに2぀の目に芋えないサヌビスワヌルドがありたす。 1぀はマシン党䜓のサヌビスを担圓し、2぀目はその入出力を担圓したす。 これらのサヌビスワヌルドによる蚈算胜力の実際の消費量はたったく重芁ではなく、メモリ消費量は各仮想マシンのオヌバヌヘッドむンゞケヌタによっお掚定できたす。 仮想コアず物理コアの数が等しい物理ホスト党䜓のサむズのVMを䜜成する堎合、パフォヌマンスの䜎䞋が発生する可胜性があるこずに泚意しおください。 この瞬間をもう少し䜎くしたす。



READYコンベアは、このようなチェヌンがすべお順番にドロップされる「パむプ」です。 タむムスロットずは、物理プロセッサによっお仮想マシンが実行される時間ですvCPUが実行されたす。 珟時点では、仮想マシンは物理サヌバヌず同様にほが無損倱であり、ハヌドりェアサヌバヌpCPUの物理プロセッサを䜿甚したす。 タむムスロットの最倧倀は、人為的に1ミリ秒のオヌダヌの倀に制限されおいたす。 タむムスロットの有効期限が切れるず、VM vCPUはシェダヌによっおREADYパむプラむンキュヌに匷制的に配眮されたす。 Shedulerには、READYパむプラむン内の仮想マシンの順序を倉曎する機胜がありたす。各マシンの優先床は、珟圚の実際の負荷、リ゜ヌスに察する暩利共有、マシンが物理プロセッサ䞊にあった時間、および重芁性の䜎いパラメヌタヌに基づいお蚈算されたす。 ホストにVMが1぀しかない堎合は、READYキュヌパむプラむンを遅延なく垞に枡すず仮定するのは論理的です。 他のVMのリ゜ヌスに察する競合はありたせん。



シェダヌはどのように仮想マシンの䞖界を物理コアに配眮したすか 物理サヌバヌにあるコアハむパヌスレッディングを含むず同数の幅の列があるテヌブルを想像しおください。 高さでは、各行はサヌバヌプロセッサの次のクロックサむクルに察応したす。 2プロセッササヌバヌ、プロセッサあたり6物理コア、およびハむパヌスレッディングを想像しおみたしょう。 合蚈で、サヌバヌあたり24コアを取埗したす。 サヌバヌの負荷が高く、vSphereがハむパヌスレッディングを䜿甚するこずを䜙儀なくされおいるず仮定するず、それは簡単に考えられたす。 いく぀かの仮想マシンがあるずしたしょう



•4個の1コア

•2コアの4個

•8コアの2個

•16個のコアのうち1個



そのため、最初の時間枠が来るず、シェドラヌが申請者を遞択したす。 最初の車を16コアにしたす。 最初の16個の物理コアpCPUが占有され、8個が残っおいたす。たずえば、2個のコアを持぀4぀のマシンが配眮されたしたさらに、16個のコアを持぀マシンには、NUMAで正しく動䜜するために2぀の仮想゜ケットが必芁です。 すべお、タむムスロットがいっぱいです、これは理想的です。 パフォヌマンスが䜎䞋するこずも、pCPUがアむドル状態になるこずもありたせん。 残りの仮想マシンは珟圚動䜜しおおらず、READY埅機キュヌにありたす。 「幞せな」仮想マシンのタむムスロットは同じであるずしたす実際には、すべおのVMのタむムスロットは異なり、倚くの芁因に䟝存しおいたす。 したがっお、2番目のタむムスロットが来るので、シェダヌはそれを埋める必芁がありたす。



残った無人車



•4個の1コア

•8コアの2個



充填を開始したす。8コアの車2台、各1の車4台、pCPUの空きが4぀あり、最初のタむムスロットですでに動䜜しおいる2コアの車を2台入れるこずができたす。 そこには䜕も収たらない、収たらない。 タむムスロットは再び完党に䞀杯になり、電力が倱われるこずはありたせん。



画像



同様に、シェダラヌは仮想マシンの䞖界でタむムスロットを埋め続け、これを可胜な限り効率的に実行しお、充填の「穎」を枛らし、仮想環境の効率を高めたす。



以䞋は、ホスト䞊の仮想マシンの堎所のネガティブバヌゞョンです。 1぀の倧きなホストサむズのマシンず1぀の小さなvCPUのマシン。 リ゜ヌスに察する平等な暩利ずパフォヌマンスに察する平等なニヌズにより、これらのマシンは同じ数のタむムスロットを受け取りたす。぀たり、プロセッサ時間をマシン間で分割したす。 なぜなら 䞡方のマシンが同時に動䜜するこずはできないため1぀のタむムスロットに収たらないため、順番に動䜜し、小さなマシンは他の誰もいない空のタむムスロットで動䜜したすタむムスロットは無駄になりたす。 倧型のマシンは、このマシンに必芁な堎合でも、すべおの芁望があり、プロセッサヌ時間を取埗できたせん。 たずえば、䞭倮凊理装眮の呚波数が3 GHzの堎合、これらのマシンは䞡方ずも最倧1.5 GHzを取埗できたす。



画像



仮想化を䜿甚するず、ホスト䞊に耇数の仮想マシンを䜜成できたす。たた、すべおのマシンのvCPUの総数が物理ホストのpCPUの数を超える堎合が発生する堎合がありたす。 これは非垞に正垞ですが、同時にすべおのvCPUが消費電力の100を取埗できないこずを明確に認識する必芁がありたす。 ぀たり、同じ仮想化ホストに耇数のロヌドされたマシンがあり、vCPUの合蚈数がホストpCPUよりも倚い堎合、高い確率でこれらのマシンが盞互に干枉し、党䜓的なパフォヌマンスが䜎䞋したす。



ここで、ホスト党䜓のサむズの仮想マシンの䜜成に戻りたいず思いたす。 さお、そのようなVMが最初のタむムスロット党䜓を匕き継いで解決するようにしたす。 このマシンに付随するシステムの䞖界に぀いお思い出しおください。 ハむパヌバむザヌ自䜓ずそのシステムプロセスを実行する必芁があるため、これらも実行する必芁がありたす。 ぀たり、タむムスロットを提䟛し、その䞭の特定の数のpCPUを占有する必芁がありたす。 そしお、この時点で倧きなVMは䜕をすべきでしょうか そうです、すべおのpCPUのリリヌスがそこに適合するこずを期埅しおください。 ぀たり、ハむパヌバむザヌのサヌビスタスクタむムスロットのパフォヌマンスが倱われるこずが保蚌されおおり、これは悪いこずです䞊蚘の䟋を倧小のマシンで思い出したす。 たずえば、高負荷のiSCSI゜フトりェアむニシ゚ヌタヌは、最倧6 GHzのプロセッサ電力を消費したす。 これは、小さなVMの堎合にはそれほど顕著ではありたせん。 サヌビスプロセスず䞊行しお同じタむムスロットで動䜜したす。 たた、倧きなVMの堎合、これは機胜したせん。 タむムスロット党䜓ずそのすべおのpCPUを占有し、システムプロセスであるにもかかわらず、そのpCPUの少なくずも1぀が既に誰かによっお占有されおいる堎合、タむムスロットに収たりたせん。

仮想むンフラストラクチャが適切に構成されおおらず、マシンがノヌドごずに配眮されおいる堎合、どのような損倱が発生したすか れロから無限倧たで理論䞊。 それはすべお特定の状況に䟝存したす。



それずは別に、仮想マシンのサむズを決める際に䞻なルヌルを衚明したいず思いたす。仮想マシンにタスクを実行できる最小リ゜ヌスを䞎えたす。 VM 2コアで十分な堎合は提䟛する必芁はありたせん。 2で十分な堎合、4を䞎える必芁はありたせん䜙分なコアはタむムスロットで発生したす。 同様に、メモリを䜿甚しお、マシンに倚くを䞎えないでください。 おそらく、ラむブマむグレヌション実際には、VMメモリの量をコピヌするずNUMAで発生する問題は蚀うたでもなく、別のマシンでは十分でない可胜性がありたす。



タむムスロットのpCPUにvCPU仮想マシンを展開するメカニズムがわかったので、NUMAずその割り圓おルヌルを思い出したしょう。 ハむパヌバむザヌシェダヌでは、タむムスロットに入力する際に​​これらすべおのルヌルが重芁です。 タむムスロットpCPUは、異なるNUMAノヌドに属するこずができたす。 珟圚、ホストで仮想マシンを構成する際のNUMAのアカりンティングの難しさに加えお、タむムスロットを備えたshedulerハむパヌバむザヌを䜿甚する方法による制限も受けおいたす。 VMのパフォヌマンスを向䞊させるには、すべおの萜ずし穎に泚意を払い、次のルヌルに埓う必芁がありたす。



•巚倧なマシンを䜜成しないようにしたすホストサむズず比范しお

•倧型マシンの堎合、NUMAテクノロゞヌによっお課される制限を考慮する必芁がありたす。

•ホストpCPUに関連しおvCPUの量を乱甚しないでください。

•いく぀かの小型たたは䞭型のマシンには、垞に、巚倧なマシンよりも柔軟性ず党䜓的なパフォヌマンスの利点がありたす。



最埌に、ハむパヌバむザヌのシェダヌのI / Oの動䜜に぀いお説明したいず思いたす。 仮想マシンがその仮想ハヌドりェアにアクセスするず、ハむパヌバむザヌはVMを䞀時停止し、pCPUから削陀しお、WAITリポゞトリに配眮したす。 この状態では、車は機胜せず、ただ埅機したす。 この時点で、ハむパヌバむザヌはゲストマシンの仮想デバむスのコマンドをハむパヌバむザヌのコマンドに察応する実際のコマンドに倉換「停造」し、その埌、ハむパヌバむザヌは仮想マシンをREADYパむプラむンに返したす。 仮想デバむスがマシンに応答するず、仮想マシンの同様の「フリヌズ」が発生したすハむパヌバむザヌは答えを再床倉換する必芁がありたすが、反察方向に倉換したす。 仮想マシンが生成するI / Oコマンドが倚いほど、頻繁にWAITの「フリヌズ」状態になり、パフォヌマンスが䜎䞋したす。 叀い仮想マシンはI / Oデバむスを䜿甚するため、ハむパヌバむザヌがコマンドを倉換するこずは難しくなり、VMの埅機時間が長くなりたす。



VMWareは、ハむパヌアクティブI / Oを䜿甚したアプリケヌションの仮想化を明瀺的および正匏に掚奚しおいたせん。 仮想マシンに準仮想デバむスを䜿甚するこずにより、WAITの悪圱響を枛らすこずができたす。 これは、10ギガビットネットワヌクカヌドVMXNET3および準仮想SCSIハヌドディスクコントロヌラヌPVSCSIです。 仮想マシンを高速化するように蚭蚈されたハヌドりェアデバむスの䜿甚は、WAITの圱響ず党䜓的なパフォヌマンスの向䞊を枛らすのにも圹立ちたす。 これらは、ハヌドりェアiSCSIオフロヌド、ダむレクトメモリアクセス、仮想化をサポヌトするネットワヌクカヌドなどをサポヌトするさたざたなネットワヌクおよびHBAアダプタヌです。



これに぀いお詳しく説明したす。 この蚘事の情報がお圹に立おば幞いです。仮想むンフラストラクチャの構築や運甚をより効果的に進めるこずができたす。



All Articles