お悩み解決!オラクルのサイジング

日本オラクル株式会社 Oracle Direct テクニカルサービス部 藤田 久美子(ふじた くみこ)

はじめに

  • これから構築するデータベースやアプリケーションには、どれくらいのCPUやメモリが必要なの?
  • パフォーマンス要件を満たすには、どういう構成にすればいいの?
  • 現在想定している構成に無理や無駄はないの?

システム構成を決める際、こういった悩みを持つ方は多いのではないでしょうか? この資料では、新規システム構築、もしくはハードウェアリプレースをご検討の皆さまに、適切にサーバーサイジングを行うためのポイントをご紹介いたします。

目次

サイジングとは?

システムやサービスを提供する際に、想定される負荷を見積もり、それを処理するのに十分な性能・台数のハードウェアを用意することをサイジングといいます。

サイジングの重要性

昨今のハードウェア(CPUやメモリ)のめざましい性能向上にも関わらず、システムの性能問題は後を絶ちません。その原因の1つに不適切なサイジングが挙げられます。サイジングが適切ではない場合、システム運用時の高負荷に耐えられず、パフォーマンス劣化やシステムダウン等の重大な問題が発生することがあります。

図1

さらに問題なのは、運用開始後の対策実施が非常に困難であるという点です。不適切なサイジングによって生じる問題の対策方法としては、ハードウェアの増強やリプレース、もしくはシステム全体にまたがるパフォーマンス・チューニングなどが考えられます。しかし、これらの作業に伴うシステム停止が許されない場合もありますし、なによりも巨額の追加コストが必要になるため、予算的に実施不可能な状況に陥ることも少なくありません。 とはいえ、性能問題がビジネスに与えるインパクトは非常に大きいため、問題発生時は緊急に改善する必要に迫られます。 こういった状況を恐れてか、最近はやみくもに高スペックのハードウェアをそろえておくケースが目立ちます。しかし、コスト削減が緊急課題とされるなか、ハードウェアに過剰な投資をすることはIT投資の効率を悪化させ、結局ビジネスに悪影響を与えてしまうことでしょう。 適切なサイジングを実施し、過小でなく過剰でもない最適なシステム構成を決定することは、そのシステムにとってはもちろん、ビジネスにとっても非常に重要です。

サイジングの3つの工程

適切なサイジングに必要な工程は以下3つとなります。

図2
  1. システム要件の確認

    サイジングに必要なシステム要件とは、すなわち性能要件です。性能要件の正確さがサイジングの適切さを決定づけるといっても過言ではありません。そのため、現行システムの稼動統計を入手するなどして、できる限り正確な値によって要件を定義することが求められます。その定義はピーク時の要件、かつ、将来の増減見込みを加味した要件でなければなりません。将来にわたって常に安定したシステム稼動を目指すために、これらの要素を確実に盛り込んでいく必要があります。しかし逆に考えると、性能要件にこういった不確実な要素が含まれる限り、どんなに正確にサイジングしようとしても、想定どおりにならない可能性があるということになります。そういった可能性にも備えておくことは重要です。

  2. サイジング

    性能要件を定義したら、それを満たすハードウェアスペックを導き出していきます。この段階では実際の環境は存在しないので、一般的には類似システムのリソース使用率などから机上で算出する方法をとることになります。算出の際に指標としたシステムとのアプリケーションの構造や環境の差異などによる影響が、どの程度になるかを正確に見積もることは難しいので、やはり、これも性能要件と同様に不確実な要素を含む作業であると言わざるを得ません。こうした要素を考慮し、バッファをどの程度含めるかが悩みどころとなります。

  3. ベンチマーク

    前の2つの工程(要件確認、机上サイジング)には不確実な要素が含まれると説明しました。そのため、これまでに得た結果を“評価”することが必要となります。本番に近い状態で評価すると、サイジング結果の精度を高めることができます。

いくら緻密にサイジングしても、本当に十分な性能を発揮できるかどうかは、実際に本番環境で稼働させてみない限りわかりません。ただし、要件をきちんと定義し、サイジングとベンチマーク評価を繰り返しながら可能な限りサイジングの精度を高めていくと、運用開始後に性能問題が発生するリスクを低減することができます。3つの工程それぞれが重要となりますので、しっかり計画をたててのぞみましょう。

▲ ページTOPに戻る

サイジングの実際

3つの工程それぞれにおいて、ポイントと具体例をみていきます。

システム要件確認

まず確認すべきは、システムの処理タイプ(特性)です。データベースシステムには大きく分けて、OLTP系とDSS/DWH系の2種類があります。これによって考慮すべき性能要件やサイジングの指標が変わってくるため、必須要件となります。最初に確認しましょう。

OLTPとDSS/DWH系の特徴

  OLTP DSS/DWH
履歴データ 大量
処理負荷 定型の処理 DML中心 非定型の問い合わせ
索引
結合
複製データ 正規化DBMS 非正規化DBMS
集計 希少 一般的

次に、具体的な性能要件を確認します。前項でも説明しましたが、ポイントは下記2点となります。

  1. ピーク時を想定して算出すること
  2. 将来の増加率を予測して算出すること

これらを考慮に入れて、「スループット(単位時間あたりのトランザクション数)」や「同時接続数」などの性能要件を明確に定義します。とはいえ、これらの項目があらかじめ数値として明確であることは多くはないと思います。その場合は、明らかになっている数値目標からこれらの要件を算出していく方法をとります。 Webシステムを例として、これらの要件を算出する方法をご紹介します。

図3

このようにして明らかな数値から必要な性能要件を算出していきます。ここで、ポイント1点目の「ピーク時を想定する」ことは、アプリケーションの構造や利用ユーザ数の確認等によってある程度は可能と考えられますが、2点目の「将来の増加率を予測」については、まったく不可能な場合もあると思います。そのような場合にはこの段階で、あらかじめ拡張性を考慮した設計をするといったことを考えておく必要があります。 以下はオラクル独自のクラスタリング技術により、高い拡張性を確保できるReal Application Cluster構成です。

図4 拡張性の確保 / Real Application Clusters

サイジング

サイジングのポイントは、“参照対象の選定”です。同様のシステム構成(業務内容や処理タイプが近いシステム)が存在する場合や、サイジング用にプロトタイプシステムを作成して実測できる場合はよいのですが、それ以外の場合は、何らかの結果を参照してそこから算出していく必要があります。 では参照対象としては具体的にどういったものがあるか、いくつか例を挙げてみます。

  • ハードウェア性能検証の結果 ハードウェアベンダの多くは自社製品の性能要件や検証結果を公開しています。 オラクルでは「 Oracle Grid Center」において、オラクルの持つ最新のグリッド技術とパートナー各社様(複数のハードウェアベンダ様)の最新のハードウェアおよびソリューションを組み合わせて共同で検証しております。事前検証済みの最適なシステム構成を公開しておりますので、その内容をサイジング参照対象としていただくことが可能です。 図5 ハードウェア性能検証の結果
  • 一般公開されているベンチマーク結果 客観的な評価としては、業界団体のTPC(Transaction Processing Performance Council)が公開している、オンライントランザクション処理のベンチマークテストTPC-C(Transaction Processing Performance Council Benchmark C)の結果によって得た処理性能や価格性能比の指標などがあります。TPC-Cはデータベースシステムの性能評価に広く使われています。 図6 一般公開されているベンチマーク結果

ベンチマーク

サイジングの精度を高めるためには不可欠なベンチマークですが、ここでのポイントは“本番に近い環境を作り出す”ことです。本番になるべく近い環境/状況でベンチマークすることが、サイジングの精度を高め、運用開始後にシステムが最適なパフォーマンスを実現するための重要なポイントとなります。ただし、ここで多くのコストはかけられませんので、確実かつ効率的な実施手法を検討しなければなりません。最近ではベンチマーク用の機能やツールが数多く出ていますので、有効に活用することをおすすめいたします。 オラクル社からも有効な機能やツールを複数提供させていただいております。

  • Oracle Enterprise Manager 最適なリソース割り当てやチューニング方法を、システムの稼動統計情報を元にアドバイス、実装するツールです。 図7 メモリー・アドバイザ
  • Oracle Real Application Testing 既存システムのワークロード取得およびリプレイ機能とSQL Performance Analyzerを組み合わせることによって、ソフトウェアアップグレードやハードウェアリプレースの際のテストを、確実かつ迅速に実施することを可能にします。 図8 データベース・リプレイ
  • Oracle Application Testing Suite Webアプリケーション、パッケージ・アプリケーションおよびSOAベース・アプリケーションに対する自動的な機能テスト、負荷テストおよびテスト管理を提供します。 図9 Oracle Load Testing for Web Applications~Webアプリケーションに対する負荷テスト~

▲ ページTOPに戻る

Copyright © 2009, Oracle Corporation Japan. All rights reserved.

無断転載を禁ず

この文書はあくまでも参考資料であり、掲載されている情報は予告なしに変更されることがあります。日本オラクル社は本書の内容に関していかなる保証もいたしません。また、本書の内容に関連したいかなる損害についても責任を負いかねます。

Oracleは米国Oracle Corporationの登録商標です。文中に参照されている各製品名及びサービス名は米国Oracle Corporationの商標または登録商標です。その他の製品名及びサービス名はそれぞれの所有者の商標または登録商標の可能性があります。

digitalasset

藤田 久美子(ふじた くみこ)

Oracle Directにて、データベースシステムのサイジングや可用性構成についての技術支援を担当。

本資料でご紹介した「Oracle 構成相談サービス」も担当させていただいております。技術支援を通して得た知識や経験、トレンド等を踏まえた“現場感”のあるサービス提供を心がけております。