皆様こんにちは、昨年は大変お世話になりました。
2024年もよろしくお願いいたします。
ネットワールドストレージ担当山元です。
2024年初のストレージブログはパフォーマンス検証についてお伝えしようと思います。
少初歩的な内容も含めておさらい的にご説明していこうという意図ですので、ストレージついて十分なご理解のある方は読み飛ばして大丈夫です!
さて、ストレージのパフォーマンスというとよくIOPS値が引き合いに出されると思います。
また、SSD搭載モデルなどではレイテンシなども記載されていたり、評価の対象になったりしますね。
まず、IOPSというのは1秒あたりにどれくらいIOができるのかという性能値を表すものです。
例えば、100IOPSのものと200IOPSのものを比べると200IOPSのものの方が1秒間当たりの処理スピードが速くなり、結果的にストレージ上のアプリケーションなどの動作に違いがみられるという具合です。
ここで1つ、気を付けておきたいポイントがストレージによって得意とするブロックサイズに差があるということです。
製品やメーカーの仕様やテクノロジに依存していてDiskまたはSSDに実データの読み書きを行う際に多くのストレージは固定長のブロックサイズで読み書きをしているためです。
次に、レイテンシですが、これは読み書き要求(サーバー/クライアント)に対して、実際に読み書き処理をストレージで行って書き込みましたよー(または読みました)という応答を行うまでの時間だと捉えて頂ければ大きな誤解はないと思います。
実際には、ストレージの指し示すレイテンシとサーバーから見えるレイテンシは基準点の違いで異なっていたり、読み書きを実行してから返すのか、別の仕組みを使って上手いこと処理するのかなど各製品によって細かい違いがある部分だとは思います。
ストレージ性能を計る指標としてIOPS/レイテンシがあることや、その指し示す意味合いについてはご説明した通りですが、実際にストレージ性能を測ろうとした時には、これだけでは不十分なことがあります。
例えば、見かけ上のIOPSは非常に高い値(=高パフォーマンス)を示しているが、ストレージCPUがほぼ100%利用していてバッファがない(=余裕がない)状態だったり、DiskUtil(=Diskの利用率)が100%に近く、Diskのリソースに余裕がなかったりなどが挙げられます。
このあたりの情報は、製品やメーカーによって取得できる値に差があり、すべて同一条件で比べることが難しい場合があります。
また、当然ですが、メーカーさんは自社製品を少しでも良く見せて売りたいので自社製品の得意な条件で性能値を公開します。
ネットワールドでは、新製品や新OSが出ると不定期で性能試験を実施しています。
試験の手法は、負荷かけサーバーを複数台用意しストレージに対して125パターンでIOをかけるという方法をとっています。
ブロックサイズで性能差が出るというお話をしましたが、他にもRead/Write比率、Random/sequentialという部分で性能差が出ます。
このため、ネットワールドで試験をする際にはブロックサイズを4KB/8KB/16KB/32KB/64KB、Read比率を100%/75%/50%/25%/0%、Random率を100%/75%/50%/25%/0%として、計125パターンでストレージの本当の性能を明らかにしようという検証を実施しています。
検証セミナーや検証動画などでもたびたび登場しますので、忘れてしまったという方はこちらのブログをご参照頂ければ幸いです。
性能検証の話の中で今まで触れていませんでしたが、最近ではデータ削減機能についても大きなポイントとなります。
一昔前であれば、大容量HDDを搭載し費用を安価に抑えながらデータをガンガン書き込み、保存するという手法が使えていましたが最近ではHDDよりも性能が良いSSDが主流となってきています。
このSSDは容量単価は年々抑えられているものの、そもそもの保存データ量の増大なども相まってデータ削減が重要視されています。
このデータ削減ですが、ストレージとしては本来はあまりやりたくないはずです。
というのも、データ削減にはCPUなどの演算リソースを使うこととなる上に、書き込み量が減るのでストレージの容量追加が見込みづらくなるためです。ですが、ユーザー視点でいえば大量のデータをそのまま書き込み、「足りなくなったら追加で買ってね」というのはあまり魅力的なストレージではありません。
このため、各社でデータ削減をCPUにいかに負担をかけず(パフォーマンスを犠牲にせず)に行うかという観点で開発が進められています。
UnityシリーズではOEのアップデートに伴ってデータ削減機能がGUIからも選択できるように強化されていたりします。
データ削減のタイミングはメーカーによって異なりますが、サーバー/クライアントからの書き込み要求があったタイミングでデータ削減を行うインライン方式と、ストレージ側で書き込み済みのデータをスケジューリングで整理するポストプロセス方式がメインのタイミングになります。
ポストプロセスに関しては、書き込み要求の少ない時間帯(業務時間外夜間など)に実施することでCPU等のストレージ装置への負荷を軽減することが可能です。
インラインの場合には、ストレージによってはON/OFFの切り替えが可能なもの、常時ONで設定を変えられないものとありますが、常時ONの場合にはパフォーマンス影響にどう対応しているかもポイントとなります。
各製品、OSバージョン、利用用途(ファイルサーバー、データストアなど)に応じてベストプラクティスがメーカーから提供されていますが、ベストプラクティスに沿った構成かどうかでパフォーマンスは結構変わります。
最新OSの方がパフォーマンスチューニングが適切に行われていてよりハイパフォーマンスを期待できるなどもあります。
また、Dellのストレージ製品についてはメーカーで公開しているSizerがあるため、必要なパフォーマンス情報が分かっている際にはあらかじめ調べることができます。
一例として、MidrangeSizerのリンクも併せてご紹介しておきます!
使い方にコツがあったりもしますので、よく分からない…という場合にはまるっと弊社にご相談ください!
ネットワールドではストレージのパフォーマンス検証を多くアウトプットしていますが、どんなポイントで見て聞けばいいのか分からない方も多いかなということで今回はこんなお話でまとめてみました。
具体的な製品パフォーマンスについては、手持ちのものが少し古かったので改めて検証をした際に最新情報をセミナー、動画と合わせてブログでもご紹介できればと思います。
最後まで、ご覧いただきありがとうございました。
2024年も引き続きよろしくお願いいたします。