2013年10月

エロゲーのスマホ対応状況(2013-10-26)

サマリー
  • M-trixのサービス終了
  • えとわ~るリリースなし
  • ビジュアルアーツマーケット for Androidの朝フェラ彼女「あぷりちゃんver」企画で100万円集まる
  • HBOX.JPでもんむす・くえすと! 前章リリース


各サプライヤ雑感

eroge-market.com

同人アプリのカテゴリで2つだけリリースされています。
M-Designというサークルの
  • 即!3D-1 電マ・ディルド・ドリルバイブ
  • M字開脚緊縛拘束調教快進撃 即!3D-2
です。
DMMアプリ、DLsiteにも供給しています。
DLSiteでのDL数は前者が57、後者が92です。


M-trix

M-trix Marketサービス終了のお知らせが出ています。
M-trixはBlogがありますが、特にこちらは更新がありません。

DMM.R18オンラインゲームにて、アダルトソーシャル・カードバトルゲーム「エロハンターロワイヤル」をリリースしました!とのことですが、DMM.R18オンラインゲームはリリースが結構多くて、古いものはどんどん埋もれていく傾向にあります。
エロハンターロワイヤルは「おすすめ」「ランキング」カテゴリにはなく、「新着」カテゴリで2ページほど進むとでてくる状況ですので、そんなにユーザーを獲得できていないのかなあという気がします。

M-trixの巡回は終了します。


ビジュアルアーツ★MottoSP
どろっぷす!android 美少女アプリマーケット
EAPP
美少女☆クオリティ (for Android)
えとわ~る


以上のサプライヤのリリースはありませんでした。
えとわ~るは出来て間もないですが、すでにリリースがないのが心配です。


Liapp

以下の6本がリリースされています。
アメノムラクモが1本、他はsofthouse-seal系列のゲーム、ほぼDevil-sealのゲームの移植です。
Androidのアプリは、陵辱系の方が売れるのでしょうか。


萌えAPP

以下の3本がリリースされています。
Tiny Dungeonを淡々とリリースできていてえらいと思います。
また、ErogameScapeの中央値高めな-atled-を移植しています。
面白くないゲームを移植して、間違えて買ってしまって、Androidのエロゲーの移植のアプリはつまらない…と思われるより、面白いのを移植した方がいいと思います。
が、相変わらず、GooglePlayのページのインストール数が100~500なので、GooglePlay経由だけがすべてではないですが、いささか寂しい数字です。
というか、リリースされていることに気がつきさえされていないのではないかと思います。
私も、こんな記事を作っていなければ気がつきません。
FLATのオフィシャルページのUpdate historyに《atled -everlasting song-》Android版が発売されました!とありますので、これで気がつく人がいるかいないかですが、気がつく人はすでにPC版をやった方々なんじゃないかと思いました。


Gゲー

以下の2本がリリースされています。
また、おっさんしか知らないようなゲームをリリースしています。
L’Heure Bleue ~ルール・ブルー~って、今見てもCGは美しいです…ああ、水谷とおるさんですか…懐かしいですね…

両方ともインストール数が10~50となっているので、リリースされたことに気がつかれていないのか、Androidアプリとして高すぎるので見向きもされないのか、なんとなくGゲーって無料のアプリがほとんどですので、そこに1000円以上のアプリがあっても見向きもされない気がいたします。
毎度ながら移植して元とれているのかなと心配になる数字です。


ビジュアルアーツマーケット for Android

以下の3本がリリースされました。
淫堕の姫騎士ジャンヌはPC版と同時発売しています。
Android版がどの程度売れたのか興味があります。
公式twitterによると「売れてます!」とのことです。


Androidのアプリに7880円を出せる…もんなんですね。
同日発売できるということは、PC版のデータをそのままにAndroidで動かせるエンジンがあるんでしょうね。

※2013-10-30修正 
必死こいて移植しているそうです。 
Androidしか持っていない若い世代にリーチできているのか知りたいです。
  • 痴漢専用車両2 ~男嫌いの小生意気な女子校生・美優~
  • 痴漢専用車両2~抵抗できない気弱な女子校生・ほのか~
は「痴漢専用車両2 ~報復の恥辱電車~」からキャラクターごとに切り出したAndroidアプリです。

またゲームではないですが、前回に引き続き萌ドラCDのANdroidアプリ版が2つリリースされています。
ビジュアルアーツマーケットで興味深い企画が朝フェラ彼女「あぷりちゃんver」企画です。


目標ポイント120,000ptのところ、1,066,111pt集まりました。
1ptは純粋に1円と考えてOKですので、100万円ほど集まりました。
793人が寄付しています。
1人あたり平均1344円になるのですが、結構1万円寄付している方がいます。
寄付の履歴がこちらです。
朝フェラ彼女…、出来がいいんですね…

ポイントごとの特典は以下の通りです。

【200ポイント以上】
 公開時に、無料でダウンロードできるチケットをプレゼント。
【500ポイント以上】
 公開時に、先行ダウンロードできるチケットをプレゼント。
【1000ポイント以上】
 アプリ内のスペシャルサンクス欄に、貴方のお名前(ハンドルネーム)を表記します。
【10000ポイント以上】
 貴方のためだけの撮り下ろし。あぷりちゃんが、貴方の名前で朝の目覚めをサポートしてくれます。

特典を見ると200寄付するかか10000寄付するかの2択な気がするのですが、そうでもないのが興味深いところです。
たまに9000ポイント寄付とかありまして、どういう意図で9000ポイントなのか知りたいです。

実験としては成功な気がします。
無料でいいアプリを提供して、その続編を作るときに先にお金をもらうモデルはアリなんだなあと思いました。
朝フェラ彼女はゲームと違って、ユーザーさんの期待を損ねる要素がないのが勝因でしょうか。 

現時点でのあぷりちゃんのフォロワー数は2625と前回より288増でした。
前回は1ヶ月で439増でしたので、伸びが鈍化してます。


Aclassマーケット Android

以下の4本がリリースされています。
※リンクをはってみたものの、PCからアクセスするとPCのダウンロードゲームの方に飛んでしまうのでなんともです。

少女狩りとは…また懐かしいどころを移植したなあと思います。
確か初期のZEROと同じでチョウチンアンコウ的なパッケージの絵に騙される系のゲームだったと記憶しています。

こなたよりかなたまではGゲーからもリリースされていますが、Aclassマーケットは18禁で値段も安いので、内容が削られていなければ、Aclassマーケットの方がお得でしょう。
が、困ったことに、Androidアプリになって内容が削られているのかそうでないのかまったく分からないのですが…

9月までは淡々とリリースしていたのですが、10月になってリリースがなくなりました。
この先どうなるのでしょうか。 
今までの傾向からエロゲーの移植アプリだけで成り立たせるのは厳しいと思われます。

Aclassマーケットの公式twitterのフォロワー数は2013/10/23時点で244でした。先々月は15でした。
ぱっと見同業者のフォロワーが多いです。


HBOX.JP

以下の7本がリリースされました。

いつも通り淡々とリリースしています。
注目はもんむす・くえすと!が移植されたことです。
ErogameScapeではかなり高評価だったのですが、どのくらい売れたのか気になります。


にじよめ

エロゲーが原作ものとしては以下の2本がリリースされています。
いずれも有限会社アローズワークスの作成で、にじよめの「euphoria」にいい印象がないのでお勧めしません。

巨乳ファンタジーの事前登録受付中です。ゲームのネタの使い回しなのかそうでないのかとか、どの程度課金が必要なのか、有限会社アローズワークスの作成なのかが気になります。


ポケリブ

以下の6本がリリースされましたが、新規ゲーム(他のマーケットで発売されていない)は2本だけでした。

下の2本が新規ゲームでいずれもエロゲーとしては低価格のゲームです。
無料が当たり前なAndroidアプリとしては高いのですが…


TECH GIAN MARKET

以下の12本がリリースされました。
ハラマセテ人妻 祭企画 2520円 中央値 60点 データ数 20
  • えむ先生のこと スタジオカメ 1470円 中央値 70点 データ数 13
  • インチキ霊媒師 Waffle 1500円 中央値 70点 データ数 48
  • 羞恥妻痴辱電車 アパタイト 1380円 中央値 570点 データ数 6
  • 中世悪行奇譚 万事屋GEDO インスタントカメレオン 1470円 データなし
  • シキタリ スタジオカメ 1470円 中央値 50点 データ数 7
  • 操心術3 Studio 邪恋 1980円 中央値 75点 データ数 107
  • びっちんちょ スタジオカメ 2625円 中央値 68点 データ数 13
  • お父さんとわたし スタジオカメ 2625円 中央値 70点 データ数 6
  • 堕トセ… 嫌がるあの娘を媚薬で堕トセ! 1980円 中央値 65点 データ数 13
  • 悪鬼野交 もーにんぐ 1980円 中央値 60点 データ数 12
  • イキジゴク スタジオカメ 2625円 中央値 45点 データ数 6
操心術3がお買い得かと思います。
傾向として、今までは低価格ものが移植されていたのですが、今回はミドルプライス…定価が4000円程度のものが移植されています。
あんまり低価格なものを移植しても売れないことがわかったのか、ミドルプライスのものを移植して結果を未定のでしょうか。 

ランキングは
  1. 中世悪行奇譚
  2. インチキ霊媒
  3. euphoria
  4. イキジゴク
  5. 堕トセ…
  6. 操心術3
  7. 真剣出し!ロワイヤル
  8. 姉はカノジョで専属メイド
  9. 処女はお姉さまに恋してる ~2人のエルダー~
  10. 巨乳ファンタジー外伝
となっています。個人的に中世悪行奇譚が1位なのが謎なのですが、Androidに移植されたエロゲーは絵がいいと売れるのかな…


DMMアプリ

以下の13本がリリースされました。
  1. ハラマセテ人妻 祭企画 2520円 中央値 60点 データ数 20
  2. えむ先生のこと スタジオカメ 1470円 中央値 70点 データ数 13
  3. でくママ スタジオカメ 1050円 中央値 58点 データ数 2
  4. 中世悪行奇譚 万事屋GEDO インスタントカメレオン 1470円 データなし
  5. シキタリ スタジオカメ 1470円 中央値 50点 データ数 7
  6. 操心術3 Studio 邪恋 1980円 中央値 75点 データ数 107
  7. びっちんちょ スタジオカメ 2625円 中央値 68点 データ数 13
  8. お父さんとわたし スタジオカメ 2625円 中央値 70点 データ数 6
  9. 堕トセ… 嫌がるあの娘を媚薬で堕トセ! 1980円 中央値 65点 データ数 13
  10. 悪鬼野交 もーにんぐ 1980円 中央値 60点 データ数 12
  11. イキジゴク スタジオカメ 2625円 中央値 45点 データ数 6
  12. シークレットゲーム CODE:Revise FLAT 3801円 中央値 72点 データ数 272
  13. 霊甲テトラ バイオ獣に歪め膨らまされるッボテ腹と爆乳の恐怖! モニスタラッシュ 980円 データなし
ランキングは…2ヶ月前の調査とかわっていないので多分更新されていないと思います。
DMMアプリの中でも位置づけが微妙な感じになっている…というのはメニューが以下の通りで存在に気がつかないんじゃないかなと思います。
Screenshot_2013-10-26-19-54-52
 
500円のしすた~ずタッチシリーズが33までリリースされて、売れるんだなあと思います。


終わりに

いかがだったでしょうか。
ただエロゲーをAndroidに移植するだけでは駄目な雰囲気が漂っている印象を受けます。
はたから見ていて少しずつ前に向かっているのはビジュアルアーツマーケット for Androidです。
ビジュアルアーツマーケット for Androidは認知度が高いんじゃないかと思います。

Android対応ゲーム一覧

一つのマシンに複数のpgpoolを動かしたい場合のpgpoolのインストール方法について

あるマシンにすでにpgpoolが動いている状態で新しいVerのpgpoolをいれて設定して、新しいpgpoolに切り替えたい…そして何か不具合があったら切り戻したいという場合に、一つのマシンにpgpoolを複数動かしたいです。

pgpoolをソースからインストールするとデフォルトでは
/usr/local
配下にインストールされます。
具体的には、/usr/local/binには実行ファイルが、/usr/local/etcには設定ファイルが、インストールされます。

./configureするときに、--prefixのオプションをつけると、そのディレクトリ配下にpgpoolをインストールすることができます。
例えば
./configure --prefix=/usr/local/test --with-pgsql=/usr/pgsql-9.3/
のようにすると、
/usr/local/test
配下にインストールされます。
具体的には、/usr/local/test/binには実行ファイルが、/usr/local/test/etcには設定ファイルが、インストールされます。

あとは、/usr/local/test/etc配下の設定ファイルを書き換えて、
/usr/local/test/bin/pgpool
とすれば、pgpoolがもう一個起動されます。

※ソースからインストールするソフトの場合、上記のようにインストールするディレクトリを指定できる場合は、指定した方が、インストールしたソフトをアンインストールしたい場合に便利だと思いました。/usr/local/testを消せば全部消えてくれますので…

 

PHPにおいてPOSTしたデータが欠ける

ユーザーさんから「ここ半年以内に発売されたゲーム」欄から得点を入力しようとすると得点が入力できないと申告がありました。

ErogameScapeの得点入力画面は、1つの画面でなんでもかんでも入力できるのが特徴で(入力項目が多すぎてユーザーさんに敬遠されるという負の面も強いのですが…) 以下画面イメージのように、入力項目が多いです。

無題1

1つのゲームに対してinputタグが10くらい(hidden属性のものも含めて)、一月に発売されるゲームが30本あったとして、 半年分のゲームを一度に入力できる画面を作ると、inputタグが1800個必要です。

PHP5.3.9以降はphp.iniにmax_input_varsという項目があります。
こちらのパラメータの意味は以下の通りです。
入力変数 を最大で何個まで受け付けるかを指定します (この制限は、スーパーグローバル $_GET、$_POST そして $_COOKIE にそれぞれ個別に適用されます)。 このディレクティブを使うと、ハッシュの衝突を悪用したサービス不能攻撃を受ける可能性を軽減できます。 このディレクティブで設定した数を超える入力変数があった場合は E_WARNING が発生し、 それ以降の入力変数はリクエストから削除されます。
max_input_varsのデフォルトの値は1000で、デフォルトのまま運用していたので、この制限に引っかかってしまっていました。

apacheのerrorログには以下のように記録されます。

[Sun Oct 13 20:33:22 2013] [error] [client 192.168.0.12] PHP Warning:  Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0, referer: http://192.168.0.2/~ap2/ero/toukei_kaiseki/contents_tokuten_ichiran_default.php?mode=half_a_year_released

※ちなみにローカルのテスト環境では問題なかったのですが…理由はローカルのテスト環境のPHPのverが低かったから…が理由でした。

※他の理由でPOSTが欠けることがあります。HTTPのPOSTで送信できるデータのサイズ at softelメモの文書が参考になるかなと思います。

max_input_varsは10000くらいあればいいかな?と思って10000に引き上げたのですが、「ア行」のゲームのデータをまとめて入力する画面は10000では足りず、100000にしてOKとなりました。

私はまとめて入力できる画面が好きなのですが、max_input_varsが追加された理由が「このディレクティブを使うと、ハッシュの衝突を悪用したサービス不能攻撃を受ける可能性を軽減できます。」ですので、うーむ…、さすがに「ア行」を全部表示して入力できるような画面は廃止すべきなのかな…思いました。

2013年9月9日から2013年9月15日に発生した障害について(続き)

この文書は2013年9月9日から2013年9月15日に発生した障害についての続きです。

現象が再現したので、自分の想定があっているかのコメントをもらえることを期待して記録します。


現象再現時のログ

ロック解除待ちの状態のクエリは以下の通りです。
SELECT l.locktype, c.relname, l.pid, l.mode, a.current_query,
         (current_timestamp - xact_start)::interval(3) AS duration
   FROM   pg_locks l LEFT OUTER JOIN pg_stat_activity a
          ON l.pid = a. procpid
          LEFT OUTER JOIN pg_class c ON l.relation = c.oid
   WHERE  NOT l.granted ORDER BY l.pid
2013/10/14 23:01:33
 locktype |        relname         |  pid  |         mode          |                          current_query                          |   duration    
----------+------------------------+-------+-----------------------+-----------------------------------------------------------------+---------------
 relation | userreview_display_log |   727 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:35.709
 relation | userreview_display_log |   735 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:37.641
 relation | userreview_display_log |   767 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:40.457
 relation | userreview_display_log |   813 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:41.588
 relation | userreview_display_log |   841 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:29.836
 relation | userreview_display_log |   973 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:53.873
 relation | userreview_display_log |  1068 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:09.035
 relation | userreview_display_log |  1084 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:21.565
 relation | userreview_display_log |  1972 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:36.681
 relation | userreview_display_log |  2135 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:03.202
 relation | userreview_display_log |  2189 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:36.164
 relation | userreview_display_log |  2234 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:55.531
 relation | userreview_display_log |  2916 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | -00:00:05.685
 relation | userreview_display_log |  2982 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:21.07
 relation | userreview_display_log |  3120 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:40.184
 relation | userreview_display_log |  3155 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:08.594
 relation | userreview_display_log |  3305 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:20.286
 relation | userreview_display_log |  3328 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:31.648
 relation | userreview_display_log |  3367 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:56.553
 relation | userreview_display_log |  4039 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:20.503
 relation | userreview_display_log |  4068 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:44.787
 relation | userreview_display_log |  4099 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:42.992
 relation | userreview_display_log |  4142 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:55.519
 relation | userreview_display_log |  4269 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:41.038
 relation | userreview_display_log |  4304 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:10.638
 relation | userreview_display_log |  5079 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:40.237
 relation | userreview_display_log |  5176 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:20.161
 relation | userreview_display_log |  5188 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:50.947
 relation | userreview_display_log |  5222 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:44.545
 relation | userreview_display_log |  5252 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:43.97
 relation | userreview_display_log |  5261 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:01.49
 relation | userreview_display_log |  5290 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:34.926
 relation | userreview_display_log |  5377 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:37.072
 relation | userreview_display_log |  5381 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:40.194
 relation | userreview_display_log |  5390 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:40.269
 relation | userreview_display_log |  5407 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:27.328
 relation | userreview_display_log |  5416 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:24.409
 relation | userreview_display_log |  5431 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:24.352
 relation | userreview_display_log |  5514 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:43.222
 relation | userreview_display_log |  6107 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:38.747
 relation | userreview_display_log |  6146 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:43.289
 relation | userreview_display_log |  6170 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:16.195
 relation | userreview_display_log |  6183 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:17.921
 relation | userreview_display_log |  6240 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:47.813
 relation | userreview_display_log |  6255 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:08.762
 relation | userreview_display_log |  6260 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:09.733
 relation | userreview_display_log |  6274 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:27.178
 relation | userreview_display_log |  6409 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:29.407
 relation | userreview_display_log |  6418 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:28.043
 relation | userreview_display_log |  6419 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:27.825
 relation | userreview_display_log |  6440 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:16.079
 relation | userreview_display_log |  6464 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:02.546
 relation | userreview_display_log |  6469 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:58.385
 relation | userreview_display_log |  6494 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:52.121
 relation | userreview_display_log |  6515 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:51
 relation | userreview_display_log |  6537 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:36.445
 relation | userreview_display_log |  6565 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:41.827
 relation | userreview_display_log |  6579 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:31.322
 relation | userreview_display_log |  6583 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:22.993
 relation | userreview_display_log |  6589 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:20.166
 relation | userreview_display_log |  6591 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:20.069
 relation | userreview_display_log |  6594 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:18.73
 relation | userreview_display_log |  7259 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:46.788
 relation | userreview_display_log |  7310 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:45.446
 relation | userreview_display_log |  7331 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:45.149
 relation | userreview_display_log |  7512 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:34.891
 relation | userreview_display_log |  7560 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:32.627
 relation | userreview_display_log |  7660 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:27.847
 relation | userreview_display_log |  7661 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:27.812
 relation | userreview_display_log |  7673 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:26.521
 relation | userreview_display_log |  7680 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:25.774
 relation | userreview_display_log |  7724 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:24.545
 relation | userreview_display_log |  7727 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:24.262
 relation | userreview_display_log |  7736 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:23.249
 relation | userreview_display_log |  7739 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:22.855
 relation | userreview_display_log |  7799 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:17.23
 relation | userreview_display_log |  7814 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:09.669
 relation | userreview_display_log |  7821 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:01.478
 relation | userreview_display_log |  7826 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:05.444
 relation | userreview_display_log | 25075 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:12.333
 relation | userreview_display_log | 27452 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:07.849
 relation | userreview_display_log | 28747 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:28.673
 relation | userreview_display_log | 29664 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:52.836
 relation | userreview_display_log | 29797 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:27.56
 relation | userreview_display_log | 30060 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:21.862
 relation | userreview_display_log | 30194 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:12.208
 relation | userreview_display_log | 30721 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:32.445
 relation | userreview_display_log | 31121 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:22.06
 relation | userreview_display_log | 32022 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:59.188
 relation | userreview_display_log | 32023 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:37.896
 relation | userreview_display_log | 32078 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:50.035
 relation | userreview_display_log | 32137 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:33.129
 relation | userreview_display_log | 32232 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:57.317
 relation | userreview_display_log | 32247 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:24.88
 relation | userreview_display_log | 32299 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:02:36.863
 relation | userreview_display_log | 32311 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:10.166
 relation | userreview_display_log | 32411 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:00:14.999
 relation | userreview_display_log | 32415 | ShareRowExclusiveLock | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE | 00:03:39.84
(98 行)
 
何らかのテーブルをロック しているクエリの一覧の抜粋は以下の通りです。
SELECT * FROM ( SELECT pid
                  FROM pg_locks group by pid
              ) l
            , pg_stat_activity a
        WHERE l.pid = a.procpid
        ORDER BY query_start; 
  pid  | datid | datname | procpid | usesysid | usename | application_name | client_addr  | client_port |         backend_start         |          xact_start           |          query_start          | waiting |                                                                                                                                                                                                                 current_query                                                                                                                                                                                                                  
-------+-------+---------+---------+----------+---------+------------------+--------------+-------------+-------------------------------+-------------------------------+-------------------------------+---------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  1053 | 16386 | ap2     |    1053 |    16390 | nobody  |                  | 192.168.0.10 |       52603 | 2013-10-14 22:34:02.553588+09 | 2013-10-14 22:34:25.219974+09 | 2013-10-14 22:34:25.219974+09 | f       | SELECT DISTINCT ON (povgroups.game, povlist.system_group) povgroups.game, povlist.system_group, povlist.system_title, count(povgroups.pov) AS count FROM povgroups, povlist, gamelist WHERE gamelist.median >= 80 AND povgroups.pov = povlist.id AND povlist.system_group IN ('傾向', 'ジャンル') GROUP BY povgroups.game, povlist.system_group, povlist.system_title ORDER BY povgroups.game, povlist.system_group, count(povgroups.pov) DESC
  6240 | 16386 | ap2     |    6240 |    16388 | ap3     |                  | 192.168.0.10 |       51833 | 2013-10-14 22:56:54.96699+09  | 2013-10-14 22:57:46.352629+09 | 2013-10-14 22:57:46.354755+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  4068 | 16386 | ap2     |    4068 |    16388 | ap3     |                  | 192.168.0.10 |       38148 | 2013-10-14 22:45:56.206301+09 | 2013-10-14 22:57:49.378277+09 | 2013-10-14 22:57:49.378769+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5514 | 16386 | ap2     |    5514 |    16388 | ap3     |                  | 192.168.0.10 |       44341 | 2013-10-14 22:55:07.122952+09 | 2013-10-14 22:57:50.942674+09 | 2013-10-14 22:57:50.943146+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32415 | 16386 | ap2     |   32415 |    16388 | ap3     |                  | 192.168.0.10 |       36832 | 2013-10-14 22:29:19.61654+09  | 2013-10-14 22:57:54.324646+09 | 2013-10-14 22:57:54.325124+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6107 | 16386 | ap2     |    6107 |    16388 | ap3     |                  | 192.168.0.10 |       46900 | 2013-10-14 22:55:43.771562+09 | 2013-10-14 22:57:55.418614+09 | 2013-10-14 22:57:55.419106+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32023 | 16386 | ap2     |   32023 |    16388 | ap3     |                  | 192.168.0.10 |       51165 | 2013-10-14 22:25:49.572992+09 | 2013-10-14 22:57:56.269301+09 | 2013-10-14 22:57:56.271335+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5377 | 16386 | ap2     |    5377 |    16388 | ap3     |                  | 192.168.0.10 |       41555 | 2013-10-14 22:54:27.173069+09 | 2013-10-14 22:57:57.093636+09 | 2013-10-14 22:57:57.09429+09  | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32137 | 16386 | ap2     |   32137 |    16388 | ap3     |                  | 192.168.0.10 |       54392 | 2013-10-14 22:26:40.822437+09 | 2013-10-14 22:58:01.036153+09 | 2013-10-14 22:58:01.036823+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6409 | 16386 | ap2     |    6409 |    16388 | ap3     |                  | 192.168.0.10 |       56253 | 2013-10-14 22:58:04.748534+09 | 2013-10-14 22:58:04.758485+09 | 2013-10-14 22:58:04.760146+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 28747 | 16386 | ap2     |   28747 |    16388 | ap3     |                  | 192.168.0.10 |       60953 | 2013-10-14 22:13:20.361285+09 | 2013-10-14 22:58:05.492594+09 | 2013-10-14 22:58:05.493113+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6418 | 16386 | ap2     |    6418 |    16388 | ap3     |                  | 192.168.0.10 |       56291 | 2013-10-14 22:58:06.107495+09 | 2013-10-14 22:58:06.122538+09 | 2013-10-14 22:58:06.12437+09  | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6419 | 16386 | ap2     |    6419 |    16388 | ap3     |                  | 192.168.0.10 |       56311 | 2013-10-14 22:58:06.327874+09 | 2013-10-14 22:58:06.340217+09 | 2013-10-14 22:58:06.341937+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 29797 | 16386 | ap2     |   29797 |    16388 | ap3     |                  | 192.168.0.10 |       46119 | 2013-10-14 22:16:48.231268+09 | 2013-10-14 22:58:06.605009+09 | 2013-10-14 22:58:06.605572+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6274 | 16386 | ap2     |    6274 |    16388 | ap3     |                  | 192.168.0.10 |       54055 | 2013-10-14 22:57:23.958497+09 | 2013-10-14 22:58:06.986991+09 | 2013-10-14 22:58:06.987467+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32247 | 16386 | ap2     |   32247 |    16388 | ap3     |                  | 192.168.0.10 |       57646 | 2013-10-14 22:27:28.798974+09 | 2013-10-14 22:58:09.285088+09 | 2013-10-14 22:58:09.285877+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5416 | 16386 | ap2     |    5416 |    16388 | ap3     |                  | 192.168.0.10 |       43422 | 2013-10-14 22:54:53.72344+09  | 2013-10-14 22:58:09.75662+09  | 2013-10-14 22:58:09.757256+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5431 | 16386 | ap2     |    5431 |    16388 | ap3     |                  | 192.168.0.10 |       43926 | 2013-10-14 22:55:01.594243+09 | 2013-10-14 22:58:09.812887+09 | 2013-10-14 22:58:09.813553+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 31121 | 16386 | ap2     |   31121 |    16388 | ap3     |                  | 192.168.0.10 |       41573 | 2013-10-14 22:23:10.812257+09 | 2013-10-14 22:58:12.105214+09 | 2013-10-14 22:58:12.10569+09  | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  1084 | 16386 | ap2     |    1084 |    16388 | ap3     |                  | 192.168.0.10 |       53415 | 2013-10-14 22:34:20.597873+09 | 2013-10-14 22:58:12.599787+09 | 2013-10-14 22:58:12.600491+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  2982 | 16386 | ap2     |    2982 |    16388 | ap3     |                  | 192.168.0.10 |       48196 | 2013-10-14 22:40:58.124567+09 | 2013-10-14 22:58:13.094844+09 | 2013-10-14 22:58:13.095468+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  4039 | 16386 | ap2     |    4039 |    16388 | ap3     |                  | 192.168.0.10 |       36489 | 2013-10-14 22:45:29.013967+09 | 2013-10-14 22:58:13.66203+09  | 2013-10-14 22:58:13.662504+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6183 | 16386 | ap2     |    6183 |    16388 | ap3     |                  | 192.168.0.10 |       49668 | 2013-10-14 22:56:21.169367+09 | 2013-10-14 22:58:16.243869+09 | 2013-10-14 22:58:16.244392+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6170 | 16386 | ap2     |    6170 |    16388 | ap3     |                  | 192.168.0.10 |       48855 | 2013-10-14 22:56:09.755635+09 | 2013-10-14 22:58:17.970177+09 | 2013-10-14 22:58:17.970704+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6440 | 16386 | ap2     |    6440 |    16388 | ap3     |                  | 192.168.0.10 |       56835 | 2013-10-14 22:58:18.073064+09 | 2013-10-14 22:58:18.086587+09 | 2013-10-14 22:58:18.088276+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 25075 | 16386 | ap2     |   25075 |    16388 | ap3     |                  | 192.168.0.10 |       59939 | 2013-10-14 21:58:57.00914+09  | 2013-10-14 22:58:21.831655+09 | 2013-10-14 22:58:21.832382+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 30194 | 16386 | ap2     |   30194 |    16388 | ap3     |                  | 192.168.0.10 |       57996 | 2013-10-14 22:20:00.78748+09  | 2013-10-14 22:58:21.957063+09 | 2013-10-14 22:58:21.957648+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  4304 | 16386 | ap2     |    4304 |    16388 | ap3     |                  | 192.168.0.10 |       49484 | 2013-10-14 22:49:16.386784+09 | 2013-10-14 22:58:23.527397+09 | 2013-10-14 22:58:23.529243+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32311 | 16386 | ap2     |   32311 |    16388 | ap3     |                  | 192.168.0.10 |       33329 | 2013-10-14 22:28:20.246617+09 | 2013-10-14 22:58:23.998675+09 | 2013-10-14 22:58:23.999461+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6260 | 16386 | ap2     |    6260 |    16388 | ap3     |                  | 192.168.0.10 |       53390 | 2013-10-14 22:57:14.096916+09 | 2013-10-14 22:58:24.432466+09 | 2013-10-14 22:58:24.432959+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  1068 | 16386 | ap2     |    1068 |    16388 | ap3     |                  | 192.168.0.10 |       52883 | 2013-10-14 22:34:09.063112+09 | 2013-10-14 22:58:25.130505+09 | 2013-10-14 22:58:25.131008+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6255 | 16386 | ap2     |    6255 |    16388 | ap3     |                  | 192.168.0.10 |       53179 | 2013-10-14 22:57:12.397941+09 | 2013-10-14 22:58:25.403157+09 | 2013-10-14 22:58:25.403636+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 27452 | 16386 | ap2     |   27452 |    16388 | ap3     |                  | 192.168.0.10 |       37626 | 2013-10-14 22:07:49.12849+09  | 2013-10-14 22:58:26.315688+09 | 2013-10-14 22:58:26.316276+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6464 | 16386 | ap2     |    6464 |    16388 | ap3     |                  | 192.168.0.10 |       57445 | 2013-10-14 22:58:31.032254+09 | 2013-10-14 22:58:31.619425+09 | 2013-10-14 22:58:31.621232+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32022 | 16386 | ap2     |   32022 |    16388 | ap3     |                  | 192.168.0.10 |       51137 | 2013-10-14 22:25:48.566785+09 | 2013-10-14 22:58:34.976959+09 | 2013-10-14 22:58:34.977531+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6469 | 16386 | ap2     |    6469 |    16388 | ap3     |                  | 192.168.0.10 |       57662 | 2013-10-14 22:58:35.766965+09 | 2013-10-14 22:58:35.779839+09 | 2013-10-14 22:58:35.781399+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32232 | 16386 | ap2     |   32232 |    16388 | ap3     |                  | 192.168.0.10 |       57460 | 2013-10-14 22:27:25.645294+09 | 2013-10-14 22:58:36.848471+09 | 2013-10-14 22:58:36.849155+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  3367 | 16386 | ap2     |    3367 |    16388 | ap3     |                  | 192.168.0.10 |       33193 | 2013-10-14 22:44:38.014331+09 | 2013-10-14 22:58:37.61206+09  | 2013-10-14 22:58:37.612627+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  2234 | 16386 | ap2     |    2234 |    16388 | ap3     |                  | 192.168.0.10 |       41740 | 2013-10-14 22:39:09.259493+09 | 2013-10-14 22:58:38.634428+09 | 2013-10-14 22:58:38.634928+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  4142 | 16386 | ap2     |    4142 |    16388 | ap3     |                  | 192.168.0.10 |       42475 | 2013-10-14 22:47:11.232382+09 | 2013-10-14 22:58:38.645906+09 | 2013-10-14 22:58:38.646494+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
   973 | 16386 | ap2     |     973 |    16388 | ap3     |                  | 192.168.0.10 |       49231 | 2013-10-14 22:33:00.717233+09 | 2013-10-14 22:58:40.29252+09  | 2013-10-14 22:58:40.293261+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 29664 | 16386 | ap2     |   29664 |    16388 | ap3     |                  | 192.168.0.10 |       42903 | 2013-10-14 22:16:00.390591+09 | 2013-10-14 22:58:41.329408+09 | 2013-10-14 22:58:41.330064+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6494 | 16386 | ap2     |    6494 |    16388 | ap3     |                  | 192.168.0.10 |       57959 | 2013-10-14 22:58:42.030171+09 | 2013-10-14 22:58:42.044621+09 | 2013-10-14 22:58:42.046735+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6515 | 16386 | ap2     |    6515 |    16388 | ap3     |                  | 192.168.0.10 |       58025 | 2013-10-14 22:58:43.131735+09 | 2013-10-14 22:58:43.16526+09  | 2013-10-14 22:58:43.168277+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32078 | 16386 | ap2     |   32078 |    16388 | ap3     |                  | 192.168.0.10 |       52895 | 2013-10-14 22:26:18.138652+09 | 2013-10-14 22:58:44.130463+09 | 2013-10-14 22:58:44.130962+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5222 | 16386 | ap2     |    5222 |    16388 | ap3     |                  | 192.168.0.10 |       35207 | 2013-10-14 22:52:46.683942+09 | 2013-10-14 22:58:49.620076+09 | 2013-10-14 22:58:49.620777+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6146 | 16386 | ap2     |    6146 |    16388 | ap3     |                  | 192.168.0.10 |       48351 | 2013-10-14 22:56:03.234167+09 | 2013-10-14 22:58:50.875798+09 | 2013-10-14 22:58:50.877853+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  4099 | 16386 | ap2     |    4099 |    16388 | ap3     |                  | 192.168.0.10 |       39293 | 2013-10-14 22:46:19.25302+09  | 2013-10-14 22:58:51.173349+09 | 2013-10-14 22:58:51.174066+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6565 | 16386 | ap2     |    6565 |    16388 | ap3     |                  | 192.168.0.10 |       58340 | 2013-10-14 22:58:52.315157+09 | 2013-10-14 22:58:52.338545+09 | 2013-10-14 22:58:52.340956+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
   813 | 16386 | ap2     |     813 |    16388 | ap3     |                  | 192.168.0.10 |       45953 | 2013-10-14 22:31:55.821467+09 | 2013-10-14 22:58:52.576682+09 | 2013-10-14 22:58:52.577416+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  4269 | 16386 | ap2     |    4269 |    16388 | ap3     |                  | 192.168.0.10 |       48260 | 2013-10-14 22:48:51.26448+09  | 2013-10-14 22:58:53.126676+09 | 2013-10-14 22:58:53.127381+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
   767 | 16386 | ap2     |     767 |    16388 | ap3     |                  | 192.168.0.10 |       43970 | 2013-10-14 22:31:21.586331+09 | 2013-10-14 22:58:53.70826+09  | 2013-10-14 22:58:53.709031+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5390 | 16386 | ap2     |    5390 |    16388 | ap3     |                  | 192.168.0.10 |       42257 | 2013-10-14 22:54:38.804996+09 | 2013-10-14 22:58:53.89572+09  | 2013-10-14 22:58:53.89656+09  | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5079 | 16386 | ap2     |    5079 |    16388 | ap3     |                  | 192.168.0.10 |       57443 | 2013-10-14 22:51:08.843638+09 | 2013-10-14 22:58:53.927719+09 | 2013-10-14 22:58:53.928401+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5381 | 16386 | ap2     |    5381 |    16388 | ap3     |                  | 192.168.0.10 |       41791 | 2013-10-14 22:54:29.806088+09 | 2013-10-14 22:58:53.971371+09 | 2013-10-14 22:58:53.972002+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
   735 | 16386 | ap2     |     735 |    16388 | ap3     |                  | 192.168.0.10 |       42689 | 2013-10-14 22:30:57.442602+09 | 2013-10-14 22:58:56.524504+09 | 2013-10-14 22:58:56.525019+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 32299 | 16386 | ap2     |   32299 |    16388 | ap3     |                  | 192.168.0.10 |       32842 | 2013-10-14 22:28:11.23806+09  | 2013-10-14 22:58:57.302561+09 | 2013-10-14 22:58:57.303042+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  1972 | 16386 | ap2     |    1972 |    16388 | ap3     |                  | 192.168.0.10 |       33023 | 2013-10-14 22:36:40.548914+09 | 2013-10-14 22:58:57.484051+09 | 2013-10-14 22:58:57.485205+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6537 | 16386 | ap2     |    6537 |    16388 | ap3     |                  | 192.168.0.10 |       58078 | 2013-10-14 22:58:44.278245+09 | 2013-10-14 22:58:57.720632+09 | 2013-10-14 22:58:57.722393+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  2189 | 16386 | ap2     |    2189 |    16388 | ap3     |                  | 192.168.0.10 |       40949 | 2013-10-14 22:38:54.473697+09 | 2013-10-14 22:58:58.000865+09 | 2013-10-14 22:58:58.001475+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5290 | 16386 | ap2     |    5290 |    16388 | ap3     |                  | 192.168.0.10 |       38616 | 2013-10-14 22:53:41.373151+09 | 2013-10-14 22:58:59.239016+09 | 2013-10-14 22:58:59.241039+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 30721 | 16386 | ap2     |   30721 |    16388 | ap3     |                  | 192.168.0.10 |       58438 | 2013-10-14 22:20:07.672463+09 | 2013-10-14 22:59:01.720245+09 | 2013-10-14 22:59:01.721278+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6579 | 16386 | ap2     |    6579 |    16388 | ap3     |                  | 192.168.0.10 |       58723 | 2013-10-14 22:59:02.827467+09 | 2013-10-14 22:59:02.842887+09 | 2013-10-14 22:59:02.844867+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5407 | 16386 | ap2     |    5407 |    16388 | ap3     |                  | 192.168.0.10 |       43029 | 2013-10-14 22:54:48.647886+09 | 2013-10-14 22:59:06.837497+09 | 2013-10-14 22:59:06.838141+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6583 | 16386 | ap2     |    6583 |    16388 | ap3     |                  | 192.168.0.10 |       59035 | 2013-10-14 22:59:11.10654+09  | 2013-10-14 22:59:11.171647+09 | 2013-10-14 22:59:11.173401+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  3305 | 16386 | ap2     |    3305 |    16388 | ap3     |                  | 192.168.0.10 |       58312 | 2013-10-14 22:43:49.830214+09 | 2013-10-14 22:59:13.879135+09 | 2013-10-14 22:59:13.879769+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6589 | 16386 | ap2     |    6589 |    16388 | ap3     |                  | 192.168.0.10 |       59132 | 2013-10-14 22:59:13.983435+09 | 2013-10-14 22:59:13.998694+09 | 2013-10-14 22:59:14.00051+09  | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6591 | 16386 | ap2     |    6591 |    16388 | ap3     |                  | 192.168.0.10 |       59150 | 2013-10-14 22:59:14.083242+09 | 2013-10-14 22:59:14.096504+09 | 2013-10-14 22:59:14.098721+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6594 | 16386 | ap2     |    6594 |    16388 | ap3     |                  | 192.168.0.10 |       59219 | 2013-10-14 22:59:15.2832+09   | 2013-10-14 22:59:15.435563+09 | 2013-10-14 22:59:15.437394+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  6254 | 16386 | ap2     |    6254 |    16388 | ap3     |                  | 192.168.0.10 |       53163 | 2013-10-14 22:57:12.247362+09 | 2013-10-14 22:57:43.994545+09 | 2013-10-14 23:00:39.03541+09  | f       | INSERT INTO "userreview_display_log"("game", "uid", "ip", "agent", "referer", "timestamp") VALUES ('17147','kabugiko','e685755540d884b469a097167a19579b','Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)','http://erogamescape.dyndns.org/~ap2/ero/toukei_kaiseki/game.php?game=17147','2013-10-14 22:57:43.994545+09')
  5188 | 16386 | ap2     |    5188 |    16388 | ap3     |                  | 192.168.0.10 |       33324 | 2013-10-14 22:52:18.950382+09 | 2013-10-14 23:00:43.218332+09 | 2013-10-14 23:00:43.219035+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7259 | 16386 | ap2     |    7259 |    16388 | ap3     |                  | 192.168.0.10 |       60323 | 2013-10-14 23:00:47.218423+09 | 2013-10-14 23:00:47.376782+09 | 2013-10-14 23:00:47.390744+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7310 | 16386 | ap2     |    7310 |    16388 | ap3     |                  | 192.168.0.10 |       60417 | 2013-10-14 23:00:48.569063+09 | 2013-10-14 23:00:48.719507+09 | 2013-10-14 23:00:48.789653+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7331 | 16386 | ap2     |    7331 |    16388 | ap3     |                  | 192.168.0.10 |       60443 | 2013-10-14 23:00:48.817855+09 | 2013-10-14 23:00:49.016319+09 | 2013-10-14 23:00:49.024202+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5252 | 16386 | ap2     |    5252 |    16388 | ap3     |                  | 192.168.0.10 |       36790 | 2013-10-14 22:53:12.055595+09 | 2013-10-14 23:00:50.195247+09 | 2013-10-14 23:00:50.196056+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  3120 | 16386 | ap2     |    3120 |    16388 | ap3     |                  | 192.168.0.10 |       52376 | 2013-10-14 22:42:11.229133+09 | 2013-10-14 23:00:53.981465+09 | 2013-10-14 23:00:53.98395+09  | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
   727 | 16386 | ap2     |     727 |    16388 | ap3     |                  | 192.168.0.10 |       42246 | 2013-10-14 22:30:49.793865+09 | 2013-10-14 23:00:58.456261+09 | 2013-10-14 23:00:58.456952+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7512 | 16386 | ap2     |    7512 |    16388 | ap3     |                  | 192.168.0.10 |       60991 | 2013-10-14 23:00:59.239053+09 | 2013-10-14 23:00:59.274209+09 | 2013-10-14 23:00:59.280518+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7560 | 16386 | ap2     |    7560 |    16388 | ap3     |                  | 192.168.0.10 |       32920 | 2013-10-14 23:01:01.412488+09 | 2013-10-14 23:01:01.538511+09 | 2013-10-14 23:01:01.562022+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  3328 | 16386 | ap2     |    3328 |    16388 | ap3     |                  | 192.168.0.10 |       59018 | 2013-10-14 22:44:01.752491+09 | 2013-10-14 23:01:02.51731+09 | 2013-10-14 23:01:02.519221+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
   841 | 16386 | ap2     |     841 |    16388 | ap3     |                  | 192.168.0.10 |       46300 | 2013-10-14 22:32:02.884148+09 | 2013-10-14 23:01:04.328939+09 | 2013-10-14 23:01:04.329601+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7660 | 16386 | ap2     |    7660 |    16388 | ap3     |                  | 192.168.0.10 |       33164 | 2013-10-14 23:01:06.291307+09 | 2013-10-14 23:01:06.318246+09 | 2013-10-14 23:01:06.325056+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7661 | 16386 | ap2     |    7661 |    16388 | ap3     |                  | 192.168.0.10 |       33168 | 2013-10-14 23:01:06.297305+09 | 2013-10-14 23:01:06.353177+09 | 2013-10-14 23:01:06.358826+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7673 | 16386 | ap2     |    7673 |    16388 | ap3     |                  | 192.168.0.10 |       33223 | 2013-10-14 23:01:07.630712+09 | 2013-10-14 23:01:07.644601+09 | 2013-10-14 23:01:07.654124+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7680 | 16386 | ap2     |    7680 |    16388 | ap3     |                  | 192.168.0.10 |       33251 | 2013-10-14 23:01:08.377194+09 | 2013-10-14 23:01:08.391436+09 | 2013-10-14 23:01:08.393231+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7724 | 16386 | ap2     |    7724 |    16388 | ap3     |                  | 192.168.0.10 |       33277 | 2013-10-14 23:01:09.60526+09  | 2013-10-14 23:01:09.619946+09 | 2013-10-14 23:01:09.621889+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7727 | 16386 | ap2     |    7727 |    16388 | ap3     |                  | 192.168.0.10 |       33282 | 2013-10-14 23:01:09.887133+09 | 2013-10-14 23:01:09.902696+09 | 2013-10-14 23:01:09.904614+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7736 | 16386 | ap2     |    7736 |    16388 | ap3     |                  | 192.168.0.10 |       33309 | 2013-10-14 23:01:10.892136+09 | 2013-10-14 23:01:10.916172+09 | 2013-10-14 23:01:10.919248+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  7739 | 16386 | ap2     |    7739 |    16388 | ap3     |                  | 192.168.0.10 |       33322 | 2013-10-14 23:01:11.285771+09 | 2013-10-14 23:01:11.310435+09 | 2013-10-14 23:01:11.312774+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 30060 | 16386 | ap2     |   30060 |    16388 | ap3     |                  | 192.168.0.10 |       53997 | 2013-10-14 22:18:55.00588+09  | 2013-10-14 23:01:12.303238+09 | 2013-10-14 23:01:12.303762+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
  5176 | 16386 | ap2     |    5176 |    16388 | ap3     |                  | 192.168.0.10 |       60834 | 2013-10-14 22:52:04.356903+09 | 2013-10-14 23:01:14.003891+09 | 2013-10-14 23:01:14.005589+09 | t       | LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
 
postgresqlの出力したログは以下の通りです。
,,,11731,2013-10-14 22:57:59.794 JST,01000,WARNING:  pgstat wait timeout
,,,6398,2013-10-14 22:58:04.841 JST,01000,WARNING:  pgstat wait timeout
,,,11731,2013-10-14 22:58:59.802 JST,01000,WARNING:  pgstat wait timeout
,,,6592,2013-10-14 22:59:20.471 JST,01000,WARNING:  pgstat wait timeout
,,,11731,2013-10-14 22:59:59.813 JST,01000,WARNING:  pgstat wait timeout

強制的にロック待ち状態となっているSQLを切断した際には以下のログを大量に出力しました。
ap3,ap2,192.168.0.10(33168),7661,2013-10-14 23:04:19.171 JST,00000,LOG:  sending cancel to blocking autovacuum PID 8348
ap3,ap2,192.168.0.10(33168),7661,2013-10-14 23:04:19.171 JST,00000,DETAIL:  Process 7661 waits for ShareRowExclusiveLock on relation 17361 of database 16386.
ap3,ap2,192.168.0.10(33168),7661,2013-10-14 23:04:19.171 JST,00000,STATEMENT:  LOCK TABLE "userreview_display_log" IN SHARE ROW EXCLUSIVE MODE
,,,8348,2013-10-14 23:04:19.208 JST,57014,ERROR:  canceling autovacuum task
,,,8348,2013-10-14 23:04:19.208 JST,57014,CONTEXT:  automatic analyze of table "ap2.public.userreview_display_log"

また、当時、I/O waitが著しく増大していました。
無題1

考察

pid 1053で実行されていたSQL

SELECT DISTINCT ON (povgroups.game, povlist.system_group) povgroups.game, povlist.system_group, povlist.system_title, count(povgroups.pov) AS count FROM povgroups, povlist, gamelist WHERE gamelist.median >= 80 AND povgroups.pov = povlist.id AND povlist.system_group IN ('傾向', 'ジャンル') GROUP BY povgroups.game, povlist.system_group, povlist.system_title ORDER BY povgroups.game, povlist.system_group, count(povgroups.pov) DESC

は、EXPLAINするとcost=71223460.62..71224672.13です。
query_startが2013-10-14 22:34:25で、23:00の時点でも実行中の超スロークエリでした。

この超スロークエリを実行するため、スワップが発生し、I/O waitが著しく増大しました。
22:57頃、 Postgresqlのログにpgstat wait timeoutが出ていることからPostgreSQLへのアクセスが遅延するという事態が起こっています。

長文感想の閲覧ログはuserreview_display_logテーブルに保存されるのですが、INSERT INTO "userreview_display_log"~のSQLが、トランザクション開始時刻(xact_start)が2013-10-14 22:57:43にも関わらず、実際にクエリの実行が開始された時刻(query_start)が2013-10-14 23:00:39です。
トランザクションが開始されてからINSERTが実行されるまで3分もかかっています。

長文感想はとてもよく閲覧されるので、INSERT INTO "userreview_display_log"~のSQLは激しく実行されます。INSERT INTO "userreview_display_log"~を実行するため、素のままのpostgresqlや現在の最近のpgpoolでは(多分)テーブルにROW EXCLUSIVEのロックが入りますが、ErogameScapeで使っているpgpoolのVerはSHARE ROW EXCLUSIVEのロックが入ります

Postgresqlのログから当時userreview_display_logにAUTO VACUUMが動いていたと想定されます。(この部分のログがないのと、そもそもどうログをとればいいのか分からないです。)
VACUUMが動くと、テーブルにSHARE UPDATE EXCLUSIVEが入ります。

userreview_display_logへのVACUUMは通常ですと1秒程度で終了するのですが、恐らく当時はすごい時間がかかっていて、SHARE UPDATE EXCLUSIVEがなかなか外れなかったのかと思います。
そこに、SHARE UPDATE EXCLUSIVEと競合するSHARE ROW EXCLUSIVE MODEが重なって待ちが待ちをうんでいたと推測します。


対策

以上から対策としては2点
  1. pgpoolのVerをあげる
  2. スロークエリを発見したら止める
になるかと思います。

1.については、新しいVerのpgpoolで設定の検証を実施しております。
折角だから、ついでにPostgreSQLを9.3にあげようと思って、PostgreSQL9.3と最近のpgpoolの組み合わせで検証を実施しており、とりあえずpgpool関連の設定は確定できました。
一つのサーバーに旧新混在可能ですので、設定を商用…じゃないか、えーと、運用?の設定にして、一度どこかでサービスを止めてデータを新しいPostgreSQLに移行したいと思っています。
※Index Only Scanが使えるのでSQLによっては早くなると思います。

2.については対策済みです。
具体的には5分SQLが実行され続けたらやばいだろうということで、 
SELECT pg_terminate_backend(procpid)
  FROM pg_stat_activity
 WHERE procpid IN ( 
                    SELECT procpid
                      FROM ( SELECT pid FROM pg_locks GROUP BY pid) l
                         , pg_stat_activity a
                     WHERE l.pid = a.procpid
                       AND now() - query_start > '5minutes'::INTERVAL
                  )
;
を定期的に実行することにしました。


終わりに

大変ご迷惑をおかけいたします。
対策に未だ時間がかかりますがご容赦ください。
考察が間違っている、こういった対策が必要だ、こんなログを取っといた方がいい、等ございましたらコメント、メール、Twitter等でお知らせ頂けますと幸いです。

※9月に事象が発生したときは、こんなにI/O waitは発生していなかった気がするのですが、psコマンドでVACUUMがたくさん見えていたことから多分同一事象だと思っていますが、自信が無いです。 

PostgreSQLを用いた負荷分散構成時、マスタが落ちた場合の復旧方法について(~PostgreSQL9.2)

以下の文書はPostgreSQL9.1と9.2に適用される話題です。
多分、PostgreSQL9.3では問題ない…かもしれません。

PostgreSQLを使って以下のような構成を組んでいるとします。

サーバA master
サーバB slave1 sync
サーバC slave2 potential

この状態でサーバAが落ちたときに
 ・いかなる状況でも
 ・なるべく短い時間で
復旧させる方法は、今のところはPostgreSQLおよびその周りのツールにはない…と思いました。
上記結論に至るのにとても時間がかかったので、後の自分のためにメモしておきます。

※何かいい方法があれば教えて欲しいですが、ErogameScapeは今のところ負荷分散する必要が無いので、私の中では活躍する機会がないです…

高可用性を実現するのではなく、最繁時にサーバーが2台必要である…といった場合、PostgreSQLのStreaming Replicationを使ってデータをレプリケーションする場合は
pgpool-II サーバA master
          サーバB slave1 sync
          サーバC slave2 potential
のような構成を組むと思います。

サーバCが落ちた場合はpgpoolがサーバCを切り離すので特に問題ありません。
サーバAとサーバBの2台運用体制になるので、最繁時トラヒックもさばけます。
サーバCの復旧はサーバAのベースバックアップをとってリカバリ or pg_basebackupすればOKです。

サーバBが落ちた場合はpgpoolがサーバBを切り離すので特に問題ありません。
サーバAとサーバCの2台運用体制になるので、最繁時トラヒックもさばけます。
サーバBの復旧はサーバAのベースバックアップをとってリカバリ or pg_basebackupすればOKです。

サーバAが落ちた場合が問題です。
サーバAが落ちるとサーバBがmasterに昇格する…とします。
サーバCがサーバBにslaveとしてすぐに接続できるか?というと、そうでもないパターンが存在します。


サーバCがをサーバBにslaveとして接続するには以下の2つの方法があります。

(1) ベースバックアップをとってリカバリ or pg_basebackup
(2) recovery.confに
recovery_target_timeline='latest'
restore_command = 'cp /var/lib/pgsql/9.3/data/pg_xlog/%f "%p" 2> /dev/null'
と書いてPostgreSQLを再起動

確実に接続可能な方法は(1)、接続できないかもしれない方法が(2)です。


PostgreSQL全機能バイブルには(1)の方法が紹介されています。
注として「新スレーブのアーカイブログとhistoryファイルを使う方法もありますが、ここでは説明を省略します」と書いてあります。つまり(2)の方法は書いていません。
(1)の方法はデータベースの容量が大きい場合とても時間がかかります。
(1)の方法をとった場合、masterに昇格したサーバBの単独運用の時間が長いので運が悪いと最繁時トラヒックに耐えられません。

(2)の方法のドキュメントとしては
ちょっと違いますが、落ちたmasterを(2)の方法で組み込む方法のドキュメントとしては
また、自分が疑問に思ったことを書いていらっしゃったのが
  ※すでに2013年ですが当時と状況はあまり変わっていないような気がいたします。
です。
 
pgpool-IIとPostgreSQLストリーミングレプリケーションを組合わせた、高性能、高可用性クラスタの検証のドキュメントでは、(2)の方法で必ずサーバCがサーバBにslaveとしてすぐに接続できることを前提にしていると思いますが、HAクラスタでPostgreSQLレプリケーション構成の高可用化の33ページ目には「※単純にTimelineID を合わせるためには、WALアーカイブのみをコピーすれば可能だが、フェイルオーバするとサーバ間のデータの整合性が崩れる可能性があり、これを避けるためにも 全データのコピーを推奨」と書いてあります。

また、MLog: [pgsql-jp: 40809] Re:9.0 でストリーミングレプリケーション使用時のスイッチオーバーの平岡様の書き込みとPostgreSQLの組み込みレプリケーションとpgpool-IIの組み合わせを使いこなそう(pdfです。)の19ページから推測するとWALログの再生状況(転送状況)によっては(2)の方法がとれないパターンがある…と思っています。
サーバAはサーバBとサーバCにWALログを送りますが、サーバCはWALログを受け取れて、サーバBが受け取れなくて、サーバCがmasterに昇格した場合がそのパターンかなと思います。

※PostgreSQL全機能バイブルには、「実運用ではLSNが最も進んでいるスレーブを新マスタに昇格」する戦略を取ることが多くてPacemakerのリソースエージェントはこの戦略を採用している、と書いてありますので、Pacemakerを使えば、必ず(2)の方法で復旧できるのでしょうか…出来そうな気がしますが…


以上から、最繁時トラヒックに耐えるために2台必要で予備を含めて3台必要な場合は、挿入/更新の負荷やpgpoolでレプリケーションできないSQLを使っていないのであれば、pgpoolのレプリケーションモードで3台設定するのが良いのではないかと思いました。

PostgreSQLをカスケードでレプリケーションしている構成でmasterが落ちた場合、どうやって復旧するのか、どの程度の時間で復旧できるについては、HAクラスタでPostgreSQLレプリケーション構成の高可用化の16ページに「Masterが故障し、フェイルオーバした際に、カスケード先のレプリケーションも切断される」「対策 故障後はスレーブ1から手動でベースバックアップを取得し、再組込みする必要あり」と記述があります。負荷分散としてカスケードしたPostgreSQLを立ち上げるとmasterが落ちたときに目も当てられない状態になりそうだなあと思いましたので、今後の発展に期待です。

※と、ここまで書いて、そういえばPostgreSQL9.3の新機能って何かなと思って、PostgreSQL9.3新機能紹介を見ていたら、26スライド目、27スライド目に、9.3からはベースバックアップと共有アーカイブがなくてもmasterにslaveが接続できるようになる記載がありました。1つのslaveがmasterに昇格してから他のslaveがmasterに接続するまでの時間が分かりませんが、十分に短いといいですね。


MySQLはどうなのかな?と思ったので調べました。
MHA for MySQLとDeNAのオープンソースの話によると、MHAを使えばmasterが落ちても、masterから取り出せるのであればmasterから最新のログを、masterから取り出せなければslaveの中から一番進んでいるslaveを見つけて同期させて誰がmasterになってもOK、とのことです。
素晴らしい…


ちなみにErogameScapeはpgpoolのレプリケーション機能とオンラインリカバリ機能を使っています。
pgpoolがなかったら今のErogameScapeはありませんでした。
ありがとうございます。

社内向けWebサイトでCDNに設置されたjQueryファイルを指定して、はまりました

社内向けWebサイトでCDNに設置されたjQueryファイルを指定して、はまりました。

会社でインターネットに接続できない事象が発生しました。
私が作った社内向けWebサイトはjQueryを使っているのですが、読み込み先にCDNを指定していてかつフォールバック先は指定していませんでした。

結果、お休みだった日に会社から電話がかかってきました。

同僚「今、インターネットに接続できないんだけど、お前が作った社内向けWebサイトの応答が遅いんだ。Webサーバーの管理者は変なログをはいてないというんだけど何か心当たりある?」

この後、5分くらい同僚と問答をして「あ、jQueryは外部から読んでた」と気がつきました。

この記事を書くために、「CDN jQuery」で検索すると、ちゃんとフォールバックを設定しましょうという記事がひっかかるのですが、私がCDNを利用する時に参考にした記事か本にはフォールバックについて一切触れていなかったので、同じ目に遭う方がいらっしゃるかもしれない…と思ってメモします。

そもそも、社内向けWebサイトはトラヒックが少ないのでCDNを使う必要がないのですが…、あまり考えずに作っててしまいました… 
記事検索