ディスクのパフォヌマンスを適切に枬定する方法

abstract 珟圚のパフォヌマンスず理論䞊のパフォヌマンスの違い。 埅ち時間ずIOPS、ディスク負荷の独立性の抂念。 詊隓準備; 兞型的なテストパラメヌタ; 実甚的なコピヌペヌストのハりツヌ。



譊告倚くの手玙、長い読み。



歌詞





非垞に䞀般的な問題は、「サヌバヌの速床」を理解しようずする詊みです。すべおのテストの䞭で、ディスクサブシステムのパフォヌマンスを評䟡する最も哀れな詊みです。 私の人生で芋た恐怖は次のずおりです。





これらはすべお完党に間違った方法です。 さらに埮劙な枬定誀差を分析したすが、これらのテストに関しおは、1぀だけ蚀うこずができたす-それを捚おお、䜿甚しないでください。





ボニヌ++ずむオゟンは、ファむルシステムの速床を枬定したす。 これは、キャッシュ、カヌネルの思慮深さ、ディスク䞊のFSロケヌションの成功などに䟝存したす。 間接的に、iozoneで良奜な結果が埗られた堎合、それは良奜なキャッシュ、たたは愚かなパラメヌタヌセット、たたは非垞に高速なディスクどのオプションを取埗したかを掚枬したすであるず蚀えたす。 ボニヌ++は、䞀般的にファむルのオヌプン/クロヌズ操䜜に焊点を圓おおいたす。 ぀たり 圌女は特にディスクのパフォヌマンスをテストしおいたせん。



ダむレクトオプションなしのddは、キャッシュ速床のみを衚瀺したす。 䞀郚の構成では、キャッシュを䜿甚した堎合よりもキャッシュを䜿甚しなくおも線圢速床を埗るこずができたす。 䞀郚では、メガバむト単䜍の線圢パフォヌマンスで毎秒数癟メガバむトを受信したす。



directオプションiflag =読み取り甚に盎接、oflag =曞き蟌み甚に盎接を䜿甚するず、ddは線圢速床のみをチェックしたす。 これは、最倧速床耇数のディスクでRAIDを実行する堎合、耇数のストリヌムでRAIDを実行するず1぀よりも高速になる可胜性がありたすたたは実際のパフォヌマンスずはたったく異なりたす。



IOmeterは䜕よりも優れおいたすが、Linuxでの動䜜に問題がありたす。 64ビットバヌゞョンでは、負荷の皮類が正しく蚈算されず、過小評䟡された結果が衚瀺されたす信じない人は、ramdiskで実行しおください。



ネタバレLinuxの正しいナヌティリティはfioです。 しかし、それはテストの非垞に思慮深い準備ず結果のさらに思慮深い分析を必芁ずしたす。 以䞋は、理論の準備ず、fioでの䜜業に関する実際的なメモのみです。



問題の声明



珟圚のVS最倧パフォヌマンス

今、さらに退屈な手玙がありたす。 誰かがお気に入りのSSD'shka、ラップトップネゞなどのオりムの数に興味がある堎合 -蚘事の最埌にあるレシピをご芧ください。



ramdiskを陀くすべおの珟代のメディアは、ランダム曞き蟌み操䜜に察しお非垞に吊定的な態床を持っおいたす。 HDDの堎合、曞き蟌みず読み取りの間に違いはありたせん。ヘッドがディスクを駆動するこずが重芁です。 ただし、SSDの堎合、ナンセンスを読み取り、小さなブロックで曞き蟌むランダム操䜜により、コピヌオンラむトが発生したす。 最小蚘録サむズは1〜2 MBで、4 KBを曞き蟌みたす。 2MBを読み取り、4KBに眮き換えお曞き戻す必芁がありたす。 その結果、たずえば、SSDに4kbを曞き蟌むには1秒あたり400リク゚ストが必芁になり、800 Mb / s!!!!を読み取り、それらを曞き戻すこずになりたす。 ramdiskの堎合、このような問題は同じかもしれたせんが、DDRの「最小ブロック」のサむズは玄128バむトであり、テストのブロックは通垞4kbであるため、RAMディスクのパフォヌマンスのテストではDDRの粒床は重芁ではありたせん 。



この投皿は異なるメディアの詳现に関するものではないため、䞀般的な問題に戻りたす。



Mb / sで゚ントリを枬定するこずはできたせん。 重芁なこずは、頭の動きの数ず、SSDで乱れたランダムブロックの数です。 ぀たり アカりントはIOオペレヌションの数になり、IO / sの倀はIOPSず呌ばれたす。 したがっお、ランダムな負荷を枬定するずき、IOPSに぀いお話したすwIOPS、rIOPS、それぞれ曞き蟌みおよび読み取り甚。 倧芏暡なシステムでは、kIOPS倀泚意、垞にどこでも、1024なし1kIOPS = 1000 IOPSを䜿甚したす。



そしお、ここで、倚くは第䞀皮のtrapに陥りたす。 圌らは、ドラむブが䜕IOPSを提䟛しおいるかを知りたがっおいたす。 たたはディスクシェルフ。 たたは、カバヌの䞋にディスクが詰められた200台のサヌバヌキャビネット。



実行された操䜜の数12:00:15から12:00:16 245790のディスク操䜜が実行されたこずが蚘録されたす-぀たり、負荷は245kIOPSでしたずシステムが最倧操䜜を実行できる量を区別するこずが重芁です。



実行される操䜜の数は垞に既知であり、枬定が容易です。 しかし、ディスク操䜜に぀いお話すずきは、将来時制でそれに぀いお話したす。 「システムはいく぀の操䜜を実行できたすか」-「どの操䜜ですか」 異なる操䜜は、ストレヌゞシステムに異なる負荷を䞎えたす。 たずえば、誰かが1 MBのランダムブロックで曞き蟌む堎合、4 KBのブロックで順番に読み取る堎合よりもかなり少ないiopsを受け取りたす。



そしお、負荷の堎合に、「来た、凊理された」リク゚ストの数に぀いお話しおいるなら、蚈画の堎合、どのiopsになるかを知りたいです。



ドラマは、どんな芁求が来るのか誰も知らないずいうこずです。 小さなもの 倧きなもの 契玄 意芋の䞍䞀臎 それらはキャッシュから読み取られたすか、それずも最も遅い堎所に移動しおディスクの異なる半分からバむトを遞択する必芁がありたすか



ドラマをこれ以䞊゚スカレヌトする぀もりはありたせん。簡単な答えがありたす。





その結果、数字が埗られたすが、それぞれが間違っおいたす。 䟋15kIOPSおよび150 IOPS。



実際のシステムパフォヌマンスはどうなりたすか これは、負荷が良い偎ず悪い偎にどれだけ近いかによっおのみ決たりたす。 ぀たり、ありふれた「人生が衚瀺されたす」。



ほずんどの堎合、圌らは次の指暙に焊点を圓おおいたす。
  1. その最良のケヌスは䟝然ずしお最高です。 最悪から最高のケヌスがほずんど倉わらないように最適化できるからです。 これは悪いこずですたあ、そういう最悪の最悪の事態がありたす。
  2. 最悪の堎合。 それがあれば、ストレヌゞシステムは埗られた数倀よりも速く動䜜するず蚀えたす。 ぀たり 3000 IOPSを取埗した堎合、「最倧2000」の負荷でシステム/ディスクを安党に䜿甚できたす。




さお、ブロックサむズに぀いお。 埓来、テストのブロックサむズは4kでした。 なんで これは、ファむルを保存するずきにOSが䜿甚する暙準ブロックサむズであるためです。 これはメモリペヌゞのサむズであり、䞀般に、Very Round Computer Numberです。



システムが4kブロックで100 IOPS最悪を凊理する堎合、8kブロックでは凊理が少なくなりたす少なくずも50 IOPS、ほずんどの堎合70〜80。 さお、1MBブロックでは、たったく異なる数倀が衚瀺されたす。



それだけですか いいえ、それは単なる玹介でした。 䞊に曞かれおいるものはすべお倚かれ少なかれよく知られおいたす。 重芁なこずは以䞋から始たりたす。



最初に、「䟝存IOPS」の抂念を芋おいきたす。 アプリケヌションが次のように機胜するこずを想像しおください。



䟿宜䞊、凊理時間はれロであるず想定しおいたす。 各読み取りおよび曞き蟌み芁求が1ミリ秒凊理される堎合、アプリケヌションは1秒あたりいく぀のレコヌドを凊理できたすか 500です。そしお、アプリケヌションの2番目のコピヌの隣で起動するずどうなりたすか 適切なシステムでは1000になりたす。1000を倧幅に䞋回るず、システムパフォヌマンスの限界に達したした。 そうでない堎合、䟝存IOPSを持぀アプリケヌションのパフォヌマンスは、ストレヌゞパフォヌマンスではなく、レむテンシずIOPS䟝存性の2぀のパラメヌタヌによっお制限されるこずを意味したす。



レむテンシヌから始めたしょう。 遅延 -芁求の実行時間、応答前の遅延。 通垞、「平均遅延」ずいう倀を䜿甚したす。 より高床なものは、特定の間隔ほずんどの堎合1秒ですべおの操䜜の䞭倮倀を䜿甚したす。 レむテンシヌの枬定は非垞に困難です。 これは、ストレヌゞシステムでは、リク゚ストの䞀郚が迅速に実行され、䞀郚が䜎速であり、非垞に䞍快な状況に陥り、残りの䜕十倍ものサヌビスを提䟛できるずいう事実によるものです。



陰謀は、芁求のキュヌの存圚によっお匷化され、その䞭で芁求の䞊べ替えずその䞊列実行を実行できたす。 通垞のSATAドラむブのキュヌ深床NCQは31であり、匷力なストレヌゞシステムは数千に達する可胜性がありたす。 キュヌの実際の長さ完了を埅機しおいる芁求の数はむしろ負のパラメヌタヌであるこずに泚意しおください。キュヌに倚くの芁求がある堎合、それらはより長く、぀たり遅くなりたす。スヌパヌマヌケットのラッシュアワヌに立っおいる人は、キュヌは、サヌビスが短くなりたす。



遅延は、シリアルアプリケヌションのパフォヌマンスに盎接圱響したす。その䟋を䞊蚘に瀺したす。 より高いレむテンシヌ-より䜎いパフォヌマンス。 5msでは、リク゚ストの最倧数は200 pcs / s、20ms-50です。さらに、1msで100個のリク゚ストを凊理し、100msで9個のリク゚ストがある堎合、1秒で平均109msのIOPSを取埗したす。 平均10ミリ秒。



したがっお、結論を理解するのはかなり困難です。パフォヌマンスぞの負荷の皮類は、「シヌケンシャル」たたは「ランダム」だけでなく、ディスクを䜿甚するアプリケヌションの配眮にも圱響したす。



䟋アプリケヌション通垞のデスクトップタスクの起動は、ほが100順次です。 アプリケヌションを読み、必芁なラむブラリのリストを読み、各ラむブラリを順番に読みたす...だからこそ、デスクトップ䞊でSSDを非垞に情熱的に愛しおいるのです-読み取りには埮芖的な遅延マむクロ秒がありたす-もちろん、お気に入りのフォトショップやブレンダヌは10分の1秒で始たりたす。



しかし、たずえば、ロヌドされたWebサヌバヌの䜜業はほが䞊行しお行われたす-埌続の各クラむアントは、隣接するクラむアントずは独立しお凊理されたす。 埅ち時間は各クラむアントのサヌビス時間にのみ圱響し、「最倧クラむアント数」には圱響したせん。 そしお、私たちはその1ms、10msを認めたす-ずにかくりェブサヌバヌのために。 ただし、10ミリ秒の䞊列リク゚ストをいく぀送信できるかは「すべお同じ」ではありたせん。



脱穀 。 デスクトップナヌザヌは、システム管理者よりもこの珟象に粟通しおいるず思いたす。 ハヌドドラむブのひどいクランチ、蚀いようのないブレヌキ、「䜕も機胜せず、すべおが遅くなりたす。」



ディスクキュヌを詰たらせ始めるずたたはストレヌゞ、蚘事の文脈では䞡者に違いはありたせん、埅ち時間が急激に増加し始めたす。 ディスクは制限たで実行されたすが、サヌビスの速床よりも倚くの着信呌び出しがありたす。 遅延は急速に増加し始め、数秒ずいう恐ろしい数に達したすこれは、たずえば、アプリケヌションが䜜業を完了するために100の操䜜を行う必芁があるにもかかわらず、5ミリ秒の遅延では0.5秒の遅延を意味したす...。 この状態はスラッシングず呌ばれたす。



びっくりするでしょうが、どのドラむブやストレヌゞでも、通垞の読み蟌みよりもスラッシング状態でより倚くのIOPSを衚瀺できたす。 その理由は簡単です。通垞モヌドでキュヌがほずんど空で、レゞ係が顧客を埅っお退屈しおいる堎合 、トラッシュ状態では䞀定のサヌビスがありたす。 ずころで、スヌパヌマヌケットが列を䞊べるのが奜きな理由の説明はここにありたす-この堎合、レゞ係の生産性は最倧です。 確かに、顧客はあたり奜きではありたせん。 そしお、良いスヌパヌマヌケットでは、圌らはそのような䜓制を避けようずしたす。 キュヌの深さを䞊げ続けるず、キュヌがいっぱいになり、キュヌに入るためのキュヌむングが芁求されるため、生産性が䜎䞋し始めたすはい、手にボヌルペンを持぀シリアル番号。



そしお、ここでは、ディスクパフォ​​ヌマンスを枬定する人々の次の頻繁なそしお、反論するのが非垞に難しい゚ラヌを埅っおいたす。



テスト䞭の遅延制埡



「私のディスクは180 IOPSを生成するため、10個のディスクを䜿甚するず、1800 IOPSになりたす。」 それはたさに、悪いスヌパヌマヌケットが考えるもので、必芁以䞊にレゞ係を少なくしたす。 同時に、レむテンシヌは超越的であるこずが刀明したした-そしお、「そのように生きるこずはできたせん」。



実際のパフォヌマンステストでは、レむテンシを制埡する必芁がありたす。぀たり、レむテンシが合意された制限を䞋回るように、このようなテストパラメヌタを遞択する必芁がありたす。



そしお、ここで私たちは2番目の問題に盎面しおいたす制限は䜕ですか 理論はこの質問に答えるこずができたせん-この指暙はサヌビス品質の指暙です。 蚀い換えれば、誰もが自分で遞択したす。



個人的には、レむテンシが10ミリ秒を超えないように自分でテストを行っおいたす。 この指暙は、ストレヌゞパフォヌマンスの䞊限ず考えおいたす。 同時に、私の心では、遅れが感じられる限界倀は20ミリ秒だず思いたすが、䞊蚘の䟋では900から1ミリ秒ず10から100ミリ秒、平均が10ミリ秒になったこずを芚えおいたすか自分+ランダムバヌストの堎合は10ミリ秒。



䞊行性



䟝存IOPSず独立IOPSの問題に぀いおはすでに説明したした。 䟝存Iopのパフォヌマンスはレむテンシによっお正確に制埡され、この問題に぀いおはすでに説明したした。 しかし、独立したIOPS぀たり、䞊列ロヌドでのパフォヌマンスは、䜕に䟝存しおいたすか



答えは、ディスクを発明したか、ストレヌゞを蚭蚈した人の想像力からです。 SSDのヘッド、スピンドル、䞊列曞き蟌みキュヌの数に぀いおは説明できたすが、これはすべお掚枬です。 実甚化の芳点から、1぀の質問に興味がありたす。 䞊列ロヌドストリヌムをどれだけ実行できたすか レむテンシヌを倩囜に送信できるようにするず、䞊列スレッドの数がそこに移動したすが、その速床ではないため、レむテンシヌを忘れないでください。 質問は次のずおりです。指定されたしきい倀未満のレむテンシで実行できる䞊列スレッドの数はいく぀ですか テストはこの質問に答える必芁がありたす。



SANおよびNAS



それずは別に、ストレヌゞをTCPを䜿甚しおネットワヌク経由でホストに接続するずきの状況に぀いお話す必芁がありたす。 TCPに぀いおは、曞き、曞き、曞き、曞き盎す必芁がありたす。 Linuxには、さたざたな状況に合わせお蚭蚈されたネットワヌク甚の12の異なる茻茳制埡アルゎリズムがあるず蚀えば十分です。 たた、玄20のカヌネルパラメヌタヌがあり、それぞれが出力オりムに倧きく圱響する可胜性がありたす申し蚳ありたせんが、テスト結果。



パフォヌマンス評䟡の芳点から、このルヌルを受け入れる必芁がありたす。ネットワヌク接続ストレヌゞの堎合、テストは耇数のホストサヌバヌから䞊行しお実行する必芁がありたす。 1台のサヌバヌからのテストはストレヌゞテストではなく、ネットワヌク、ストレヌゞ、およびサヌバヌ自䜓の正しい蚭定の統合テストになりたす。



バス飜和



最埌の質問は、タむダのシェヌディングの問題です。 䜕蚀っおるの 400 MB / sを配信できるssdがあり、SATA / 300を介しお接続する堎合、すべおのパフォヌマンスが衚瀺されないこずは明らかです。 さらに、レむテンシヌの芳点からは、各芁求およびその応答がSATAケヌブルのボトルネックをすり抜けるたで順番に埅機する必芁があるため、問題は300MB / sに近づくずっず前に珟れ始めたす。



しかし、もっず楜しい状況がありたす。 たずえば、SAS / 300x4を介しお接続されたドラむブのシェルフがある堎合぀たり、それぞれ300MBの4本のSASラむン。 たくさんのようです。 たた、シェルフに24個のディスクがある堎合はどうなりたすか 24 * 100 = 2400 MB / sで、1200300x4しかありたせん。



さらに、䞀郚のサヌバヌマザヌボヌドでのテストでは、組み蟌みのSATAコントロヌラヌがPCIx4を介しお接続されるこずが倚いこずがわかりたした。



繰り返したすが、バスの飜和の䞻な問題は、ストリップの「倩井の䞋」を食べ尜くすこずではなく、バスの負荷に応じおレむテンシヌが増加するこずです。



スタントメヌカヌ



実務的なアドバむスの前に、産業甚ストレヌゞで芋られる有名なトリックに぀いおお話したす。 最初に、空のディスクを読み取る堎合、「どこからでも」から読み取りたす。 このシステムは、これたで曞かなかったドラむブの領域かられロを提䟛するのに十分なほどスマヌトです。



第二に、倚くのシステムでは、あらゆる皮類のスナップショット、シンプロビゞョニング、重耇排陀、圧瞮、遅延割り圓お、スパヌス配眮などのメカニズムにより、最初のレコヌドが埌続のものよりも悪い。 ぀たり、最初の蚘録埌にテストする必芁がありたす。



第䞉に、キャッシュ。 最悪のケヌスをテストする堎合、キャッシュが圹に立たないずきのシステムの動䜜を知る必芁がありたす。 これを行うには、そのようなテストサむズを取埗しお、「過去のキャッシュ」の読み取り/曞き蟌み、぀たりキャッシュからの脱出を保蚌する必芁がありたす。



曞き蟌みキャッシュは特別な話です。 すべおの曞き蟌み芁求シヌケンシャルおよびランダムを保存し、コンフォヌトモヌドで曞き蟌むこずができたす。 唯䞀の最悪の堎合の方法は「キャッシュトラッシング」です。぀たり、そのようなボリュヌムで曞き蟌み芁求を送信し、曞き蟌みキャッシュが曞き蟌みを停止し、コンフォヌトモヌドではないデヌタを匷制的に曞き蟌み隣接領域を結合したすが、ランダムデヌタをランダムに砎棄したす曞く。 これは、キャッシュサむズを超えおテスト領域を繰り返し超過するこずによっおのみ実珟できたす。



刀定-最小x10キャッシュ率盎に蚀っお、数倀は䞊限から取られおいたす。正確な蚈算メカニズムはありたせん。



OSロヌカルキャッシュ



もちろん、テストはロヌカルOSキャッシュの参加なしで行う必芁がありたす。぀たり、キャッシュを䜿甚しないモヌドでテストを実行する必芁がありたす。 Linuxでは、これはファむルたたはディスクを開くずきのO_DIRECTオプションです。



テストの説明



合蚈

1最悪のケヌス-ディスクサむズの100をテストしおいたす。これは、ストレヌゞの掚定キャッシュサむズの数倍です。 デスクトップの堎合、これは単なる産業甚ストレヌゞの「ディスク党䜓」です。LUNたたは仮想マシンのディスクサむズは1TB以䞊です。 Hehe、64GBのRAMキャッシュが倚いず思うなら...。

2テストブロックを4kbサむズで実斜したす。

3レむテンシが劥圓な制限内に収たるように、操䜜の䞊列床を遞択したす。



出力では、IOPSの数、埅機時間、キュヌ深床などのパラメヌタヌに関心がありたす。 テストが耇数のホストで実行された堎合、むンゞケヌタヌが芁玄されiopsおよびキュヌの深さ、埅ち時間に぀いおはすべおのホストのむンゞケヌタヌからavgたたはmaxが取埗されたす。



フィオ



ここで、実際の郚分に進みたす。 必芁な結果を達成できるナヌティリティfioがありたす。



通垞のfioモヌドでは、いわゆる ゞョブファむル、぀たり テストの倖芳を正確に蚘述する構成。 ゞョブファむルの䟋を以䞋に瀺したすが、ここでは、fioの仕組みに぀いお説明したす。



fioは、指定されたファむルに察しお操䜜を実行したす。 ファむルの代わりに、デバむスが瀺される堎合がありたす。 ファむルシステムを考慮から陀倖できたす。 いく぀かのテストモヌドがありたす。 randwrite、randread、randrwに興味がありたす。 残念ながら、randrwは䟝存iopsを提䟛したす読み取りは曞き蟌み埌に行われたす。完党に独立したテストを行うには、読み取り甚ず曞き蟌み甚randread、randwriteの2぀の䞊行タスクを実行する必芁がありたす。



そしお、fioに「事前割り圓お」を行う必芁がありたす。 メヌカヌのトリックに぀いおは䞊蚘を参照。 次に、ブロックサむズ4kを修正したす。



もう1぀のパラメヌタヌは、ディスクアクセス方法です。 最も速いのはlibaioで、これを䜿甚したす。



実甚的なレシピ



fioのむンストヌルapt-get install fiodebian / ubntu。 どちらかずいえば、squezeにはただありたせん。

このナヌティリティは非垞に巧劙に隠されおいるため、「ホヌムペヌゞ」はなく、gitリポゞトリのみがありたす。 ミラヌの1぀を次に瀺したす。freecode.com / projects / fio



ディスクをテストするずきは、ルヌトから実行する必芁がありたす。



読曞テスト



起動fio read.ini

Read.iniコンテンツ

 [readtest]
ブロックサむズ= 4k
ファむル名= / dev / sda
 rw = randread
ダむレクト= 1
バッファリング= 0
 ioengine = libaio
 iodepth = 32


タスクは、avg.latencyが10ミリ秒未満になるようにこのようなiodepthを遞択するこずです。



テストの蚘録



泚意間違ったドラむブ文字-デヌタがないたたになりたす

 [曞き蟌みテスト]
ブロックサむズ= 4k
ファむル名= / dev / sdz
 rw = randwrite
ダむレクト= 1
バッファリング= 0
 ioengine = libaio
 iodepth = 32


ハむブリッドテスト



最もおいしい郚分

泚意間違ったドラむブ文字-デヌタがないたたになりたす

 [readtest]
ブロックサむズ= 4k
ファむル名= / dev / sdz
 rw = randread
ダむレクト= 1
バッファリング= 0
 ioengine = libaio
 iodepth = 32
 [曞き蟌みテスト]
ブロックサむズ= 4k
ファむル名= / dev / sdz
 rw = randwrite
ダむレクト= 1
バッファリング= 0
 ioengine = libaio
 iodepth = 32




出力分析



テスト䞭、次のように衚瀺されたす。

ゞョブ2f = 2[rw] [2.8完了] [13312K / 11001K / s] [3250/2686 iops] [eta 05m12s]




角括匧内はIOPSの数です。 しかし、私たちは埅ち時間に興味があるので、喜ぶには早すぎたす。



出力Ctrl-C、たたは最埌で、次のようになりたす。



^ C

fioシグナル2で終了

読み取りgroupid = 0、jobs = 1err = 0pid = 11048
  読み取りio = 126480KB、bw = 14107KB / s、iops = 3526、runt = 8966msec
    スラットusec最小= 3、最倧= 432、平均= 6.19、暙準偏差= 6.72
     clatusec最小= 387、最倧= 208677、平均= 9063.18、stdev = 22736.45
     bwKB / s最小= 10416、最倧= 18176、per = 98.74、平均= 13928.29、stdev = 2414.65
   cpuusr = 1.56、sys = 3.17、ctx = 15636、majf = 0、minf = 57
   IO深床1 = 0.1、2 = 0.1、4 = 0.1、8 = 0.1、16 = 0.1、32 = 99.9、> = 64 = 0.0
     送信0 = 0.0、4 = 100.0、8 = 0.0、16 = 0.0、32 = 0.0、64 = 0.0、> = 64 = 0.0
     完了0 = 0.0、4 = 100.0、8 = 0.0、16 = 0.0、32 = 0.1、64 = 0.0、> = 64 = 0.0
      r / wを発行合蚈= 31620/0、短い= 0/0
      latusec500 = 0.07、750 = 0.99、1000 = 2.76
      latミリ秒2 = 16.55、4 = 35.21、10 = 35.47、20 = 3.68、50 = 0.76
      latミリ秒100 = 0.08、250 = 4.43
曞き蟌みgroupid = 0、jobs = 1err = 0pid = 11050
  曞き蟌みio = 95280KB、bw = 10630KB / s、iops = 2657、runt = 8963msec
    スラットusec最小= 3、最倧= 907、平均= 7.60、stdev = 11.68
     clatusec最小= 589、最倧= 162693、平均= 12028.23、stdev = 25166.31
     bwKB / s最小= 6666、最倧= 14304、per = 100.47、平均= 10679.50、stdev = 2141.46
   cpuusr = 0.49、sys = 3.57、ctx = 12075、majf = 0、minf = 25
   IO深床1 = 0.1、2 = 0.1、4 = 0.1、8 = 0.1、16 = 0.1、32 = 99.9、> = 64 = 0.0
     送信0 = 0.0、4 = 100.0、8 = 0.0、16 = 0.0、32 = 0.0、64 = 0.0、> = 64 = 0.0
     完了0 = 0.0、4 = 100.0、8 = 0.0、16 = 0.0、32 = 0.1、64 = 0.0、> = 64 = 0.0
      r / wを発行合蚈= 0/23820、短= 0/0
      latusec750 = 0.03、1000 = 0.37
      latミリ秒2 = 9.04、4 = 24.53、10 = 49.72、20 = 9.56、50 = 0.82
      latミリ秒100 = 0.07、250 = 5.87




このうち、私たちは最䜎限次のこずに興味がありたす

読み取りiops = 3526 clat = 9063.18usec、぀たり9ミリ秒

曞き蟌みiops = 2657 clat = 12028.23



スラットずクラットを混同しないでください。 slatはリク゚ストが送信された時間぀たり、Linuxディスクスタックのパフォヌマンスであり、clatは完党なレむテンシ、぀たり、私たちが述べたレむテンシです。 読むこずは曞くこずよりも明らかに生産的であるこずがわかりやすく、過床の深さを瀺したした。



同じ䟋では、iodepthを16/16に䞋げお以䞋を取埗したす。



読み取り6548 iops、243.79usec = 2.4ms

曞き蟌み5301 iops、3005.13usec = 3ms



明らかに、64の深さ32 + 32が倧きすぎるこずが刀明したため、最終的なパフォヌマンスも䜎䞋したした。 深さ32は、テストにより適しおいたす。



パフォヌマンスオリ゚ンテヌション



もちろん、誰もが既にオりムを発芋しおいたす。 芳察した倀を瀺したす。



譊告これを仮想マシンで実行するず、

aIOPSのためにお金を取る堎合、それは非垞に具䜓的なお金になりたす。

bホスティング事業者のストレヌゞが䞍十分で、数十ギガバむトのキャッシュのみに䟝存しおいる堎合、倧きなディスク> 1TBを䜿甚したテストは、ホスティング事業者ずホスティングネむバヌの問題に぀ながりたす。 䞀郚のホストは気分を害し、あなたに尋ねる堎合がありたす。

cテストの前にディスクをれロにするこずを忘れないでください぀たり、dd if = / dev / zero of = / dev / sdz bs = 2M oflag = direct



All Articles