- 締切済み
Postgresの高速化:ハードウェアの強化で
PostgreSQL8を使ってWEBのシステムを構築しています。 データの構造やアプリケーションの問題もあると思うのですが、 データ量が増えてきていて、SQLのクエリーの結果が遅くなっています。 その解決方法についての相談です。 アプリの対応で解決するのではなく、ハードウェアを強化して解決しようと考えています。 (新しいハードの購入を考えています。) が、 DBの高速化を狙った、ハードウェアのスペックアップてどこを強化すればいいのでしょうか、 ハードディスクの回転数? Raid構成の変更? メモリの増量? CPUの強化? 何処にお金をかけるのが一番最適でしょうか。 因みに今は CPU:XeonE5530_2.4GH_1p/4c MEM:6G HDD:SAS 15krpm 140G RAID:1 です。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- pakuti
- ベストアンサー率50% (317/631)
どれくらいのクエリーが発生しており、DBのサイズはどれくらいなのでしょう? またWebへのアクセスはどの程度?? 単純に考えるとHDDのアクセスが1番足を引っ張りやすいです 140G2本でRaid1ですか? この手のサーバーなら最低でも4本でRaid1+0にするべきです。 余裕があるならば、6~8本にするべきでしょう。 実際のボトルネックがどこなのかが不明なので何とも言えませんが 単純にApache(?)やPostgreSQLの設定チューニング(SQLの最適化では無い)だけでも それなりの改善はされそうな気がしますが。。。 また、デッドロックが発生しまくっているような状況であれば 幾らハードにお金をかけても改善はされないかと思われます、年のため。
- athanasius
- ベストアンサー率37% (361/964)
私も#1の意見に同意です。 正直、現段階でもハードウェアの交換で劇的に改善される見込みはないと考えられます。 ・ストレージの速度は、比較的高速です ・メモリーの量も少なくない ・CPUの性能は、この場合は関係がない クエリーを見直すのが当たり前だと思うんですけどね。 ご自身もデータの構造、アプリケーションに問題があると書いているくらいですから。 explainでクエリーの状態を見るだけでも、違うと思います。 あとは、memcachedとかのミドルウェアでの手段もあるし、 未だに出てくる PostgreSQL で vacuum を使わず遅いとかいう人も いるから、この辺もあるとは思うんですが。
- gtx456gtx
- ベストアンサー率18% (194/1035)
PostgreSQLのチューニングを行ったことはないですが・・・下記のような手順でチューニングすれば? 1.具体的に高速化したいSQLと目標の応答を明確にする。 2.#1のSQLを遅くしている原因を明確にする。 3.#2で判明した原因を改善し、目標の応答時間になるまで繰り返す。 一般的にはハードウェアの強化って、パラメータなどのチューニングで対応できないからハードウェアの強化なんですが、質問を読むと面倒だからと思えるのですが・・・ 単純にハードウェアの強化なら、下記のような可能性ありますが・・・現状分析なしに行うとお金を捨てるようなもんですよ 1.メモリの拡張 2.高速HDDへの交換 ・10Kを15Kへの高速回転化 ・大容量キャッシュへの交換 3.RAIDの見直し RAID1からRAID0(ZERO)へ変更し高速化