本章提供软件问题疑难解答的一般概述,其中包括有关系统崩溃的疑难解答以及查看系统消息的信息。
以下是本章中的信息列表。
本节介绍此发行版中新增或已更改的疑难解答信息。
有关 Oracle Solaris 10 发行版中新增或已更改的疑难解答功能的信息,请参见以下内容:
有关新增功能的完整列表以及 Oracle Solaris 发行版的说明,请参见《Oracle Solaris 10 9/10 新增功能》。
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 目录中。
通常,容器是不可见的。但在以下两种情况下,您可能需要与容器守护进程交互:
其他应用程序可能会尝试使用为 Common Agent Container 保留的网络端口。
如果证书库遭到破坏,则可能需要重新生成 Common Agent Container 证书密钥。
有关如何解决这些问题的信息,请参见Oracle Solaris OS 中 Common Agent Container 问题的疑难解答。
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 可实现 mdb 的所有强大功能和灵活性。kmdb 支持以下功能:
调试程序命令 (dcmds)
调试程序模块 (dmods)
访问内核类型数据
内核执行控制
检查
修改
有关更多信息,请参见 kmdb(1) 手册页。有关使用 kmdb 对系统进行故障排除的逐步说 明,请参见《系统管理指南:基本管理》中的“如何使用内核调试器 (kmdb) 引导系统”和《系统管理指南:基本管理》中的“如何在 GRUB 引导环境中使用内核调试器 (kmdb) 引导系统”。
疑难解答任务 |
更多信息 |
---|---|
管理系统故障转储信息 | |
管理核心转储文件 | |
重新引导失败和备份问题等软件问题的疑难解答 | |
文件访问问题疑难解答 | |
打印问题疑难解答 | |
解决 UFS 文件系统不一致问题 | |
软件包问题疑难解答 |
如果运行 Oracle Solaris OS 的系统崩溃,请向服务提供商提供尽可能多的信息,包括故障转储文件。
要记住的最重要的事情如下:
记录系统控制台消息。
如果系统崩溃,则使其重新运行可能是最紧迫的事情。但是,在重新引导系统之前,请先检查控制台屏幕上的消息。这些消息可能有助于了解导致崩溃的原因。即使系统自动重新引导并且控制台消息已从屏幕上消失,仍然可以通过查看系统错误日志(/var/adm/messages 文件)来检查这些消息。有关查看系统错误日志文件的更多信息,请参见如何查看系统消息。
如果系统频繁发生崩溃并且无法确定其原因,请收集可从系统控制台或 /var/adm/messages 文件中获取的所有信息,并准备好以供客户服务代表检查。有关要为服务提供商收集的疑难解答信息的完整列表,请参见系统崩溃疑难解答。
如果系统在崩溃后无法成功重新引导,请参见第 18 章。
同步磁盘并重新引导。
ok sync |
如果系统在崩溃后无法成功重新引导,请参见第 18 章。
查看系统崩溃后是否生成了系统故障转储。缺省情况下,会保存系统故障转储。有关故障转储的信息,请参见第 17 章。
请回答以下问题,以帮助隔离系统问题。有关收集崩溃的系统的疑难解答数据的信息,请参见系统崩溃疑难解答核对表。
表 14–1 确定系统崩溃数据
问题 |
说明 |
---|---|
是否可以重现问题? |
这一点很重要,因为在调试很难的问题时,可重现的测试案例是必不可少的。通过重现问题,服务提供商可以使用特殊设备构造内核,以触发、诊断和更正错误。 |
是否使用了任何第三方驱动程序? |
具有相同权限的多个驱动程序在内核所在的同一地址空间中运行,如果这些驱动程序存在错误,则会导致系统崩溃。 |
系统在崩溃之前正在执行什么操作? |
如果系统在执行异常的操作,例如运行新的负荷测试或遇到特别高的负荷,则可能导致系统崩溃。 |
在系统崩溃之前,是否有任何异常的控制台消息? |
有时,系统会在实际崩溃前显示故障信号,此信息通常很有用。 |
是否向 /etc/system 文件中添加了任何调优参数? |
有时,调优参数(如增大共享内存段,以使系统尝试分配比实际拥有内存更多的内存)会导致系统崩溃。 |
问题是在最近开始的吗? |
如果是这样,问题是否与对系统的更改同时出现?例如新的驱动程序、新软件、不同工作负荷、CPU 升级或内存升级。 |
可在为崩溃的系统收集系统数据时使用此核对表。
项 |
数据 |
---|---|
系统故障转储是否可用? |
|
确定操作系统发行版以及相应软件应用程序的发行版级别。 |
|
确定系统硬件。 |
|
包括 sun4u 系统的 prtdiag 输出。包括其他系统的资源管理器输出。 |
|
是否安装了修补程序?如果已安装,请包括 showrev -p 输出。 |
|
问题是否可重现? |
|
系统中是否有任何第三方驱动程序? |
|
系统在崩溃前正在执行什么操作? |
|
在系统崩溃前是否有任何异常的控制台消息? |
|
是否向 /etc/system 文件中添加了任何参数? |
|
问题是在最近开始的吗? |
|