TOPサーバ構築・運用> 32bit環境での結果




徹底比較!! PostgreSQL vs MySQL
徹底比較!! PostgreSQL vs MySQL

第5回:ベンチマーク試験による処理性能比較
著者:NTTデータ   藤塚 勤也   2006/6/6
前のページ  1  2  3  4  次のページ
32bit環境での結果

   図2が32bit環境での測定結果です。縦軸がTPC値で、横軸が同時実行クライアント数です。
32bit環境の測定結果
図2:32bit環境の測定結果

   PostgreSQLとMySQL+InnoDBエンジンは、同時実行クライアント数が10あたりで最大TPS値を記録し、それ以上のクライアント数では徐々にTPS値が減少する結果となりました。

   PostgreSQLの最大TPS値は「1,212TPS」で、MySQL+InnoDBエンジンは「1,385TPS」となり、InnoDBエンジンの方がPostgreSQLに比べ10%程度高い性能値が測定されました。

   もう一方のMySQL+MyISAMエンジンは、同時実行クライアント数が30〜40ぐらいまでTPS値が増加し続け、最大値は「2,423TPS」でした。また、クライアント数90でも「2,340TPS」となり大きな性能劣化も計測されませんでした。「第3回:トランザクションの比較」にて解説した通り、MyISAMエンジンはトランザクション機能を持っていないため、非常に軽快な動作をすることがこの結果からわかると思います。


64bit環境での結果

   図3が64bit環境の測定結果です。32bit環境の測定結果とほとんど同じ傾向であることがわかると思います。MySQL+MyISAMエンジンの性能値が圧倒的に高く、PostgreSQLとMySQL+InnoDBエンジンには10%程度の性能差が計測されました。

64bit環境の測定結果
図3:64bit環境の測定結果


PostgreSQLにおける32bit環境結果と64bit環境結果の比較

   まずはPostgreSQLです。図4がPostgreSQLの32bit環境での結果と64bit環境での結果を同一のグラフに示したものです。

PostgreSQLでの32bit環境と64bit環境の比較
図4:PostgreSQLでの32bit環境と64bit環境の比較

   32bit環境では、同時実行クライアント数10の時最大TPS値になり「1,212TPS」でした。64bit環境では、同時実行クライアント数5の時最大TPS値になり「1,189TPS」でした。このように、最大TPS値を計測したクライアント数は異なるものの、32bit環境と64bit環境を比べてあまりTPS値が変わらないことがわかります。

   ベンチマーク試験を実施する前は、64bit環境の方がよい性能値が計測されるだろうと考えていましたが、その考え通りの結果は得られませんでした。なぜ64bit環境の方の最大TPS値があまり高くないのでしょうか。

   残念ながら、今回はあまり深く追求するに至りませんでしたが、1つだけわかったこととしては、各テーブルのファイルサイズが異なることです。表5に初期化時の各テーブルのファイルサイズを示します。

  32bit環境 64bit環境
branche 8,192Byte 8,192Byte
tellers 16,384Byte 16,384Byte
accounts 132,849,664Byte 156,540,928Byte
history 0Byte 0Byte

表5:PostgreSQLの各テーブルのファイルサイズ

   
件数の多いaccountsテーブルのファイルサイズが32bit環境と64bit環境で異なっています。おそらく1ブロック当たりに格納できるレコード数が異なるのでしょう。当然、ファイルのサイズが異なれば、それを読み込むためのI/O処理に時間がかかることは明白です。
前のページ  1  2  3  4  次のページ


NTTデータ  藤塚 勤也
著者プロフィール
株式会社NTTデータ   藤塚 勤也
基盤システム事業本部 オープンソース開発センタ シニアスペシャリスト。
日本タンデムコンピューターズ(現日本HP)を経て、2003年よりNTTデータにてOSS分野に参画。日頃はオリジナルOSSの開発や、OSSを用いたシステム構築への技術支援に従事。「RDBMS解剖学」(翔泳社)を共著。

INDEX
第5回:ベンチマーク試験による処理性能比較
  ベンチマーク試験
  ベンチマーク試験内容
32bit環境での結果
  MySQLにおける32bit環境結果と64bit環境結果の比較