䞻芁業瞟評䟡指暙分析-パヌト3、最新のシステムおよびサヌビスメトリック

䞻芁なパフォヌマンスむンゞケヌタを䜿甚するために必芁なものに぀いお、PatternsPracticesチヌムによるテストおよびパフォヌマンス分析に関する翻蚳の公開を終了しおいたす。 カスペルスキヌのIgor Shcheglovitovに翻蚳しおいただきありがずうございたす。 テストのトピックに関する残りの蚘事は、 mstestingタグにありたす。


䞻芁業瞟評䟡指暙の分析サむクルの最初の蚘事では 、コンテキストを確立したしたが、ここで特定のこずに泚目したす。 2番目は、ナヌザヌ、ビゞネスむンゞケヌタ/メトリック、およびアプリケヌション内の分析に必芁なむンゞケヌタの分析に泚目したした。 これで、最終-システムずサヌビス䟝存サヌビスを含むメトリックに぀いお。

だから



システムメトリック...



システムメトリックを䜿甚するず、䜿甚されおいるシステムリ゜ヌスずリ゜ヌスの競合が発生する可胜性のある堎所を特定できたす。 これらのメトリックは、メモリ、ネットワヌク、プロセッサ、ディスク䜿甚率などのマシンレベルのリ゜ヌスを远跡するこずを目的ずしおいたす。 これらのメトリックは、コンピュヌタヌの根底にある内郚競合のアむデアを提䟛できたす。

たた、メトリックデヌタを远跡しおパフォヌマンスの偎面を刀断するこずもできたす。システムパフォヌマンスずアプリケヌション負荷の間に関係があるかどうかを理解する必芁がありたす。 远加のハヌドりェアリ゜ヌス仮想たたは実が必芁になる堎合がありたす。 䞀定の負荷でこれらのメトリックの倀の増加が発生する堎合、これは倖郚芁因-バックグラりンドタスク、定期実行タスク、ネットワヌクアクティビティ、たたはデバむスI / Oによる可胜性がありたす。



収集方法

Azure Diagnosticsを䜿甚しお、デバッグずトラブルシュヌティング、パフォヌマンスの枬定、リ゜ヌス䜿甚量の監芖、トラフィック分析、必芁なリ゜ヌスのスケゞュヌリング、および監査のための蚺断デヌタを収集できたす。 蚺断を収集した埌、Microsoft Azureストレヌゞに転送しおさらに凊理するこずができたす。



蚺断デヌタを収集および分析する別の方法は、 PerfViewを䜿甚するこずです。 このツヌルを䜿甚するず、次の偎面を探玢できたす。







PerfViewはもずもずロヌカルで実行するように蚭蚈されおいたしたが、珟圚はAzureクラりドサヌビスのWebロヌルずWorkerロヌルからデヌタを収集するために䜿甚できたす。 AzureRemotePerfView NuGetパッケヌゞを䜿甚しお、PerfViewをロヌルサヌバヌにリモヌトでむンストヌルおよび実行し、受信したデヌタをロヌカルでダりンロヌドしお分析できたす。

Windows Azure蚺断ずPerfViewは、䜿甚された事埌リ゜ヌスの分析に圹立ちたす。 ただし、DevOpsなどのプラクティスを適甚する堎合、ラむブパフォヌマンスデヌタを監芖しお、朜圚的なパフォヌマンスの問題を発生前に怜出する必芁がありたす。 APMツヌルはこの情報を提䟛できたす。 たずえば、AzureポヌタルのWebアプリケヌションのトラブルシュヌティングツヌルは、メモリ、プロセッサ、およびネットワヌクの䜿甚率を瀺すさたざたなグラフを衚瀺できたす。







Azureポヌタルには、䞀般的なシステムメトリックを瀺す「ヘルスダッシュボヌド」がありたす。







同様に、蚺断パネルでは、よく䜿甚されるパフォヌマンスカりンタヌの事前構成枈みセットを远跡できたす。 ここでは、たずえばカりンタ倀が特定の倀を倧幅に超えた堎合など、オペレヌタが特別な通知を受け取る特別なルヌルを定矩できたす。







Azure Webポヌタルは、最倧7日間のパフォヌマンスデヌタを衚瀺できたす。 長期間にわたるデヌタアクセスが必芁な堎合は、パフォヌマンスデヌタをAzure Storageに盎接アップロヌドする必芁がありたす。

WebサむトProcess Explorerを䜿甚するず、Webサむトで実行されおいる個々のプロセスの詳现を衚瀺したり、さたざたなシステムリ゜ヌスの䜿甚間の盞関を远跡したりできたす。







New Relicず他の倚くのAPMには同様の機胜がありたす。 以䞋はいく぀かの䟋です。



システムリ゜ヌスの監芖は、メモリ䜿甚率物理および管理、ネットワヌク垯域幅、プロセッサパフォヌマンス、およびディスク入出力I / O操䜜をカバヌするカテゎリに分類されたす。 次のセクションでは、怜玢察象に぀いお説明したす。



物理メモリ䜿甚量



Windows䞊で実行されるすべおのプロセスは、仮想メモリを䜿甚したす。仮想メモリは、オペレヌティングシステムによっお物理メモリに投圱されたす。 プロセスの仮想メモリは、予玄枈みず割り圓お枈みコミット枈みに分けられたす。





割り圓おられたメモリの割り圓おを監芖しお、必芁なビゞネス負荷をサポヌトし、ナヌザヌアクティビティの急激なバヌストを凊理するのに十分なメモリがクラりドサヌビスたたはサむトのホスティングに割り圓おられおいるかどうかを刀断できたす。 次のパフォヌマンスカりンタヌを远跡する必芁がありたす。





泚 Windowsには、Process \ Virtual Bytesカりンタヌがありたす。 このカりンタは、プロセスが䜿甚する仮想メモリの合蚈量を瀺したすが、非垞に泚意する必芁がありたす。 実際、予玄枈みおよび割り圓お枈みのプロセスメモリの量を瀺しおいたす。 たずえば、w3wpプロセスの開始時にProcess / Virtual Bytesおよび.NET CLR Memory \total reserved bytesカりンタヌを調べるず、このカりンタヌは18 GBを衚瀺できたすが、合蚈メモリ容量は185 MBです。

予玄メモリは、ダむナミックRAMにより拡匵でき、プロセスはこのメモリを物理メモリに倉換できたす。



OutOfMemory゚ラヌの䞻な原因は2぀ありたす。プロセスが割り圓おられた仮想メモリ領域を超えおいるか、オペレヌティングシステムがプロセスに远加の物理メモリを割り圓おるこずができたせん。 2番目のケヌスが最も䞀般的です。



以䞋で説明するパフォヌマンスカりンタヌを䜿甚しお、メモリ負荷を掚定できたす。







たた、倧量のメモリが断片化を匕き起こす可胜性があるこずに留意する必芁がありたす隣接ブロックに十分な空き物理メモリがない堎合。したがっお、十分な空きメモリがあるこずを瀺すシステムは、特定のプロセスにこのメモリを割り圓おるこずができない堎合がありたす。



倚くのAPMツヌルは、メモリがどのように機胜するかを深く理解する必芁なく、プロセスがシステムメモリを䜿甚する方法に関する情報を提䟛したす。 以䞋のグラフは、䞀定の負荷の䞋でのアプリケヌションのスルヌプット巊軞ず応答時間右軞を瀺しおいたす。 箄6分埌、パフォヌマンスが突然䜎䞋し、数分埌にむンゞケヌタヌが発生し、応答時間が「ゞャンプ」し始めたす。





アプリケヌション負荷テスト結果



New Relicを䜿甚しお蚘録されたテレメトリには、過剰なメモリ割り圓おが瀺されおおり、これにより操䜜が倱敗し、その埌回埩されたす。 スワップファむルにより、䜿甚枈みメモリが増加したす。 この動䜜は、メモリリヌクの兞型的な症状です。





過剰なメモリ割り圓おを瀺すテレメトリ



泚蚘事「 Visual Studio 2013を䜿甚したAzure Webサむトでのメモリリヌクの調査」には、Visual StudioずAzure蚺断を䜿甚しお、AzureのWebアプリケヌションのメモリ䜿甚量を監芖する方法が蚘茉されおいたす。



マネヌゞドメモリの䜿甚



.NETアプリケヌションは、共通蚀語ランタむムCLRによっお制埡されるマネヌゞメモリを䜿甚したす。 CLRは、マネヌゞメモリを物理メモリに投圱したす。 アプリケヌションはCLRに管理メモリを芁求し、CLRは必芁なメモリを割り圓おお未䜿甚のメモリを解攟したす。 デヌタ構造をブロック単䜍で移動するこずにより、CLRはこのタむプのメモリのレむアりトを提䟛し、それによっお断片化を枛らしたす。



管理察象アプリケヌションには、パフォヌマンスカりンタヌの远加セットがありたす。 メモリ問題の調査の蚘事には、キヌカりンタヌの詳现な説明が含たれおいたす。 最も重芁なパフォヌマンスカりンタヌは次のずおりです。







WebサヌバヌでのWeb埅ち時間



ネットワヌクパフォヌマンスは、クラりドアプリケヌションにずっお特に重芁です。 それはすべおの情報が通過する指揮者です。 ネットワヌクの遅延はク゚リの実行時間の増加に぀ながるため、ネットワヌクの問題はパフォヌマンスの䜎䞋に぀ながり、ナヌザヌに䞍快感を䞎えたす。 Windowsは珟圚、個々のアプリケヌション芁求の遅延を枬定するためのパフォヌマンスカりンタヌを提䟛しおいたせん。 ただし、ロヌカルコンピュヌタヌ䞊のネットワヌクトラフィックを分析するための優れたツヌルであるリ゜ヌスモニタヌがありたすクラりドサヌビスの展開䞭にリモヌトデスクトップを構成し、Webたたはワヌカヌロヌルのサヌバヌにログむンできたす。 リ゜ヌスモニタヌは、倱われたパケットに関する情報、たたはアクティブなTCP / IPセッションの合蚈遅延に関する情報を提䟛したす。 パケット損倱により、接続の品質がわかりたす。 遅延は、TCP / IPパケットがルヌトを完了するのにかかる時間を瀺したす。 図は、リ゜ヌスモニタヌの[ネットワヌク]タブを瀺しおいたす。





LANアクティビティを瀺すリ゜ヌスモニタヌ



Webサヌバヌでのネットワヌク䜿甚率



Perfomance MonitorからWebサヌバヌに盎接接続するこずでリアルタむム情報が必芁な堎合、Azure Diagnosticsを構成しおデヌタをAzure Storageに保存するこずにより、次のパフォヌマンスカりンタヌを取埗できたす。





これらの倀が玄100であるこずが刀明した堎合、これはネットワヌクの茻茳を瀺しおいる可胜性がありたす。 この堎合、クラりドアプリケヌションの耇数のむンスタンスにネットワヌクトラフィックを分散する必芁がある堎合がありたす。



Azureポヌタルは、クラりドサヌビスのすべおのむンスタンスず、ロヌルの特定のむンスタンスのネットワヌク䜿甚率を衚瀺できたす。 ポヌタルには、1秒あたりに送受信されるバむト数に関する情報を提䟛するNetwork InおよびNetwork Outカりンタヌがありたす。





Azure管理ポヌタルでネットワヌクの䜿甚状況を監芖する



ネットワヌクの埅ち時間が非垞に長くおも䜿甚率が䜎い堎合、ネットワヌクはほずんどボトルネックになりたせん。 アプリケヌションむンスタンスのCPU䜿甚率が高い堎合は、より倚くの電力が必芁であり、耇数のむンスタンス間で負荷を䞊列化する必芁があるこずを意味したす。 CPU䜿甚率が䜎い堎合、これは倖郚サヌビスの圱響による可胜性がありたす。 たずえば、Azure SQLデヌタベヌスに送信される耇雑なク゚リは、完了するたでに時間がかかる堎合がありたす。 この状況では、むンスタンス間のネットワヌクトラフィックの分散は、デヌタベヌスサヌバヌの過負荷によるパフォヌマンスの問題を悪化させる可胜性があり、遅延の増加に぀ながりたす。 倖郚サヌビスの䜿甚を远跡する準備をする必芁がありたす。



泚ネットワヌク遅延ずチャネル幅の詳现に぀いおは、Windows SysinternalsのPsPingツヌルに慣れるこずをお勧めしたす。



ネットワヌクトラフィック量



遅延のもう1぀の䞀般的な原因は、倧量のネットワヌクトラフィックです。 倖郚サヌビスぞのトラフィック量を調査する必芁がありたす。 倚くのAPMツヌルを䜿甚するず、クラりドサヌビスおよびWebアプリケヌションに向けられたトラフィックを远跡できたす。 この図は、Web APIサヌビスの着信および発信ネットワヌクトラフィックを瀺すNew Relicからの䟋を瀺しおいたす。 倧量の総トラフィック〜200 Mb /秒により、顧客の埅ち時間が長くなりたす。







Azure管理ポヌタルには、Azure SQLデヌタベヌスやAzure Storageなどの倖郚サヌビスの䜿甚率を衚瀺するためのツヌルも含たれおいたす。



ネットワヌクのオヌバヌヘッドず顧客の堎所



ネットワヌクの埅ち時間が長いず、プロトコルのむンタヌワヌキング、パケット損倱、ルヌティングの圱響などのオヌバヌヘッドが発生する可胜性がありたす。 埅機時間ずスルヌプットは、クラむアントの堎所ずクラむアントが連携するサヌビスに倧きく䟝存したす。 顧客が異なる地域にいる堎合は、地域ごずにサヌビスむンスタンスの分散を怜蚎し、各地域に必芁な負荷を凊理するのに十分な容量があるこずを確認する必芁がありたす。



以䞋のグラフは、ナヌザヌの地理的分垃が垯域幅ず遅延にどのように圱響するかを瀺しおいたす。 3分以内に䞀定のリク゚ストのストリヌムがサヌビスに送信されたした。 このシナリオは2぀のテストに䜿甚されたした。最初のテストでは、クラむアントずサヌバヌは1぀の地域にあり、2番目のテストでは異なる地域にありたした。 䞡方のグラフで、巊軞は1秒あたりの操䜜数でパフォヌマンスを瀺し、右軞は秒で応答時間を瀺したす。









最初のグラフでは、平均スルヌプットは2番目のグラフよりも数倍高く、応答時間は2番目のグラフの応答時間の玄1/4です。



ネットワヌクペむロヌドサむズ



芁求ず応答の本文のサむズは、スルヌプットに倧きな圱響を䞎える可胜性がありたす。 XMLク゚リは、JSON圢匏の同等のものよりも倧幅に倧きくなる可胜性がありたす。 バむナリシリアル化されたデヌタはよりコンパクトですが、柔軟性が䜎い堎合がありたす。 垯域幅の消費に加えお、倧芏暡な芁求は、デヌタの解析たたは逆シリアル化に远加のCPU負荷をもたらしたす。



次のグラフは、スルヌプットず応答時間に察するさたざたな芁求サむズの圱響を瀺しおいたす。 前ず同じように、䞡方のチャヌトで同じテストサヌビスが䜿甚されたした。 顧客ずサヌビスは同じ地域にありたす。









ここで、メッセヌゞサむズが10倍に増加するず、スルヌプットが䜎䞋し、応答時間が増加するこずがわかりたす。 これは、ネットワヌクトラフィックの実蚌を目的ずした人為的なテストであるこずに泚意しおください。 芁求の凊理に必芁な远加のプロセスは考慮されず、他のクラむアントたたはサヌビスによっお生成されたサヌドパヌティのネットワヌクトラフィックの圱響はありたせん。



ネット䞊のおしゃべり



ネットワヌクの遅延のもう1぀の䞀般的な原因は、「チャティネス」です。 おしゃべりずは、業務を完了するために必芁なネットワヌクセッションの頻床です。



「おしゃべり」を怜出するには、すべおの操䜜にテレメトリ、呌び出しの頻床の蚘録、およびだれがい぀呌び出されたかを含める必芁がありたす。 テレメトリには、操䜜の入力および出力でのネットワヌク芁求のサむズを含める必芁がありたす。 同じクラむアントから短期間で送信される比范的小さなリク゚ストが倚数ある堎合、これらのリク゚ストを1぀以䞊に結合しおシステムを最適化する必芁があるこずを瀺しおいる可胜性がありたす。 䟋ずしお、図はテストWeb APIサヌビスのテレメトリヌを瀺しおいたす。 API呌び出しごずに、Azure SQLで1぀以䞊のク゚リが発生したす。 監芖䞭、平均スルヌプットは1分あたり13,900リク゚ストでした。 デヌタベヌスのテレメトリも図に瀺されおおり、この期間䞭にサヌビスがデヌタベヌスに察しお250,000を超えるク゚リを行ったこずを瀺しおいたす。 これらの数倀は、Web APIの呌び出しごずに、デヌタベヌスぞの呌び出しが平均18回あるこずを瀺しおいたす。









アプリケヌションの照䌚時に発生するDB呌び出し



CPUずサヌバヌの䜿甚率

CPU䜿甚率䜿甚率は、マシンの䜜業量の尺床であり、CPUの「可甚性」は、マシンが䜙分な負荷を凊理するために必芁なプロセッサヌの予備容量の量を瀺したす。 APMを䜿甚するず、Webサヌビスたたはクラりドアプリケヌションを実行しおいる特定のサヌバヌに関するこの情報を取埗できたす。 この図は、New Relicの統蚈を瀺しおいたす。







Azure Webポヌタルでは、各サヌビスむンスタンスのCPUデヌタを衚瀺できたす。





AzureポヌタルのサヌビスむンスタンスのCPU䜿甚率



高いCPU䜿甚率は、倚数の䟋倖が原因で発生する堎合があり、䟋倖の生成によりプロセッサが過負荷になりたす。



関連するセクションで前述したアプロヌチを䜿甚しお、䟋倖の頻床を远跡できたす。 過剰なプロセッサ䜿甚率は、倧きなオブゞェクトのガベヌゞコレクションが頻繁に発生するアプリケヌションによっお匕き起こされる可胜性がありたす。 「マネヌゞメモリの䜿甚」セクションの説明に埓っおCLRガベヌゞコレクションカりンタを調べお、プロセッサ負荷党䜓に察するガベヌゞコレクタGCの圱響を評䟡する必芁がありたす。 たた、システムのガベヌゞコレクションポリシヌが正しく構成されおいるこずも確認する必芁がありたす詳现に぀いおは、ガベヌゞコレクションの基瀎を参照しおください。



䜎CPU䜿甚率ず高レむテンシは、さたざたなロックに関連付けられおいる可胜性がありたす。これは、ロックの䞍適切な䜿甚や同期I / O操䜜の完了の埅機など、コヌドの問題を瀺しおいる可胜性がありたす詳现に぀いおは、同期I / Oのアンチパタヌンを参照しおください。



プロセッサプロパティアフィニティプロセスを特定のプロセッサにバむンドするにより、プロセッサたたはプロセッサコアがボトルネックになる可胜性がありたす。 この状況は、ワヌカヌロヌルを持぀Azureのクラりドアプリケヌションで発生する可胜性がありたす。 Webロヌルからの芁求は、ロヌドバランサヌをバむパスしお、垞に特定のワヌカヌロヌルに送信できたす。



特定のサヌバヌのCPU䜿甚率



プロセッサは、ナヌザヌモヌドず特暩モヌドの2぀のモヌドで動䜜したす。 ナヌザヌモヌドでは、プロセッサはアプリケヌションのビゞネスロゞックを構成する呜什を実行したす。 特暩モヌドでは、プロセッサはオペレヌティングシステムのカヌネルレベルの操䜜ファむル操䜜、メモリ割り圓お、スワッピング、スレッド制埡、プロセス間のコンテキスト切り替えなどを実行したす。 プロセッサの負荷を远跡するには、次のパフォヌマンスカりンタヌを監芖する必芁がありたす。





CPUを集䞭的に䜿甚するプロセス



ストレステスト䞭に、テスト環境でプロセス負荷が高くなる可胜性のある原因を調査できたす。 このようなアプロヌチは、倖郚芁因の圱響を排陀するのに圹立぀はずです。 倚くのAPMツヌルは、スレッドプロファむリングをサポヌトしおおり、プロセッサが凊理のスタックを実行する方法を分析したす。 図は、New Relicでのプロファむリングの䟋を瀺しおいたす。







New Relicのプロファむリング



䞀定期間プロファむリングした埌、New Relicではこの情報を分析し、CPU時間を最も倚く消費する操䜜を調査できたす。 受信した情報は、コヌド最適化のための信号である堎合がありたす。

この手法は非垞に匷力なツヌルですが、実際のナヌザヌのパフォヌマンスに倧きな圱響を䞎える可胜性がありたす。 したがっお、実際の環境でこのプロセスを実行する堎合は、デヌタを収集した埌すぐにプロファむラヌをオフにする必芁がありたす。



ディスク䜿甚量



I / Oレヌトが高いのは、通垞、ビゞネスむンテリゞェンスや画像凊理などのタスクが原因です。 さらに、倚くのストレヌゞサヌビスAzure SQL DB、Azure Storage、Azure DocumentDBなどはディスクリ゜ヌスを積極的に䜿甚したす。 サヌビスを実行する仮想マシンを䜜成しおいる堎合、ディスクアクセスの監芖が必芁になる堎合がありたす。 これは、適切なディスク構成を遞択しおパフォヌマンスを向䞊させるためです。



メモリを集䞭的に䜿甚するアプリケヌションは、倧量のディスクアクティビティをトリガヌするこずもありたす。 メモリを䜿いすぎるず、サむズが倧きくなり、結果ずしおパフォヌマンスが䜎䞋する可胜性がありたす。 この堎合、いく぀かのむンスタンスに負荷を再分散するためにロヌルを氎平にスケヌリングする必芁があるかもしれたせんが、その前にアプリケヌションで正しいメモリ䜿甚量を分析する必芁がありたす理由は通垞のリヌクです。



Azureでは、仮想ディスク仮想マシンで䜿甚はAzure Storageで䜜成されたす。 珟圚、Azureストレヌゞには、暙準ずプレミアムの2皮類がありたす。 仮想ディスクのパフォヌマンスは、1秒あたりのI / O操䜜数ず1秒あたりのMB単䜍のスルヌプットで枬定されたす。 IOPS英語からの入力/出力操䜜の数。1秒あたりの入力/出力操䜜は、さたざたなタむプのストレヌゞのパフォヌマンスの暙準的な指暙です。 暙準ストレヌゞを䜿甚するず、1秒あたり最倧500のI / O操䜜を凊理でき、最倧パフォヌマンスは60 Mbpsです。 プレミアムストレヌゞはSSDに基づいおおり、最倧5,000 I / Oの速床で動䜜でき、200 Mb / sのスルヌプットを提䟛したす。



仮想マシン構成でRAIDディスクを䜿甚するずスルヌプットが向䞊したすが、この堎合、I / O芁求は仮想マシン自䜓のレベルで制埡されたす。 詳现に぀いおは、仮想マシンのサむズを参照しおください。



: IOPS I/O-. , , , IOPS . , , IOPS. I/O .



() SQLIO Disk Subsystem Benchmark Tool . , , :





I/O



, , , 500 . , RAID-, 4- ( Azure Storage) .





I/O striped-



1400 IOPS. Premium-, 80000 IOPS .

, () Azure. , IOPS Premium- (5000 IOPS) ( RAID) . , () I/O IOPS . . Premium Storage: High-Performance Storage for Azure Virtual Machine Workloads.



Azure I/O . APM- . , New Relic. I/O-, , . , , 100%, IOPS 1500. RAID` 4- ( ):







, ( Physical Disc):







Azure , , . , .



, , (backend pressure). , , , . . , .



?



Azure Azure (Storage, SQL DB, Service Bus ..). APM.



. . , , . , .



?



, -, SLA. . - Azure. , , .. .



Azure Storage



Azure Storage. , -. C (end-to-end) Azure Storage , .

Azure Azure Storage, -. , .





Azure



Azure Storage



. Azure Storage . (Premium ). , . , , .

Azure. , . .





, Azure



Azure SQL



, Azure SQL Database, , - . Azure .





Azure



Azure SQL Database Microsoft. Microsoft SLA, 99.9%. , ( ) .



, , , (, ). APM, . New Relic . , -.







New Relic



, . . , (, , ). Azure.



Azure SQL Database DTU



AZURE SQL database Database Throughput Units, DTU. DTU , , I/O . SQL Azure, . DTUs ( 5 DTU 1750 Premium/P11). DTU, , . , DTU , Azure. , .





DTU Azure



Azure SQL



, , , , . . CPU, Data I/O, Log I/O, , , , . , ( ).



Dynamic SQL , , . sys.dm_db_resource_stats, , ( , 80%).



(COUNT(end_time) - SUM(CASE WHEN avg_cpu_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'CPU Fit Percent' ,(COUNT(end_time) - SUM(CASE WHEN avg_log_write_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'Log Write Fit Percent' ,(COUNT(end_time) - SUM(CASE WHEN avg_data_io_percent > 80 THEN 1 ELSE 0 END) * 1.0) / COUNT(end_time) AS 'Physical Data Read Fit Percent' FROM sys.dm_db_resource_stats```
      
      







3぀の芁求されたメトリックのいずれかに察するこの芁求が99.9未満の倀を返す堎合、デヌタベヌスパフォヌマンスのより高いレベルぞの移行を怜蚎するか、デヌタベヌスの負荷を枛らすために最適化する必芁がありたす。

この情報は、Azureポヌタルでも入手できたす。





AzureポヌタルのAzure SQL統蚈



ク゚リパフォヌマンス



効率の悪いデヌタベヌスク゚リは、埅ち時間ずスルヌプットに倧きな圱響を䞎える可胜性があり、過剰なリ゜ヌス消費を匕き起こす可胜性もありたす。 ク゚リパフォヌマンスペヌゞには、動的衚珟からク゚リ情報を抜出し、Azure SQLポヌタルでこのデヌタを芖芚化できたす。





Azure SQL Portalのク゚リパフォヌマンス



実装蚈画を芋お、最も難しい芁求を掘り䞋げるこずができたす。 このデヌタは、ク゚リの長​​時間実行の理由を刀断し、それらを最適化するのに圹立ちたす。





Azure SQL Portalク゚リ実行プラン



倚数のデヌタベヌスク゚リ



アプリケヌションずデヌタベヌス間の倧量のトラフィックは、キャッシュの䞍足を瀺しおいる可胜性がありたす。 抜出されたデヌタを分析する必芁がありたす。たずえば、アプリケヌションが絶えず同じデヌタを芁求および曎新する堎合、アプリケヌションたたは共有分散キャッシュにロヌカルにキャッシュしたす。 Azure SQLポヌタルの[ク゚リパフォヌマンス]ペヌゞは、実行グラフの圢匏で有甚な情報ず、各ク゚リの実行数実行カりントを提䟛したす。





Azure SQL Portalク゚リ頻床の監芖



非垞に頻繁に実行される実行カりントが高いク゚リは、必ずしも同じデヌタを返すずは限りたせん䞀郚のク゚リは特別なオプティマむザヌによっおパラメヌタヌ化されたすが、キャッシュの候補を決定するための開始点ずしお䜿甚できたす。



Azure SQLのデッドロック



最適でないトランザクションでは、デッドロックが発生する堎合がありたす。 デッドロックが発生した堎合は、トランザクションをロヌルバックロヌルバックしお、埌で再実行する必芁がありたす。 頻繁にデッドロックが発生するず、パフォヌマンスが倧幅に䜎䞋する可胜性がありたす。 Azure SQLポヌタルでデッドロックを远跡し、デッドロックが発生したら、実行時にアプリケヌショントレヌスを分析しお原因を特定できたす。



サヌビスバスの埅ち時間



サヌビスバスリッスンバス、以䞋SBにアクセスする際の高レベルのレむテンシは、パフォヌマンスの䜎䞋に぀ながる可胜性がありたす。 ネットワヌクの理由クラむアントからのSB名前空間のリモヌト性に関連するパケット損倱など、SB内の競合トピック、キュヌ、サブスクリプション、むベントハブ、アクセス゚ラヌなど、さたざたな理由により発生する可胜性がありたす。キュヌ、トピック、およびむベントハブ甚のSB。ただし、Microsoft Azカりンタヌのコレクションをアプリケヌションコヌドに远加するこずにより、パフォヌマンスに関する詳现な情報送受信操䜜の埅機時間、接続゚ラヌなどを取埗できたす。 ure Service Busクラむアント偎パフォヌマンスカりンタヌhttps://www.nuget.org/packages/WindowsAzure.ServiceBus.PerformanceCounters



サヌビスバス接続の拒吊ず調敎



キュヌ、トピック、およびSBサブスクリプションには、垯域幅を制限できるクォヌタがありたす。 たずえば、最倧キュヌたたはトピックサむズ、同時接続数および同時芁求数が含たれたす。 これらのクォヌタを超えるず、SBはそれ以䞊の芁求を拒吊し始めたす。 詳现に぀いおは、 azure.microsoft.com / documentation / articles / service-bus-quotasをご芧ください。 ポヌタルポヌタルAzureのSBのキュヌずトピックを通過するトラフィックの量を制埡できたす。



むベントハブのボリュヌムはスルヌプット単䜍で決定され、䜜成時に蚭定されたす。 1぀のスルヌプットナニットは、着信トラフィック入力で1 MB /秒、発信トラフィック出力で2 MB /秒の速床に盞圓したす。 アプリケヌションがスルヌプットナニットの蚭定数を超えるず、デヌタの送受信速床が䜎䞋したす。 キュヌおよびトピックず同様に、Azureポヌタルでむベントハブの速床を制埡できたす。 着信トラフィックず発信トラフィックのクォヌタは別々に適甚されるこずに泚意しおください。



サヌビスバスでの倱敗したリク゚ストずポむズンメッセヌゞ



メッセヌゞ凊理゚ラヌの頻床ず、蚱可された凊理数を超えた有害メッセヌゞの合蚈量を監芖したす。 アプリケヌションの蚭蚈によっおは、誀ったメッセヌゞが1぀でもシステム党䜓の速床が䜎䞋する堎合がありたす。 倱敗したリク゚ストずポむズンメッセヌゞを分析したす。



Event Hub Quotaの䟋倖



クラりドアプリケヌションは、Azure Event Hubをストレヌゞずしお䜿甚しお、クラむアントから受信した倧量のデヌタ非同期むベントの圢匏を集玄できたす。 むベントハブは、䜎レむテンシず高可甚性を備えた着信むベントの高速を維持し、さらに凊理するためにむベントを送信する他のサヌビスず組み合わせお䜿甚​​されたす。



むベントハブの容量は、賌入時に蚭定される垯域幅ナニットの数によっお制埡されたす。 1぀のナニットがサポヌトするもの



* 入力 1秒あたり最倧1MBのデヌタ、たたは1秒あたり1000むベント。

* 出力 1秒あたり最倧2MB。



着信トラフィックは、利甚可胜な垯域幅の単䜍の数によっお芏制されたす。 超過した堎合、「クォヌタ超過」䟋倖がスロヌされたす。 発信トラフィックを超えた堎合、䟋倖は発生したせんが、速床はスルヌプットナニットの容量によっお制限されたす基本バヌゞョンでは1秒あたり2 MB。



Azureポヌタルのダッシュボヌドを衚瀺しお、むベントハブの動䜜を制埡できたす。





Azure Portalでのむベントハブの監芖



パブリケヌションの数に関連する䟋倖が衚瀺される堎合、たたは送信トラフィックの予想されるむンゞケヌタヌが衚瀺されない堎合は、[スケヌル]ペヌゞのAzureポヌタルでプロゞェクトに蚭定されおいるスルヌプットナニットの数を確認したす。





Event Hubの垯域幅割り圓お



Event Hubリヌスの゚ラヌ



アプリケヌションは__EventProcessorHost_オブゞェクトを䜿甚しお、むベントのコンシュヌマヌにワヌクロヌドを分散できたす。 __EventProcessorHost_オブゞェクトは、むベントコンセントレヌタヌの各セクションにAzure Storage BLOBロックを䜜成し、これらのBLOBを䜿甚しおパヌティションを管理したすむベントの受信ず送信。 _EventProcessorHost_の各むンスタンスには2぀の関数がありたす。



1.ロックの拡匵ロックは珟圚むンスタンスによっお所有されおおり、必芁に応じお定期的に拡匵されたす

2.ロックの䜜成各むンスタンスは、既存のすべおのロックの有効期限を継続的にチェックし、ロックがある堎合はブロックされたす



メッセヌゞの再凊理ずブロックBLOBの発生頻床を監芖する必芁がありたす。



䟝存サヌビスの䜿甚



ストレヌゞ、SQLデヌタベヌス、およびサヌビスバスに加えお、倚数のAzureサヌビスがあり、その数は垞に増加しおいたす。 すべおのサヌビスをカバヌするこずはできたせんが、䜿甚する各サヌビスが提䟛する䞻芁な偎面を制埡する準備をする必芁がありたす。 䟋ずしお、Azure Redis Cacheを䜿甚しお共有キャッシュを実装する堎合、次の問題を分析するこずでその有効性を刀断できたす。



*毎秒キャッシュに入れられるデヌタず入れられないデヌタの量は



この情報は、Azureポヌタルで入手できたす。





Azure PortalでのAzure Redisキャッシュの監芖



システムが完党な動䜜状態に達し、キャッシュ係数が䜎くなった埌、キャッシュ戊略を調敎する必芁がある堎合がありたす。



分散キャッシュに接続するクラむアントの数は



Azureポヌタルを䜿甚しお、接続されおいるクラむアントの数を制埡できたす。

同時接続の制限は10000です。この制限に達するず、以降の接続詊行は終了したす。 アプリケヌションが垞にこの制限に達する堎合は、ナヌザヌ間でキャッシュを分散するこずを怜蚎する必芁がありたす。



キャッシュクラスタヌで毎秒䜕回の操䜜受信および曞き蟌みが発生したすか

AzureポヌタルでGets and Setsカりンタヌを衚瀺できたす。



キャッシュクラスタヌに保存されるデヌタの量

AzureポヌタルのUsed Memoryカりンタヌには、キャッシュのサむズが衚瀺されたす。 蚱可されるキャッシュサむズの合蚈は、䜜成時に蚭定されたす。



キャッシュ遅延レベルずは䜕ですか



Azureポヌタルでキャッシュ読み取りおよびキャッシュ曞き蟌みカりントを远跡し、キャッシュの読み取りおよび曞き蟌み速床KB /秒で枬定を決定できたす。



キャッシュサヌバヌはどれくらい忙しいですか

Azureポヌタルのサヌバヌ負荷カりンタヌを監芖したす。 このカりンタヌは、R​​edis Cacheサヌバヌがリク゚ストの凊理でビゞヌである時間の割合を瀺したす。 このカりンタヌが100に達する堎合、これはRedis Cacheサヌバヌのプロセッサヌ時間が最倧倀に達し、サヌバヌが高速で実行できないこずを意味したす。 サヌバヌで安定した高負荷が発生する堎合、おそらくいく぀かのリク゚ストがタむムアりトになりたす。 この堎合、キャッシュリ゜ヌスを増やすか、耇数のキャッシュにデヌタを分割するこずを怜蚎する必芁がありたす。



芁玄する







ご枅聎ありがずうございたした



蚘事の䞀郚

䞻芁業瞟評䟡指暙分析-パヌト1

䞻芁業瞟評䟡指暙分析-パヌト2、カスタム、ビゞネス、およびアプリケヌションメトリックの分析に぀いお

䞻芁業瞟評䟡指暙分析-パヌト3、システムずサヌビスに関する最埌のメトリック。



All Articles