佐久本正太
sakum****@verve*****
2010年 7月 30日 (金) 19:50:11 JST
赤松様 佐久本です。ご返信ありがとうございます。 以下、有益な情報をありがとうございます。 MySQLのTimed Outに関しては何らかの高負荷がかかりHeartBeat側からMySQLのリソース監視が困難になりタイムアウトをしてしまったという事ですね。 再度、発生当時のsyslog等を確認、または再発時(起きては欲しくないが)に何の問題が起きていたのかを確認するように致します。 ・G_SIG_dispatchのwarn このwarnメッセージについては当初無視していいものかと思っていましたが、頻発するのであれば高負荷が疑われるのですね。 現在は10分間隔であり、安定していると思われますが、負荷の調整などに注力致します。 「LSBスクリプトでの設定方法」、「監視LANの設定」、「auto_failback」、「プロセス監視処理」について設定方法、手順等を丁寧に記載して頂き大変助かります。 上記設定を適用してみて状況が変わるかも確認したいと思っています。 またHeartBeatのVer2.1.2のメモリリークの症状があるのは初耳でした。 ソースからビルドしたHeartBeatで利用を行っています。ソースでもメモリリークを解消したバージョンを見つけましたので早速適用してみたいと思います。 ご丁寧に教えて頂き、ありがとうございます。 今後とも宜しくお願い致します。 2010年7月30日17:13 赤松 <akama****@oss*****>: > To:佐久本さん > > 赤松と申します。 > > 私なりに調査しました内容を提示します。 > 解決の一助になれば幸いです。 > > > ● 事象について > > 提供されました ha.log を参照する限り mysqld の Timed Out が発生した > 当時は、高負荷状態であったと思われます。 > > 下記ログメッセージは、リソースの監視処理にてシグナル(SIGCHLD)を > 受信した後、実際の処理に移行するまでに 30ms を超過した際に出力され > ます。 > 30 ms はプログラム内にオンコードされており、設定ファイル等での > 調整は出来ないようです。 > > lrmd[3947]: 2010/07/28_11:49:18 WARN: G_SIG_dispatch: Dispatch function for > SIGCHLD took too long to execute: 270 ms (> 30 ms) (GSource: 0x106cf5c8) > > 上記メッセージは、当時それなりの負荷があった事を保守者に > 通知する為のメッセージです。 > > 尚、当メッセージを出力した際にプログラム上で何らかの処理分岐等は > 行っていません。 > > 目安として例えば1分間に1回程度の出力頻度であれば特に注目する必要は > 無いと考えます。 > > しかし事象が発生した当時は数秒に1回の頻度で出力されていた為、当時は > それなりの負荷があったと推察します。 > > まずは負荷があったのか、負荷を軽減する為の手段等を検討するのが > 良いかと思います。 > > > 以下、資材を参照した際に気になった点についてです。 > 参考になれば幸いです。 > > ◆1 MySQL のLSBスクリプトについて > > /etc/init.d/mysql を /etc/ha.d/resource.d にコピーしたとありますが > /etc/init.d にあるものをそのまま利用する方が将来の運用を考慮すると > 望ましいと思います。 > > その際、class="heartbeat" を "lsb" とする事で /etc/init.d 以下を > 参照するようになります。 > type は実際のファイル名である "mysql" にする必要があります。 > > 以下は参考設定です。 > ----- > <primitive class="lsb" id="mysqld_3" provider="heartbeat" type="mysql"> > <operations> > <op id="mysqld_3_mon" interval="120s" name="monitor" timeout="60s"/> > </operations> > </primitive> > ----- > > ◆2 ハートビートLANについて > > ハートビートLAN(ha.cf の ucast ディレクティブ)については 2系統が > 望ましいです。 > > サービス用LANとして使用している eth1 も ucast ディレクティブを設定 > する等の対処が望ましいと考えます。 > > ちなみに eth2 についてはハートビートLAN専用回線として利用している > 場合は bcast ディレクティブの使用をお薦めします。 > (併用されている場合は ucast ディレクティブの使用が望ましいです) > > --- > ucast eth2 XXX.XXX.XXX.XXX > ↓ > bcast eth2 > --- > > ◆3 auto_failback ディレクティブについて > > ha.cf 内 auto_failback ディレクティブは v1 の時に使用されていた > ディレクティブです。 > あっても異常はありませんが、念のため削除をお薦めします。 > > 尚、auto_failback は自動フェイルバックするか選択する為の設定ですが > v2 ではその設定を cib.xml 内で行います。 > > 具体的には default-resource-stickiness の value 値になります。 > 今は"0"を設定されていますが、その設定で問題ありません。 > > ◆4 Heartbeat のバージョンについて > > お使いの Heartbeat の正確なバージョンは判り兼ねますが、2.1.2 には > メモリリークが発生する版があります。 > > rpm パッケージを利用している場合 2.1.2-2.p1 の使用をお薦めします。 > http://sourceforge.jp/projects/linux-ha/releases/?package_id=10606 > > ◆5 プロセス監視処理について > > 2.1.2 には Heartbeat を構成するプロセス群に対する監視処理が十分に > 対応しきれていません。 > 下記URLを参照しモジュールを適用する事をお薦めします。 > http://sourceforge.jp/projects/linux-ha/releases/45545 > > (1) 自己監視のインストールに必要なファイルは以下の通りです。 > 実行権限に気をつけて下さい。 > > --- > # ls -l > -rwxr-xr-x 1 root root 5123 Dec 28 2007 heartbeat_logmoni.sh > -rwxr-xr-x 1 root root 9853 Dec 28 2007 heartbeat_pcsmoni.sh > -rwxr-xr-x 1 root root 747 Dec 28 2007 startstop > --- > > (2) 所定ディレクトリの作成とファイルの配置を行ないます。 > > --- > # mkdir /etc/ha.d/monitoring > # cp -p heartbeat_logmoni.sh /etc/ha.d/monitoring > # cp -p heartbeat_pcsmoni.sh /etc/ha.d/monitoring > # cp -p startstop /etc/ha.d/resource.d > --- > > (3) /etc/init.d/heartbeatファイルを開いて、restart)の中に行を > 挿入します。 > > --- > # vi /etc/init.d/heartbeat > > restart) > sleeptime=`ha_parameter deadtime` > RunStartStop "pre-stop" <- この行を追加 > StopHA > Echo > EchoNoNl Waiting to allow resource takeover to complete: > sleep $sleeptime > sleep 10 # allow resource takeover to complete (hopefully). > echo_success > Echo > RunStartStop "pre-start" <- この行を追加 > StartHA > Echo > ;; > --- > > (4) heartbeat_pcsmoni.sh を一部編集します。 > ha.cf に設定した ucast/bcast ディレクティブの設定に依存します。 > > # vi /etc/ha.d/monitoring/heartbeat_pcsmoni.sh > > MONITORING_PROCESS=( > "heartbeat: FIFO reader" > "heartbeat: write: ucast eth1" <- ハートビートLANのデバイス名 > "heartbeat: read: ucast eth1" <- 同上 > "heartbeat: write: bcast eth2" <- ハートビートLANのデバイス名 > "heartbeat: read: bcast eth2" <- 同上 > "heartbeat: write: ping" > "heartbeat: read: ping" > ・・・ > ) > > (5) ha.cf に以下を記述します。 > > --- > # vi /etc/ha.d/ha.cf > respawn root /etc/ha.d/monitoring/heartbeat_logmoni.sh monitor > respawn root /etc/ha.d/monitoring/heartbeat_pcsmoni.sh monitor > --- > > 以上です。 > > > > To:藤岡様 > > > > 佐久本です。ご返信ありがとうございます。 > > > > サーバーの負荷を確認したのですが、高負荷を示すログがあるか調査をしたのですが、 > > 該当時間帯にHeartBeatから出力されるメッセージ以外は特にありませんでした。 > > > > 以下、回答致します。 > > > > ◆ 質問1 > > MySQLのLSBスクリプトは/etc/init.d/mysqlを/etc/ha.d/resource.d/にコピーしたも > > のになります。 > > > > ◆ 質問2 > > MySQLのログを確認したのですが、あるはずの終了ログが欠損しており、スタート時 > > のクラッシュリカバリのログがありました。 > > ※not normaly shutdown とのメッセージもある為、MySQL側が何らかのシグナルで強 > > 制終了した可能性がありそうです。 > > > > ◆ 質問3 > > 問題起因前は3秒間隔で大量に出力がありました。現在は10分前後の間隔です。 > > > > ■要望1 > > 以下ファイルを添付致します。※マスクしている部分もあります。 > > ・ha.log 問題起因前後 > > ・ha.cf > > ・ha.cf.standby > > ・mysqld(既存ファイル) > > ・drbddisk(Heartbeatの付属ファイル) > > > > 大変お手数ではございますが、ご教示の程宜しくお願いします。 > > > > > > 2010年7月29日18:18 fujioka <fujio****@oss*****>: > > > > > To:佐久本様 > > > > > > 藤岡と申します。 > > > 残念ながら、監視処理にてタイムアウトが発生した主原因については、判りませ > > > んでした。経験的には、サーバの高負荷が疑われるのですが、それを示すような > > > 別ログ等はございますでしょうか?。 > > > > > > また、質問内容と資材より判り兼ねる点が御座いましたので、 > > > 以下に、少し質問させていただきました。 > > > > > > ◆ 質問1 > > > MySQLのリソース管理には既存のLSBスクリプトを利用したとありますが > > > そのスクリプトは /etc/init.d/mysql を /etc/ha.d/resource.d/ に > > > コピーしたと理解してよろしいでしょうか。 > > > それとも"mysqld"は自作でしょうか。 > > > > > > ◆ 質問2 > > > syslog.txt より IPaddr2_5 と IPaddr2_4 の停止は成功しておりますが > > > その次に umount 処理が記述されております。 > > > cib.xml を参照しますと、次に停止処理が行われるのは mysqld と推察 > > > しますが、mysqld の停止処理についてのログメッセージはありません > > > でしたでしょうか。 > > > > > > ◆ 質問3 > > > "G_SIG_dispatch"のログメッセージについて頻発していたとありますが > > > どの程度の粒度で発生していたのでしょうか。 > > > > > > お手元にログメッセージがありましたら、加工せずにご提示頂ければ > > > 参照させて頂きます。 > > > > > > ◆ 要望1 > > > もし、下記ファイルも提示頂ければ、もう少し状況がわかるかもしれません。 > > > もちろん、問題がある部分については、処理内容をマスク頂いても構いません。 > > > > > > ・/etc/ha.d/ha.cf <- 両系で設定内容が異なる際は両系分 > > > ・/etc/ha.d/resource.d/mysqld > > > ・/etc/ha.d/resource.d/drbddisk > > > > > > 以上です。 > > > > > > > > > > > > > > > On Thu, 29 Jul 2010 12:48:49 +0900 > > > 佐久本正太 <sakum****@wdwl*****> wrote: > > > > > > > お世話になっております。 > > > > > > > > 佐久本と申します。 > > > > > > > ノード2台でHeartBeatをV2モードで利用し、リソースDRBD+MySQL+VIP(2)の環境に > > > て不可思議な症状が起こったのでご質問させてください > > > > > > > > 以下が主なミドルウェアのバージョンです。 > > > > HeartBeat : 2.1.2 > > > > DRBD : 8.2.6 > > > > MySQL : 4.1.22 > > > > > > > > 監視しているリソースは > > > > DRBD > > > > Filesystem ext3 > > > > MySQL > > > > IPaddr2(ローカルIP) > > > > IPaddr2(グローバルIP) > > > > > > > > 症状としては2か月運用していて今回初めての症状で内容としては以下1点です。 > > > > > > > ※MySQLのリソース管理には既存のLSBスクリプトを利用し、起動・停止のみの管理 > > > だが、急にMySQLのサービスにSIGTERMメッセージが送られた※ > > > > > > > > 別途syslog上に下記warnメッセージも頻発しています。 > > > > ※G_SIG_dispatch: Dispatch function for SIGCHLD took too long to > > > > execute: > > > 40 > > > > ms (> 30 ms) (GSource: 0x1aa3b5c8)※ > > > > > > > > HeartBeatの設定の問題なのか。LSBスクリプトが起因しているのか。問題が分か > > > > らず苦慮しております。 > > > > > > > > ご教示頂ければと存じます。 > > > > > > > > 情報の過不足があれば指摘して頂けると幸いです。以上、宜しくお願いします。 > > > > > > > > #タイムラインでのSyslog及びcib.xmlを添付致します。 > > > > > > -- > > > ---------------------------- > > > NTT 研究企画部門 OSSセンタ > > > 藤岡 健吾 > > > fujioka <fujio****@oss*****> > > > 03-5860-5135(代表) > > > > > > _______________________________________________ > > > Linux-ha-japan mailing list > > > Linux****@lists***** > > > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > > > > > > > ------------------------------------------------------------------------ > > > > _______________________________________________ > > Linux-ha-japan mailing list > > Linux****@lists***** > > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > > > > > > ---html-part included links------- > > http://ha.cf > > mailto:fujio****@oss***** > > mailto:sakum****@wdwl***** > > mailto:Linux****@lists***** > > _______________________________________________ > Linux-ha-japan mailing list > Linux****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/linux-ha-japan > -------------- next part -------------- HTMLの添付ファイルを保管しました... Download