system management
1751712 メンバー
5691 オンライン
108781 解決策
新規ポスト

VHAND CPU占有によるOSフリーズ

 
coral
時折のアドバイザー

VHAND CPU占有によるOSフリーズ

HP-UX V2 で自社アプリを動作させています。約10日毎にCPUのLoadAverageが80%を超えてフリーズしてしまい困っています。(ログインすらできなくなる)

PSとtopでVHANDがCPUを占有していることはわかりましたが、何をしたらVHANDがCPUを占有してしまうのかがわかりません。PSのデータを定周期で取得しましたが自社アプリでSZが増加しているものはなく逆に減少していました。減少する原因もわかりません。swapinfoのMemory欄のUSED(%)が増加(49→76)しFREEが減っています。

なにか、情報やヒントをお持ちの方がいらっしゃいましたら教えてください。よろしくお願いします。
12件の返信12
masaakio65
レギュラーアドバイザー

VHAND CPU占有によるOSフリーズ

vhand は、メモリー不足の時に動作するプロセスなので、メモリー不足状態だからでしょう。10日毎になにかの処理がうごくんでしょうか?それとも10日ごとにrebootせざるを得ない状況になって、rebootしてるのでしょうか?

psで、SZが小さくなるのはvhandが動作して、プロセスからメモリーを引きはがして、必要としているものに割り当てているためです。だから、swapのUSEDは増えているのでしょう。

psで見て、SZが増えている物はないと言うことであれば、共有メモリーかカーネルが使ってるのだろうか?と言う風に思います。

ここで前に教えて貰ったcrashconf の結果からは、大まかにuserプロセスやkernel での使用状況が分かるので見てみてはどうでしょうか。結果には4KBかける必要があります。

また、ipcs -ma では共有メモリーの状況が見えるのでSEGSZが非常に大きかったり、異常にたくさんの行数があったりするとか見てみてはどうでしょうか。ただSEGSZ=実メモリーの消費ではないです。
coral
時折のアドバイザー

VHAND CPU占有によるOSフリーズ

早速の書込ありがとうございます。10日毎にフリーズするのでリブートしています。

自社アプリが15プロセスぐらい動作していて共有メモリも使用しているので、関係あるかもしれません。週明け、確認してみます。

swapinfoのMemory欄のUSEDはカーネルまたはPLOCK()によりユーザが確保した場合と書いてあったのですが、自社アプリがなにかした結果カーネルが動作した場合も増加するのでしょうか?カーネルが使用しているメモリが増加した場合も自社アプリが原因と言うことはあり得ますか?

ご存じであればご教授願います。
masaakio65
レギュラーアドバイザー

VHAND CPU占有によるOSフリーズ

swapinfo 結果の中のdev じゃなくmemory の行が増えていると言うことでしたか。読み間違いしてました。

dev は増えてないということであれば、coral さんの言うとおりだと思います。カーネルなのか、アプリがメモリーをロックしてるのか。

アプリケーションがカーネルに処理を要求した場合は、カーネルはそれに答えるためにメモリーを使う時があるでしょう。増える量が異常なのであれば、それはリークとか障害になると思います。
J_I
アドバイザー

VHAND CPU占有によるOSフリーズ

うちのシステムでもvhandがCPUを占有してしまう状態になったことがありましたが、パッチで現象が出なくなりました。たぶんなおったんだとおもいます。

記憶は定かではありませんが、vhandに不具合があったような気がします。

coral
時折のアドバイザー

VHAND CPU占有によるOSフリーズ

書き込みありがとうございます。vhandとタイトルに入っているパッチPHKL_33859はあたっていることは確認済みなのですが、どのパッチで直ったかご記憶されてますか?

または、そのパッチを探し出した方法を教えていただけませんでしょうか?vhandでCPUを占有というパッチは検索しても見つからなかったのですが。

よろしくお願いいたします。
coral
時折のアドバイザー

VHAND CPU占有によるOSフリーズ

masaakio65さん、ipcs -ma で共有メモリ確認してみましたが、5日前と全くサイズに変化がないので、リークはしていないようです。

swapinfoのMemoryのUSED(%)が起動時から10日で49%→76%というのは異常なのでしょうか?

swap領域の割り当てが足りないとかの可能性も考えてみましたが、devがあまり増加していないのであれば、足りないことはないですよね?

しつこく質問してすみませんが、よろしくお願いいたします。
masaakio65
レギュラーアドバイザー

VHAND CPU占有によるOSフリーズ

vhand が、動いていると言うことはメモリー不足は明らかですが、では何がメモリーを使ってるのかが分かってません。最初に書きましたが、crashconf コマンドの結果から、少なくとも搭載メモリーとユーザープロセス分とカーネル分、キャッシュ分が判断できますから、可能なら貼り付けてみて貰えませんか。
coral
時折のアドバイザー

VHAND CPU占有によるOSフリーズ

masaakio65さん、重ね重ねありがとうございます。

crashconfの結果は下記のとおりになりました。

UNUSED 15748 no,

USERPG 46994 no,

BCACHE 14206 no,

KCODE 7541 no,

USTACK 1026 Yes,

FSDATA 0 yes,

KDDATA 163717 yes,

KSDATA 3089 yes,

SUPERPG 3325 no,

Total pages on system: 255646

Total pages included in dump: 167832

Dump compressed: ON

DEVICE OFFSET(kB) SIZE (kB) LOGICAL VOL. NAME

31:0x060000 2349940 2097148

  64:0x000002 /dev/vg00/lvol2

31:0x060000 4447092 1572860

    64:0x000003 /dev/vg00/lvol3

----------

3670008

マニュアル、過去ログを探しましたがここから何が判断できるのかよくわからないです。何かわかることがありましたらご教授願います。

masaakio65
レギュラーアドバイザー

VHAND CPU占有によるOSフリーズ

255646と言うことは、4KBかけて1GBのメモリー搭載であることが分かります。11v2を使う上で、1GBはちょっと小さいですが、内訳的にはカーネルが多く使ってますよね。

   UNUSED空き         62MB

   USERPGユーザープロセス        187MB

   BCACHEバッファキャッシュ 56MB

   KDDATAカーネルデータ        654MB

これがカーネルのリークなのかどうかですが。。。可能性は高い気がします。memory leak と言うキーワードで、パッチ探してみましょうか。

そのアプリが何をしてるものなのか分かれば、ある程度パッチを絞り込めるかもしれませんね。