URLをクリップボードにコピーしました
FAQ_URL:https://www.pa-solution.net/daj/bs/faq/Detail.aspx?id=3167
|
最終更新日 2023/04/13 |
FAQ_ID:3167 |
Business >
m-FILTER Ver.4/Ver.5 >
トラブルシューティング
|
「m-FILTER」調査時に必要なメモリダンプやコアダンプを取得する方法を教えてください
|
|
対応バージョン: m-FILTER Ver.4 / Ver.5
対応OS: すべてのOS
※本FAQ内の用語解説
メモリダンプ
(クラッシュダンプ)
|
Windows OSでメモリ内容を出力したファイルです。また、
プロセス不正終了時のメモリダンプをクラッシュダンプと呼びます。
|
コアダンプ
|
Linux(UNIX系)OS でメモリ内容を出力したファイルです。
|
クラッシュ
|
プロセスの不正終了を意味します。本FAQ記載の設定によって
クラッシュ時のメモリダンプやコアダンプを取得することが可能です。
|
デッドロック
|
プロセスの無応答状態を意味します。本FAQ記載の手順によって
デッドロック時のメモリダンプやコアダンプを取得することが可能です。
|
「m-FILTER」関連のプロセスがクラッシュした場合や、デッドロックした場合には、
現象発生時のメモリダンプやコアダンプが必要です。これらの取得手順を以下に記載します。
■Linux版「クラッシュ時、デッドロック時」 ※Ver.5.72R01~
Linux環境で「m-FILTER」Ver.5.72R01~のバージョンを利用する場合、
「m-FILTER」のプロセスダウン検出時に自動でコアダンプファイル(core.xxxx)が出力されます。
ただし、Ver.5.xのVer.5.72R01より前のバージョンから、Ver.5.72R01以降にバージョンアップした場合は、
初期設定ではcoreファイルが一旦出力された後すぐに削除されるようになっております。
そのため、Ver.5.72R01より前のバージョンからバージョンアップした環境では、
コアファイル出力数指定ファイル(PRESERVE_CORE.txt)を作成し、1以上を設定することで
coreファイルが残るようにしてください。
1. PRESERVE_CORE.txt ファイルを作成
<インストールディレクトリ>/conf/に以下のファイルを作成します。
▽ファイル名
PRESERVE_CORE.txt
▽記述例(1行のみ)※改行をつけないようにご注意ください。
3
※1以上の数値を設定してください。
※設定した数だけcoreファイルが残ります。ディスク空き容量を考慮のうえ設定してください。
※「m-FILTER」サービスの再起動は必要ありません。
2. プロセスダウンを実施
プロセスクラッシュ時は、コアダンプが自動的に出力されます。
デッドロック時は、プロセスIDを確認の上、該当プロセスを強制的にダウンさせてください。
【例】「mf_save」プロセスのコアダンプを取得する場合
● プロセスID確認
対象プロセスのプロセスID<PID> を確認します。
# ps -ef | grep mf_save
● プロセス強制ダウン
確認したプロセスIDを指定してダウンさせます。
# kill -6 <PID>
※ 自動ダウン手動ダウンいずれの場合も、「m-FILTER」は、mf_saveを
再起動させます。
プロセスの起動を "ps -ef | grep mf_save" で確認ください。
▽コアダンプ出力先パス(「xxxx」はプロセスID)
[<インストールディレクトリ>/core.xxxx]
※ OS側の設定で出力先を変更されている場合はそちらを確認ください。
3. 情報取得
コアダンプの解析にはサーバー環境をあわせる必要があります。
出力されたコアダンプに加えて以下をご取得ください。
# cat /etc/redhat-release > redhat.txt
# uname -a > uname.txt
# rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n'> rpm.txt
前述のとおり、Linux版「m-FILTER」Ver.5.72R01~では、coreファイル出力が
デフォルト有効になっています。
運用時にcoreファイルを一切出力しないようにする場合は下記ファイルを作成し、ファイル内容を「0」として
設定する必要があります。(設定変更を反映するためにはm-FILTERの再起動が必要です)
<インストールディレクトリ>/conf/SET_RLIMIT_CORE.txt
詳細は、以下FAQページを参照してください。
▽「m-FILTER」coreファイルが出力されないようにするにはどうしたらよいですか
https://www.pa-solution.net/daj/bs/faq/Detail.aspx?id=4680
■Linux版「クラッシュ時、デッドロック時」※Ver.4.00R01~ Ver.5.00R01~Ver.5.71R01
※ <インストールディレクトリ>はご利用環境によって異なります。例として
「m-FILTER」Ver.4 をデフォルトのディレクトリにインストールした場合は
以下の様になります。
/usr/local/mfilter4/
1. SET_RLIMIT_CORE.txt ファイルを作成
<インストールディレクトリ>/conf/に以下のファイルを作成します。
▽ファイル名
SET_RLIMIT_CORE.txt
▽記述内容(1行のみ)※改行をつけないようにご注意ください。
-1
2. サービス再起動
設定反映のために「m-FILTER」サービスを再起動します。
# /etc/init.d/mfilter4 restart
※ 管理画面からの再起動では設定が反映されません
3. プロセスダウンを実施
プロセスクラッシュ時は、コアダンプが自動的に出力されます。
デッドロック時は、プロセスIDを確認の上、該当プロセスを強制的にダウンさせてください。
【例】「mf_save」プロセスのコアダンプを取得する場合
● プロセスID確認
対象プロセスのプロセスID<PID> を確認します。
# ps -ef | grep mf_save
● プロセス強制ダウン
確認したプロセスIDを指定してダウンさせます。
# kill -6 <PID>
※ 自動ダウン手動ダウンいずれの場合も、「m-FILTER」は、mf_saveを
再起動させます。
プロセスの起動を "ps -ef | grep mf_save" で確認ください。
▽コアダンプ出力先パス(「xxxx」はプロセスID)
[<インストールディレクトリ>/core.xxxx]
※ OS側の設定で出力先を変更されている場合はそちらを確認ください。
4. SET_RLIMIT_CORE.txt ファイルを削除
「SET_RLIMIT_CORE.txt」を削除してサービスを再起動してください。
# /etc/init.d/mfilter4 restart
5. 情報取得
コアダンプの解析にはサーバー環境をあわせる必要があります。
出力されたコアダンプに加えて以下をご取得ください。
# cat /etc/redhat-release > redhat.txt
# uname -a > uname.txt
# rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n'> rpm.txt
コアダンプファイル(core.xxxx)が出力されない場合は
# cat /proc/<PID>/limits
の出力内容を確認してください。
Max core file size が 0以外 であれば正しく設定されていますが 0 の場合は出力されません。
以下の点を確認してください。
(1) SET_RLIMIT_CORE.txt の作成に誤りは無いか
・<インストールディレクトリ>/conf/ 配下に作成したか
・ファイル内容は -1(改行なし) のみの記載となっているか
(2) 再起動をコマンドラインからでなくGUIから実施していないか
また、core出力の確認先パスを間違えていないか、という点も確認してください。
通常はインストールディレクトリ(例:/usr/local/mfilter4/)直下に出力されますが、
OS側の設定でコアダンプファイルの出力先を変更されている場合は、そのディレクトリを
確認してください。 |
Red Hat Enterprise Linux 8(RHEL8)以降を利用している場合
コアダンプが自動でファイル出力されないことがあります。
その場合は下記のコマンドで出力してから提供してください。
1. コアダンプの一覧を表示
# coredumpctl list
2. 出力日時とPIDから、目的のコアダンプを特定
3. コアダンプをファイル出力
# coredumpctl dump <PID> --output /tmp/core.<PID>
※<PID>には実際のPIDを入力してください。
4. /tmp に出力されたコアダンプを提供してください。
|
■Windows版「デッドロック時」
1. タスクマネージャーを起動
「ファイル名を指定して実行」 → [taskmgr.exe]
2. 対象プロセスを選択
プロセスタブから、問題が発生しているプロセス名を右クリックし、
「ダンプファイルの作成」を選択します。
3. メモリダンプの取得
保存フォルダを確認してメモリダンプをご取得ください。
■Windows版「クラッシュ時」
※レジストリ編集の注意点※
***********************************************************************
レジストリエディタの使用を誤ると、深刻な問題が発生する可能性があり、
Windowsの再インストールが必要になることがあります。作業前に
レジストリエディタのバックアップを作成の上、お客様の責任と判断にて実施ください。
***********************************************************************
1. レジストリエディタを起動
Windowsスタートメニュー「ファイル名を指定して実行」から「regedit」を入力し
「OK」ボタン
※ 「ファイル名を指定して実行」は、[Windows]+[R]キーでも表示されます。
(Windows Server 2012 では[Windows]+[X]キーで「ファイル名を指定して
実行」メニューが表示されます)
2. レジストリキーとレジストリ値(3点)を追加
○ レジストリキー
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Windows Error Reporting\LocalDumps]
※「LocalDumps」キーが存在しない場合は新規作成(デフォルトでは存在しません)
○ レジストリ値
▼ダンプ保持世代数
----------------------------------------------
値の名前 :DumpCount
種類 :REG_DWORD [DWORD(32ビット)値]
値のデータ:0x0000000a(10)
----------------------------------------------
※上記は10世代まで保持する場合の設定です
▼ダンプ出力先
----------------------------------------------
値の名前 :DumpFolder
種類 :REG_EXPAND_SZ [展開可能な文字列]
値のデータ:C:\CrashDumps
----------------------------------------------
※上記は「C:\CrashDumps」に出力する場合の設定です。
※フォルダはダンプ出力時に自動的に生成されます
▼ダンプ出力種別(0:カスタムダンプ、1:ミニマムダンプ、2:フルダンプ)
----------------------------------------------
値の名前 :DumpType
種類 :REG_DWORD [DWORD(32ビット)値]
値のデータ:0x00000002(2)
----------------------------------------------
※ 上記はフルダンプを出力する場合の設定となります
(弊社調査ではフルダンプを指定してください)
3. 現象を再現させダンプを出力
事象再現後、ダンプ出力先に指定したフォルダ内の「%プロセス名%.%PID%.dmp」を
取得します。
※ 「m-FILTER」関連以外のプロセスでも不正終了発生時の際には
クラッシュダンプが出力されるため注意が必要です。
調査終了後に設定を元に戻してください。
▽参考サイトMicrosoft社(MSDN)
https://docs.microsoft.com/ja-jp/windows/desktop/wer/collecting-user-mode-dumps
発生事象および、ファイル送付手順につきまして「サポート問い合わせフォーム」か
お電話にてファイルサイズをご連絡ください。
ファイルサイズが大きい場合には、弊社契約のオンラインストレージサービスを
ご案内します。
※ 発生事象により追加情報をいただく場合もございますが、あらかじめご了承ください。
※ダンプファイルのみでは解析を行うことができません。ダンプファイル取得時の情報として、
設定ファイルやログファイルも併せて取得をお願いいたします。
▽「m-FILTER」ご利用時のトラブル調査に必要な情報一覧
https://www.pa-solution.net/daj/bs/faq/Detail.aspx?id=1305
|