跳过导航链接 | |
退出打印视图 | |
解决 Oracle Solaris 11.1 中的典型问题 Oracle Solaris 11.1 Information Library (简体中文) |
在处理系统故障转储信息时,请记住以下几点重要内容:
必须承担 root 角色才可以访问和管理系统故障转储信息。请参见《Oracle Solaris 11.1 管理:安全服务》中的"如何使用指定给您的管理权限"。
请勿禁用系统上用于保存系统故障转储的选项。系统故障转储文件提供了用于确定系统崩溃原因的非常有价值的方法。
在将重要的系统故障转储信息发送给客户服务代表之前,不要删除这些信息。
系统崩溃可能是由于存在硬件故障、I/O 问题和软件错误而引起的。如果系统崩溃,则会在控制台中显示一条错误消息,然后向转储设备中写入物理内存的副本。然后,将自动重新引导系统。重新引导系统时,将执行 savecore 命令,以从转储设备中检索数据,并将保存的故障转储文件写入 savecore 目录。保存的故障转储文件提供了有助于诊断问题的非常有价值的信息。
故障转储信息以压缩格式写入 vmdump. n 文件中,其中 n 是标识故障转储的一个整数。随后,可在同一系统或其他系统中调用 savecore 命令以将压缩的故障转储文件扩展为名为 unix. n 和 vmcore.n 的文件对。还可以使用 dumpadm 命令配置重新引导时保存故障转储文件的目录。
将专用的 ZFS 卷用于交换区域和转储区域。安装后,可能需要调整交换设备和转储设备的大小或者可能需要重新创建交换卷和转储卷。有关说明,请参见《Oracle Solaris 11.1 管理:ZFS 文件系统》中的"管理 ZFS 交换和转储设备"。
savecore 命令在系统崩溃后会自动运行以从转储设备检索故障转储信息并写入一对文件,名称分别为 unix.x 和 vmcore.x,其中 x 标识转储序列号。这些文件共同表示保存的系统故障转储信息。
注 - 故障转储文件有时容易与核心转储文件混淆,后者是在应用程序异常终止时写入的用户应用程序的映像。
故障转储文件保存在预先确定的目录中,该目录缺省为 /var/crash/。在先前的发行版中,除非手动使系统将物理内存的映像保存到故障转储文件中,否则系统重新引导时会覆盖故障转储文件。现在,缺省情况下便可保存故障转储文件。
使用 dumpadm 命令可以管理系统故障转储信息。有关更多信息,请参见使用 dumpadm 命令管理系统故障转储信息。
使用 mdb 实用程序可以检查控制结构、活动表、正常运行或崩溃的系统内核的内存映像,以及有关内核运行的其他信息。充分发挥 mdb 实用程序的潜能需要对内核有详细的了解,这不在本手册的讨论范围之内。有关使用此实用程序的信息,请参见 mdb(1) 手册页。
使用 dumpadm 命令可以管理 Oracle Solaris OS 中的系统故障转储信息。
使用 dumpadm 命令可以配置操作系统的故障转储。dumpadm 配置参数包括转储内容、转储设备以及保存故障转储文件的目录。
转储数据以压缩格式存储在转储设备上。内核故障转储映像的大小可以为 4 GB 或更多。压缩数据意味着转储速度更快且转储设备需要的磁盘空间更少。
当专用转储设备(而不是交换区域)是转储配置的一部分时,对故障转储文件的保存是在后台运行的。这意味着正在引导的系统不等 savecore 命令完成就进入下一步骤。在较大的内存系统中,可在 savecore 完成前使用系统。有关潜在问题,请参见savecore 行为的更改。
缺省情况下,会保存 savecore 命令生成的系统故障转储文件。
通过 savecore -L 命令,您可以获取正在运行的 Oracle Solaris OS 的故障转储。此命令用于通过在某些发生故障的状态下(例如瞬态性能问题或服务故障)捕获内存快照,对正在运行的系统进行故障排除。如果系统已启动且您仍可以运行某些命令,则可以执行 savecore -L 命令将系统快照保存到转储设备,然后立即将故障转储文件写出到 savecore 目录。由于系统仍在运行,因此您只能使用 savecore -L 命令(如果已配置专用转储设备)。
转储配置参数由 dumpadm 命令管理。下表介绍了 dumpadm 的配置参数。
|
有关更多信息,请参见 dumpadm(1M)。
在系统启动过程中,svc:/system/dumpadm:default 服务调用 dumpadm 命令以配置故障转储参数。
具体地说,dumpadm 通过 /dev/dump 接口来初始化转储设备和转储内容。
完成转储配置后,savecore 脚本会查找故障转储文件目录的位置。然后,会调用 savecore 来检查故障转储,并检查故障转储目录中 minfree 文件的内容。