スケーラブルデータベースサーバ HiRDB Version 8 システム運用ガイド(UNIX(R)用)
サーバプロセスの沈み込みが発生したサーバでは,UAPのレスポンスの低下やシステムのハングアップなどが起こることがあります。ここでは,メッセージキュー監視機能を使用してサーバプロセスの沈み込みを監視する方法について説明します。
なお,サーバプロセスの沈み込みとは,CPU負荷による処理性能低下,又は入出力障害による入出力遅延によって,サーバプロセスが処理されない状態のままになることです。
HiRDBでは,サーバプロセスの割り当て処理でメッセージキューを使用しています。サーバプロセスの沈み込みが発生すると,メッセージキューからメッセージを取り出せなくなります。HiRDBでは,ある一定時間(これをメッセージキュー監視時間といいます)を超えてもメッセージキューからメッセージを取り出せない場合,警告メッセージ及びエラーメッセージ(KFPS00888-W及びKFPS00889-E)を出力します。これをメッセージキュー監視機能といいます。このメッセージが出力されると,サーバプロセスが沈み込んでいる可能性があります。
メッセージキュー監視時間は,通常600秒間(10分間)です。この監視時間をpd_queue_watch_timeオペランドで変更できます。
警告メッセージが出力された場合,サーバプロセスが沈み込んでいる可能性があります。この場合,次に示すどちらかの方法で対処してください。
サーバプロセスの沈み込みが発生したユニットを再開始すると,サーバプロセスの沈み込みを解決できることがあります。通常,メッセージキュー監視時間を過ぎると,HiRDBは沈み込みが発生したユニットを異常終了させます。
なお,ユニットを異常終了させたくない場合は,pd_queue_watch_timeover_actionオペランドにcontinueを指定してください。
(a)の方法で対処しない場合(できない場合も含む),サーバプロセスの沈み込みが発生したサーバで実行中のトランザクションをpdcancelコマンドなどで終了させてください。トランザクションが発生していない場合は,サーバプロセスの沈み込みが発生したサーバをOSのkillコマンドなどで終了させた後,沈み込み要因を特定して対策してください。
メッセージキュー監視対象サーバの,メッセージキュー滞留要因と対策を次の表に示します。
表8-12 メッセージキュー滞留要因と対策
要因 | 監視対象サーバプロセス | 対策 | |||
---|---|---|---|---|---|
FES | BES | DS | SDS | ||
CPU負荷が高いため,メッセージキューからメッセージを取り出せません。 | ○ | ○ | ○ | ○ | CPU負荷になっている要因を調査して,対策してください。 |
入出力障害によって入出力が遅延しているため,メッセージキューからメッセージを取り出せません。 | ○ | ○ | ○ | ○ | 入出力障害になっている要因を調査して,対策してください。 |
pd_max_usersオペランドの値を超えて同時に接続要求が発生した場合に,メッセージを取り出すプロセス数が不足しています(高速接続機能を使用した場合に発生しやすい)。 | ○ | − | − | ○ | 同時接続数を減らすか,又は高速接続機能を使用しないで通常接続を行ってください。若しくは,pd_max_usersオペランドの値を大きくしてください。 |
フロントエンドサーバ,又はユティリティサーバの起動数に比べて,バックエンドサーバ,及びディクショナリサーバの起動数が少ない場合に,メッセージを取り出すプロセス数が不足しています(マルチフロントエンドサーバ環境で発生しやすい)。 | − | ○ | ○ | − | pd_max_bes_process,pd_max_dic_process,及びpd_max_usersオペランドの値が正しく指定されているか確認してください。又は,接続数を減らしてください。 |
メッセージキューから最後に取り出したメッセージの取り出し時間をpdls -d scdコマンドで調べられます。
All Rights Reserved. Copyright (C) 2006, 2016, Hitachi, Ltd.