某所にてMS_Access用に PostgreSQLで稼動してる箱にpgpool投入ヽ(´ー`)ノ二重化
ということで、pgpoolを安全側に倒して入れてみたんですが、SEQUENCE多用してたり ODBCドライバの先にあるし…で pgpoolの運用は極度に安全側に倒してインストール(;´Д`)。案の定ですが「今日は重い!(゚Д゚)」「凄く時間がかかって(゚Д゚)ストレスですね」と不評バンバン(;´Д`)
ある程度予想はしてたんですが、こちらで書いてないプログラムで処理時間3秒~5秒かかってたのが7秒~10秒程度かかるようになってしまったらしく我慢できるトコできないトコの境界を超えてしまったらしく敗北。元に戻して対策を練ることに…こちらで書いてないプログラムなので流されてるSQLみてindex追加かPostgreSQL自体の最適化くらいしか手が無いかもしれず。
ODBCの向こう側でSQL生成されててコントロールしにくい箇所も多数あるシステムだし、クライアント数も40台くらいが同時アクセスと結構マトモな業務系で、サーバのloadavgも そろそろ1.00超えそうな危険水域だったので取りあえず元の状態に戻して・・・と後ろ向き(;´Д`)
SQLのチューニングを更に全体的に入れていけばloadavgも小さめに押さえることも出来て、応答時間も速くなるだろうからこの方向で進めるしかないかなあ…と考えつつ mrtg入れて通常業務時の負荷ログ取ることにして撤退(;´Д`)リベンジ予定
あと、pgpoolで接続してる2台のDBの片方のPostgreSQLのプロセスをkillall(pgpoolが接続してるので pg_ctlでは落ちない)かけたところ pgpoolがクライアントとの接続を一旦きってしまったらしく、各所でODBCドライバのエラーがバリバリ発生して苦情バンバン(;´Д`)電話が鳴りまくり。このへん設定で色々可能かもしれないので、まあコレも含めて差戻し再検討になったりして(;´Д`)敗走
もう一つの解としては、SEQとか使用している箇所についてだけSELECT時二重化…ですな。こっちだと逆に検索時の負荷分散も可能だし。ということで、まだまだこの話は続くのです(´ー`)
トラックバック時刻: 2007年03月01日 14:53