系统管理指南:高级管理

第 14 章 软件问题疑难解答(概述)

本章提供软件问题疑难解答的一般概述,其中包括有关系统崩溃的疑难解答以及查看系统消息的信息。

以下是本章中的信息列表。

疑难解答方面的新增内容

本节介绍此发行版中新增或已更改的疑难解答信息。

有关 Oracle Solaris 10 发行版中新增或已更改的疑难解答功能的信息,请参见以下内容:

有关新增功能的完整列表以及 Oracle Solaris 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》

Common Agent Container 问题

Oracle Solaris 10 6/06:Common Agent Container 是现已包括在 Oracle Solaris OS 中的独立 Java 程序。此程序可为 Java 管理应用程序实现容器。Common Agent Container 提供一种针对基于 Java Management Extensions (JMX) 和 Java Dynamic Management Kit (Java DMK) 的功能设计的管理基础结构。此软件由 SUNWcacaort 软件包安装,它驻留在 /usr/lib/cacao 目录中。

通常,容器是不可见的。但在以下两种情况下,您可能需要与容器守护进程交互:

有关如何解决这些问题的信息,请参见Oracle Solaris OS 中 Common Agent Container 问题的疑难解答

x86: SMF 引导归档文件服务可能在系统重新引导期间失败

Solaris 10 1/06:如果系统在基于 GRUB 的引导环境中发生崩溃,可能是 SMF 服务 svc:/system/boot-archive:default 在系统重新引导时失败。如果出现此问题,请重新引导系统并在 GRUB 引导菜单中选择故障安全归档文件。请按照提示重新生成引导归档文件。重新生成归档文件后,重新引导系统。要继续引导过程,可以使用 svcadm 命令清除 svc:/system/boot-archive:default 服务。有关基于 GRUB 进行引导的更多信息,请参见《系统管理指南:基本管理》中的“使用 GRUB 引导基于 x86 的系统(任务图)”

动态跟踪功能

Oracle Solaris 动态跟踪 (Dynamic Tracing, DTrace) 功能是一项全面的动态跟踪功能,借助该功能,可在一个全新级别观察 Solaris 内核和用户进程。使用 Dtrace 可以动态检测操作系统内核和用户进程,并记录您在所关注的位置(称为探测器)指定的数据,从而帮助您了解系统。每个探测器均可与用新的 D 编程语言编写的自定义程序相关联。DTrace 的所有检测过程都是完全动态的,并且可用于产品化的系统。有关更多信息,请参见 dtrace(1M) 手册页和《Solaris 动态跟踪指南》

kmdb 取代 kadb 作为标准的 Solaris 内核调试程序

kmdb 已取代 kadb,作为标准的“现场”Solaris 内核调试程序。

在进行实时内核调试时,kmdb 可实现 mdb 的所有强大功能和灵活性。kmdb 支持以下功能:

有关更多信息,请参见 kmdb(1) 手册页。有关使用 kmdb 对系统进行故障排除的逐步说 明,请参见《系统管理指南:基本管理》中的“如何使用内核调试器 (kmdb) 引导系统”《系统管理指南:基本管理》中的“如何在 GRUB 引导环境中使用内核调试器 (kmdb) 引导系统”

有关软件疑难解答任务的参考信息

疑难解答任务 

更多信息 

管理系统故障转储信息 

第 17 章

管理核心转储文件 

第 16 章

重新引导失败和备份问题等软件问题的疑难解答 

第 18 章

文件访问问题疑难解答 

第 19 章

打印问题疑难解答 

《系统管理指南:打印》中的第 13  章 “Oracle Solaris OS 中的打印问题疑难解答(任务)”

解决 UFS 文件系统不一致问题 

第 20 章

软件包问题疑难解答 

第 21 章

系统崩溃疑难解答

如果运行 Oracle Solaris OS 的系统崩溃,请向服务提供商提供尽可能多的信息,包括故障转储文件。

系统崩溃时应执行的操作

要记住的最重要的事情如下:

  1. 记录系统控制台消息。

    如果系统崩溃,则使其重新运行可能是最紧迫的事情。但是,在重新引导系统之前,请先检查控制台屏幕上的消息。这些消息可能有助于了解导致崩溃的原因。即使系统自动重新引导并且控制台消息已从屏幕上消失,仍然可以通过查看系统错误日志(/var/adm/messages 文件)来检查这些消息。有关查看系统错误日志文件的更多信息,请参见如何查看系统消息

    如果系统频繁发生崩溃并且无法确定其原因,请收集可从系统控制台或 /var/adm/messages 文件中获取的所有信息,并准备好以供客户服务代表检查。有关要为服务提供商收集的疑难解答信息的完整列表,请参见系统崩溃疑难解答

    如果系统在崩溃后无法成功重新引导,请参见第 18 章

  2. 同步磁盘并重新引导。


    ok sync
    

    如果系统在崩溃后无法成功重新引导,请参见第 18 章

查看系统崩溃后是否生成了系统故障转储。缺省情况下,会保存系统故障转储。有关故障转储的信息,请参见第 17 章

收集疑难解答数据

请回答以下问题,以帮助隔离系统问题。有关收集崩溃的系统的疑难解答数据的信息,请参见系统崩溃疑难解答核对表

表 14–1 确定系统崩溃数据

问题 

说明 

是否可以重现问题?

这一点很重要,因为在调试很难的问题时,可重现的测试案例是必不可少的。通过重现问题,服务提供商可以使用特殊设备构造内核,以触发、诊断和更正错误。 

是否使用了任何第三方驱动程序?

具有相同权限的多个驱动程序在内核所在的同一地址空间中运行,如果这些驱动程序存在错误,则会导致系统崩溃。 

系统在崩溃之前正在执行什么操作?

如果系统在执行异常的操作,例如运行新的负荷测试或遇到特别高的负荷,则可能导致系统崩溃。 

在系统崩溃之前,是否有任何异常的控制台消息?

有时,系统会在实际崩溃前显示故障信号,此信息通常很有用。 

是否向 /etc/system 文件中添加了任何调优参数?

有时,调优参数(如增大共享内存段,以使系统尝试分配比实际拥有内存更多的内存)会导致系统崩溃。 

问题是在最近开始的吗?

如果是这样,问题是否与对系统的更改同时出现?例如新的驱动程序、新软件、不同工作负荷、CPU 升级或内存升级。 

系统崩溃疑难解答核对表

可在为崩溃的系统收集系统数据时使用此核对表。

项 

数据 

系统故障转储是否可用? 

 

确定操作系统发行版以及相应软件应用程序的发行版级别。 

 

确定系统硬件。 

 

包括 sun4u 系统的 prtdiag 输出。包括其他系统的资源管理器输出。

 

是否安装了修补程序?如果已安装,请包括 showrev -p 输出。

 

问题是否可重现? 

 

系统中是否有任何第三方驱动程序? 

 

系统在崩溃前正在执行什么操作? 

 

在系统崩溃前是否有任何异常的控制台消息? 

 

是否向 /etc/system 文件中添加了任何参数?

 

问题是在最近开始的吗?