Postgresqlを限界まで使用する

Postgresqlをより過酷な条件で使用するためにはどういうことが必要かというお話

  • Postgesqlはマシン1台でしか動作しない
  • レプリケーション機能を標準で持たない
  • リストアに時間がかかる
  • 稼働率99.9%であれば,十分運用可能.予備電源系統によるマシン断に対応する.
  • Slony-Iやpgpoolなどによるレプリケーションによるバックアップ系を持たせることもできる
  • heartbeatとdbrdを用いる二重化もあるが,Postgresqlの障害の検知に問題がある
  • heartbeatによりpgpoolの二重化も行う.
  • 稼働率99.99%になると,難しい.fiberchannelなどを使った二重化,PGclusterというソフトの使用も検討すべきとのこと
  • 高価なハードを使ってもパフォーマンスがでないことが多く,同時接続も限られている
  • 複数台構成の負荷分散ができない.
  • Update=delete+Insertであるので,レスポンスが悪い
  • vaccume,reindexが必要
  • 100,000pv/dayがいいくらい.1,000,000pv/dayとなると検索中心でないと難しい
  • insertは高速
  • 大規模(16T)までOK
  • TOASTというしくみにより,1行のバイト数の制限をゆるやかに.またデータを圧縮する
  • shared_buffersをむやみに増やさないこと
  • vaccumeは多すぎるのは少なすぎることに比べれば,全然よい
  • truncateを使用するとvaccumeによる回収を必要としない