第15章. クラスター最適化
この作品はAIを使って翻訳されている。ご意見、ご感想をお待ちしている:translation-feedback@oreilly.com
あなたが担当しているデータベース、フレームワーク、アプリケーション、デバイスの種類に関係なく、誰かが常に高速化を望んでいる。これはおそらく、コンピュータ科学者にとって最も根強い課題のひとつだろう。アラン・チューリングが第二次世界大戦中に画期的な解読マシンを作成した後、彼の上司が "よくやったアラン、しかしもっと速くできないか?"と言ったことは想像に難くない。
パフォーマンスの最適化が永年の課題であることは驚くことではない。レスポンスに優れたアプリケーションをユーザに提供し、バッチ処理で許容できるスループットを維持できるようにすることは、常に重要である。しかし現代では、パフォーマンスの重要性はさらに高まっている。 インターネット時代には、顧客向けアプリケーションのパフォーマンスが低いと、顧客がオンライン・サービスを放棄することになり、収益に直接影響する。クラウド時代において、パフォーマンスの最適化はコストの最適化であり、パフォーマンスの悪いアプリケーションはより多くのクラウド・コンピューティング・リソースを消費し、月々の請求額を増加させる。
チューニングと消火活動の比較
パフォーマンスの最適化は通常、2つの形態のいずれかで行われる:
- パフォーマンス消火
-
パフォーマンスに重大な問題が発生し、直ちに対処しなければならない。
- パフォーマンス・チューニング
-
システムの性能を向上させ、オペレーション・コストを削減するために、システマティックに最適化される。
パフォーマンス・チューニングを行えば行うほど、パフォーマンス・ファイアリングを行う必要は少なくなる。とはいえ、ほとんどすべてのデータベース管理者にとって、両方のモードで機能する方法を知っておく必要がある。
消火モードでは、通常、何か「うまくいかなくなったこと」を発見しようとしている。これは、クラスタに負荷を作成している新しいSQL文やトランザクション、ハードウェアやノードの障害、アプリケーション負荷の変化によるパフォーマンスの問題などである。
チューニングモードでは、データベースクラスタのレイヤーを通して体系的に作業し、ワークロードが最適化され、ソフトウェアとハードウェアのコンポーネントが正しく構成されていることを確認する。一般化チューニングでは、データベーススタックのレイヤーを "ダウン "して作業するのがベストである。図15-1はこれらのレベルをまとめたものである。
図15-1. CockroachDBのソフトウェア層
各レイヤーの負荷は、上のレイヤーのコンフィギュレーションによって決まる。したがって、上位レイヤーのチューニングが完了するまでは、下位レイヤーのチューニングに点はない。例えば、必要なインデックスがすべて揃っていることを確認しない限り、ノードの点数を増やすことに意味はない。インデックスの追加は、停止時間や追加コストを必要としない、シンプルで迅速な作業である。構成によっては、既存のクラスタにノードを追加することは、時間とコストのかかるプロセスになるかもしれない。
したがってこの章では、クラスタの最適化について議論する際に、アプリケーションのレイヤーを通して作業することにする。 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access