跳过导航链接 | |
退出打印视图 | |
![]() |
解决 Oracle Solaris 11.1 中的典型问题 Oracle Solaris 11.1 Information Library (简体中文) |
本节介绍有关管理系统故障转储信息的任务。
|
# dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash Savecore enabled: yes Save compressed: on
前面的示例输出表明:
转储内容是内核内存页面。
内核内存将在专用转储设备 /dev/zvol/dsk/rpool/dump 上进行转储。
系统故障转储文件将写入 /var/crash/ 目录。
已启用故障转储文件的保存。
以压缩格式保存故障转储。
# dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash Savecore enabled: yes Save compressed: on
此输出标识了运行 Oracle Solaris 11 发行版的系统的缺省转储配置。
# /usr/sbin/dumpadm [-nuy] [-c content-type] [-d dump-device] [-m mink | minm | min%] [-s savecore-dir] [-r root-dir] [-z on | off]
指定要转储的数据类型。使用 kernel 转储所有内核内存,使用 all 转储所有内存,或使用 curproc 转储内核内存以及在发生崩溃时其线程正在执行的进程的内存页面。缺省转储内容是内核内存。
指定在系统崩溃时临时存储转储数据的设备。主转储设备即为缺省转储设备。
通过在当前的 savecore 目录中创建 minfree 文件,指定用于保存故障转储文件的最小空闲磁盘空间。可以 KB (nnnk)、MB (nnnm) 或文件系统大小百分比 (nnn%) 的形式指定此参数。savecore 命令会在写入故障转储文件之前访问此文件。如果写入故障转储文件(根据大小)会减少空闲空间量并使其低于 minfree 阈值,则不写入转储文件,并记录一条错误消息。有关从此情况中恢复的信息,请参见如何从完整的故障转储目录中恢复(可选的)。
指定重新引导系统时不应运行 savecore。不推荐使用此转储配置。如果已将系统故障转储信息写入交换设备并且未启用 savecore,则系统开始交换时将覆盖故障转储信息。
指定用于存储故障转储文件的备用目录。在 Oracle Solaris 11 中,缺省目录是 /var/crash。
强制更新基于 /etc/dumpadm.conf 文件内容的内核转储配置。
修改转储配置以在重新引导时自动执行 savecore 命令,即此转储设置的缺省值。
修改转储配置以控制重新引导时 savecore 命令的操作。on 设置允许以压缩格式保存核心文件。off 设置会自动解压缩故障转储文件。由于故障转储文件可能非常大,而以压缩格式保存需要的文件系统空间较少,因此缺省值为 on。
示例 1-1 修改故障转储配置
在此示例中,所有内存都将转储到专用转储设备 /dev/zvol/dsk/rpool/dump,在保存故障转储文件后可用的最小空闲空间必须为 10% 的文件系统空间。
# dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash Savecore enabled: yes Save compressed: on # dumpadm -c all -d /dev/zvol/dsk/rpool/dump -m 10% Dump content: all pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash (minfree = 5697105KB) Savecore enabled: yes Save compressed: on
# cd /var/crash
如果您不确定故障转储的位置,请使用 dumpadm 命令来确定系统中配置为存储内核故障转储文件的位置。例如:
# /usr/sbin/dumpadm Dump content: kernel pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash Savecore enabled: yes Save compressed: on
# /usr/bin/mdb [-k] crashdump-file
通过假定文件为操作系统故障转储文件来指定内核调试模式。
指定操作系统故障转储文件。
例如:
# /usr/bin/mdb -K vmcore.0
或者,可以按如下所示指定命令:
# /usr/bin/mdb -k 0
> ::status . . . > ::system . . .
要在检查内核故障转储时使用 ::system dcmd 命令,核心文件必须为内核故障转储文件,且必须在启动 mdb 实用程序时指定了 -k 选项。
> $quit
示例 1-2 检查故障转储信息
以下示例显示 mdb 实用程序的样例输出,其中包括系统信息,并列出在此系统的 /etc/system 文件中设置的可调参数。
# cd /var/crash # /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.10 Generic sun4v > ::system set ufs_ninode=0x9c40 [0t40000] set ncsize=0x4e20 [0t20000] set pt_cnt=0x400 [0t1024] > $q
在此情况下,系统崩溃,但 savecore 目录中没有任何可用空间,并且您要保存一些关键的系统故障转储信息。
# savecore [ directory ]
示例 1-3 禁用故障转储的保存
此示例说明如何在系统中禁用故障转储的保存。
# Dump content: all pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash (minfree = 5697105KB) Savecore enabled: no Save compressed: on
示例 1-4 启用故障转储的保存
此示例说明如何在系统中启用故障转储的保存。
# dumpadm -y Dump content: all pages Dump device: /dev/zvol/dsk/rpool/dump (dedicated) Savecore directory: /var/crash (minfree = 5697105KB) Savecore enabled: yes Save compressed: on