跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:常见任务 Oracle Solaris 11 Information Library (简体中文) |
系统崩溃可能是由于存在硬件故障、I/O 问题和软件错误而引起的。如果系统崩溃,则会在控制台中显示一条错误消息,然后向转储设备中写入物理内存的副本。然后,将自动重新引导系统。重新引导系统时,将执行 savecore 命令,以从转储设备中检索数据,并将保存的故障转储文件写入 savecore 目录。保存的故障转储文件为支持提供商提供了非常有价值的信息,可帮助诊断问题的原因所在。
故障转储信息以压缩格式写入 vmdump. n 文件中,其中 n 是标识故障转储的一个整数。随后,可在同一系统或其他系统中调用 savecore 命令以将压缩的故障转储文件扩展为名为 unix. n 和 vmcore.n 的文件对。还可以使用 dumpadm 命令配置重新引导时保存故障转储文件的目录。
对于具有 Oracle Solaris ZFS 根文件系统的系统,专用的 ZFS 卷将用于交换和转储区域。有关更多信息,请参见《Oracle Solaris 管理:ZFS 文件系统》中的"管理 ZFS 交换和转储设备"。
如果在 GRUB 引导环境中基于 x86 的系统发生系统崩溃,则管理 GRUB 引导归档文件的 SMF 服务 svc:/system/boot-archive:default 可能在下一次系统重新引导时失败。有关基于 GRUB 引导的更多信息,请参见《在 x86 平台上引导和关闭 Oracle Solaris》。
savecore 命令在系统崩溃后自动运行,以便从转储设备检索故障转储信息,并写入名为 unix.X 和 vmcore.X 的两个文件,其中 X 标识转储序列号。这些文件共同表示保存的系统故障转储信息。
故障转储文件有时容易与核心转储文件混淆,后者是在应用程序异常终止时写入的用户应用程序的映像。
故障转储文件保存在预先确定的目录中,该目录缺省为 /var/crash/。在先前的发行版中,除非手动使系统将物理内存的映像保存到故障转储文件中,否则系统重新引导时会覆盖故障转储文件。现在,缺省情况下便可保存故障转储文件。
使用 dumpadm 命令可以管理系统故障转储信息。有关更多信息,请参见dumpadm 命令。
使用 mdb 实用程序可以检查控制结构、活动表、正常运行或崩溃的系统内核的内存映像,以及有关内核运行的其他信息。要最大程度地发挥 mdb 的作用,需要具备有关内核的详细知识,这超出了本手册的范围。有关使用此实用程序的信息,请参见 mdb(1) 手册页。
此外,还可以将 savecore 保存的故障转储发送给客户服务代表,这有助于他们分析系统崩溃的原因。
使用 dumpadm 命令可以管理 Oracle Solaris OS 中的系统故障转储信息。
使用 dumpadm 命令可以配置操作系统的故障转储。dumpadm 配置参数包括转储内容、转储设备和保存故障转储文件的目录。
转储数据以压缩格式存储在转储设备中。内核故障转储映像的大小可以是 4 GB 或更大。压缩数据意味着转储速度更快,且转储设备所需的磁盘空间更小。
当专用转储设备(而不是交换区域)属于转储配置的一部分时,会在后台运行故障转储文件的保存。这意味着引导系统不等待 savecore 命令完成,便转到下一步。在较大的内存系统中,可在 savecore 完成前使用系统。
缺省情况下,会保存 savecore 命令生成的系统故障转储文件。
savecore -L 命令是一个新增功能,通过该功能可以获取当前运行的 Oracle Solaris OS 的故障转储。此命令用于通过在某些发生故障的状态下(例如瞬态性能问题或服务故障)捕获内存快照,对正在运行的系统进行故障排除。如果系统已启动,并且您仍可以运行一些命令,则可执行 savecore -L 命令将系统快照保存到转储设备,然后立即将故障转储文件写入 savecore 目录。由于系统仍在运行,因此如果配置了专用转储设备,则只能使用 savecore -L 命令。
|
有关更多信息,请参见 dumpadm(1M)。
转储配置参数由 dumpadm 命令管理。
在系统启动过程中,svc:/system/dumpadm:default 服务调用 dumpadm 命令以配置故障转储参数。
具体地说,dumpadm 通过 /dev/dump 接口来初始化转储设备和转储内容。
完成转储配置后,savecore 脚本会查找故障转储文件目录的位置。然后,会调用 savecore 来检查故障转储,并检查故障转储目录中 minfree 文件的内容。