システムクラッシュ情報を処理する場合には、次の点に注意してください。
システムクラッシュ情報にアクセスして管理するには、スーパーユーザーでログインする必要があります。
システムクラッシュダンプを保存するオプションを無効にしないでください。システムクラッシュファイルにより、システムクラッシュの原因を判断する非常に有効な方法が提供されます。
また、重要なシステムクラッシュ情報は、カスタマサービス担当者に送信するまでは削除しないでください。
現在のクラッシュダンプ構成を表示します。
# dumpadm Dump content: kernel pages Dump device: /dev/dsk/c0t3d0s1 (swap) Savecore directory: /var/crash/venus Savecore enabled: yes |
ダンプの内容は、カーネルメモリーページである
カーネルメモリーがスワップデバイス /dev/dsk/c0t3d0s1 にダンプされる。swap -l コマンドにより、すべてのスワップ領域を識別できる
システムクラッシュダンプファイルは /var/crash/venus ディレクトリに保存される
システムクラッシュダンプファイルの保存は有効に設定されている
現在のクラッシュダンプ構成を確認します。
# dumpadm Dump content: kernel pages Dump device: /dev/dsk/c0t3d0s1 (swap) Savecore directory: /var/crash/pluto Savecore enabled: yes |
上記の出力は、Solaris 9 リリースを実行するシステムのデフォルトダンプ構成を示しています。
クラッシュダンプ構成を変更します。
# dumpadm -c content -d dump-device -m nnnk | nnnm | nnn% -n -s savecore-dir |
-c content |
ダンプするデータの種類を指定する。すべてのカーネルメモリーをダンプするには kernel を、すべてのメモリーをダンプするには all を、カーネルメモリーとクラッシュ時に実行中だったスレッドを持つプロセスのメモリーページとをダンプするには curproc を使用する。デフォルトはカーネルメモリー |
-d dump-device |
システムがクラッシュしたときに、ダンプデータを一時的に保存するデバイスを指定する。デフォルトのダンプデバイスは 1 次スワップデバイス |
-m nnnk | nnnm | nnn% |
現在の savecore ディレクトリに minfree ファイルを作成することにより、クラッシュダンプファイルを保存する最小限の空き容量を指定する。このパラメータは K バイト (nnnk)、M バイト (nnnm)、またはファイルシステムサイズのパーセント (nnn%) で指定できる。savecore コマンドは、クラッシュダンプファイルを書き込む前にこのファイルを調べる。クラッシュダンプファイルを書き込むと空き容量が minfree の値より少なくなる場合、ダンプファイルは書き込まれず、エラーメッセージが記録される。このような問題を解決するには、クラッシュダンプディレクトリが一杯になった場合に復元する方法 (省略可能)を参照 |
-n |
システムがリブートするときに、savecore を実行しないように指定する。このダンプ構成は推奨できない。システムクラッシュ情報がスワップデバイスに書き込まれているときに、savecore が実行されないと、クラッシュダンプ情報はシステムがスワップを開始すると上書きされる |
-s |
クラッシュダンプファイルを保存する別のディレクトリを指定する。デフォルトのディレクトリは /var/crash/hostname で、hostname は uname -n コマンドの出力 |
次の例は、すべてのメモリーを専用のダンプデバイス /dev/dsk/c0t1d0s1 にダンプします。また、クラッシュダンプファイルを保存した後に残っていなければならない最小空き容量は、ファイルシステム容量の 10% です。
# dumpadm Dump content: kernel pages Dump device: /dev/dsk/c0t3d0s1 (swap) Savecore directory: /var/crash/pluto Savecore enabled: yes # dumpadm -c all -d /dev/dsk/c0t1d0s1 -m 10% Dump content: all pages Dump device: /dev/dsk/c0t1d0s1 (dedicated) Savecore directory: /var/crash/pluto (minfree = 77071KB) Savecore enabled: yes |
スーパーユーザーになります。
mdb ユーティリティを使用して、クラッシュダンプを検査します。
# /usr/bin/mdb [-k] crashdump-file |
-k |
オペレーティングシステムのクラッシュダンプファイルの場合のカーネルデバッグモードを指定します。 |
crashdump-file |
オペレーティングシステムのクラッシュダンプファイルを指定します。 |
クラッシュ状態情報を表示します。
# /usr/bin/mdb file-name > ::status . . . > ::system . . . |
次の例は、mdb ユーティリティからのサンプル出力を示します。このシステムのシステム情報と /etc/system ファイルに設定される調整可能パラメータが表示されます。
# /usr/bin/mdb -k unix.0 Loading modules: [ unix krtld genunix ip nfs ipc ptm ] > ::status debugging crash dump /dev/mem (64-bit) from ozlo operating system: 5.9 Generic (sun4u) > ::system set ufs_ninode=0x9c40 [0t40000] set ncsize=0x4e20 [0t20000] set pt_cnt=0x400 [0t1024] |
ここでは、システムがクラッシュしてもメモリーイメージを格納する十分な空き容量が savecore ディレクトリにないが、それでも、一部の重要なシステムクラッシュダンプ情報を保存したい場合を考えます。
システムがリブートした後で、スーパーユーザーとしてログインします。
すでにサービスプロバイダに送ってある既存のクラッシュダンプファイルを削除して、savecore ディレクトリ (通常は /var/crash/hostname) を整理します。あるいは、savecore コマンドを実行し、十分な容量を持つ別のディレクトリを指定します (次の手順を参照してください)。
手作業で savecore コマンドを実行し、必要なら別の savecore ディレクトリを指定します。
# savecore [ directory ] |
次の例は、システムでのクラッシュダンプの保存を無効にします。
# dumpadm -n Dump content: all pages Dump device: /dev/dsk/c0t1d0s1 (dedicated) Savecore directory: /var/crash/pluto (minfree = 77071KB) Savecore enabled: no |
次の例は、システムでのクラッシュダンプの保存を有効にします。
# dumpadm -y Dump content: all pages Dump device: /dev/dsk/c0t1d0s1 (dedicated) Savecore directory: /var/crash/pluto (minfree = 77071KB) Savecore enabled: yes |