收藏 分享(赏)

NetWare4.11操作系统的优化、排错指南.doc

上传人:cjc2202537 文档编号:5382998 上传时间:2019-02-27 格式:DOC 页数:80 大小:183.50KB
下载 相关 举报
NetWare4.11操作系统的优化、排错指南.doc_第1页
第1页 / 共80页
NetWare4.11操作系统的优化、排错指南.doc_第2页
第2页 / 共80页
NetWare4.11操作系统的优化、排错指南.doc_第3页
第3页 / 共80页
NetWare4.11操作系统的优化、排错指南.doc_第4页
第4页 / 共80页
NetWare4.11操作系统的优化、排错指南.doc_第5页
第5页 / 共80页
点击查看更多>>
资源描述

1、NetWare 的 SMPNetWare 支持多处理器提高了系统性能。可是在 SMP 带来 NetWare 性能提升的同时也带来了系统的复杂性。在 SMP 的环境中排错总是比在单 CPU 环境下要更为复杂。因为在单 CPU 的 NetWare 环境下排错比在 SMP 环境下要容易的多。通常最好我们再回到单 CPU 的环境下去排错, 除非我们知道了这个问题的解决方法。在 SMP 环境下发生的大多数问题,一般都是在返回单 CPU 内核时发生的。这样的问题非常容易确定它的原因,并没有给 SMP 环境下增加复杂性。如果问题并没有发生在单 CPU 环境下,这样对发现分析问题的原因就非常的有用。特别如异常

2、终止、挂起、和局域网通讯等问题,确定是否独立作用在 SMP 环境下就显得非常重要。1.1 SMP 的概述NetWare 和 SMP 的版本NetWare 4.11 的 SMP 是 IntraNetWare 的一部分。下面的内容针对于 NetWare 4.11 SMP。所有的内容也适用于 IntraNetWare for Small Business。但如果你的系统是 NetWare 4.10 SMP,Novell 对于这个产品的支持策略是这样的:NetWare 4.10 SMP 仅仅用于 OEM 版,Novell 不再对 NetWare 4.10 SMP 作技术支持。如果客户没有升级到 4.1

3、1,则必须找相应的 OEM 伙伴购买 SMP 支持包。SMP 和文件系统的性能NetWare 4.11 SMP 并没有提高文件系统的性能(除非服务器运行一个使用自己文件系统接口的数据库管理系统)。在当前发布的 NetWare SMP 软件中,所有文件系统的存取必须由处理器 0 来处理。服务器磁盘通道运行在接近最大能力时,运行在 SMP 环境下将加重服务器的负担并能够导致挂起和异常中止。SMP 和局域网性能提高局域网的性能是在 NetWare 上运行多处理的一个主要优点。局域网支持模块在 NetWare 4.11 SMP 环境下能够发挥处理器更高的性能。在负载比较重的网络环境下,SMP能够明显的

4、提高系统,解决导致网速减慢和利用率的问题。1.2 SMP 的安装调试SMP 安装的问题在新版 IntraNetWare 中,INSTALL.NLM 包括一个菜单选项“Multi CPU Options” 这个选项将允许你安装或卸载 SMP。SMP 支持能够被手工的打开和关闭。手工打开 SMP 添加如下 3 行到 STARTUP.NCF 文件中:LOAD MPS14.PSM ;或者其他的适合你的硬件的 PSMLOAD SMP.NLMLOAD MPDRIVER.DLL为了更好的使用 SMP,推荐添加“set upgrade low priority threads=on“ 到 AUTOEXEC.N

5、CF 文件中。这能够防止象压缩和下级分配情况下不能够获得足够处理器时间的问题。如果你在对高利用率排错时或没有使用 SMP, 关闭此参数。添加完这几行后,重启服务器。要确保对你的硬件使用的是正确的平台支持模块。如果你并不了解你要使用的 PSM 模块的话,最好使用自动安装或联系你的硬件供应商。最好把这三行添加在 STARTUP.NCF 文件中的开始处并紧跟在装载补丁的命令行后。不推荐装载 SMP 模块之前去装载其他的模块,这将导致一些问题的产生。通过简单的在 STARTUP.NCF 中注释掉这三行,就可以把 SMP 关掉然后重起服务器。1.3 SMP 的排错安装过程中的排错因为多处理器驱动已被装载

6、,所以当它激活每一个附加的处理器时将给出相应的信息。如果你没有看到“Processor 1 activated.”或者在 MONITOR 下没有显示正确的处理器数量的话,SMP 并没有成功设置。首先检查是否使用了正确的 PSM。也要检查一下是否 BIOS 被正确的配置。在不使用 STARTUP.NCF 文件的条件下重起服务器,然后手工装载 SMP 模块看是否有相应的出错信息。如果有相应的出错信息,你能够从以下部分的 SMP 出错信息中找到相关的内容。使用”LOAD MPDRIVER 1”命令直接去激活 1 号处理器(代替使用 LOAD MPDRIVER ALL 命令),0 号处理器是第一个处理

7、器。SMP 的许可证在 NetWare 4.x 运行多处理的服务器上,有两种许可证。一种是常见的连接许可证(100,500,1000)。另外一种是 SMP 处理器许可证。普通的 NetWare 许可证最多支持 4 个处理器。如果你想同时使用 4 个以上的处理器, 就需要向 Novell 购买 SMP 处理器许可证。每一个 SMP 处理器许可证,允许你添加 4 个额外的处理器。 普通的硬件问题在你安装多处理器模块到 NetWare 服务器之前,你需要了解关于你的硬件的一些情况:1.确保你有一个兼容的 PSM。大多数服务器使用随 NetWare 4.11 发布的 MPS14.PSM 这个文件。而

8、Compaq 服务器使用 CPQSMP.PSM 这个模块。MPDETECT.NLM 文件(当在安装过程中选择 SMP 选项时,此文件自动被 INSTALL.NLM 调用)通常用于选择正确的 PSM。2. BIOS 也必须兼容于这个标准。因为多处理器表由 BIOS 创建,所以 BIOS 必须严格兼容于 Intel MP 标准。Intel MP 1.4 版本的标准,扩展了配置表。它是 95 年 7 月 1 日发布的。如果 BIOS 版本老于这个日期,那就不能保证兼容于这个标准。如果主板,特别是 BIOS 不完全的兼容这个标准,NetWare 多处理器模块将不会正常的运行。BIOS 在大多数支持多处

9、理器的服务器上有相应的选项可以关掉或打开对附加处理器的支持。为了使 SMP 正常运行,附加处理器的选项必须被打开。Compaq 服务器要求操作系统必须在 BIOS 配置里被确定。同样地,为了使 NetWare 多处理器模块正确的运行,NetWare SMP 也必须在 BIOS 配置里被确定。3.PCI 问题PCI 重新定义了标准。因此,在标准修改之前所有的硬件设计和制造将有可能产生与系统的兼容性问题。Novell 不推荐你安装 NetWare SMP 在服务器上,除非 PCI 的版本是最新的 2.1 版本。4.如果你的服务器上有第二个 I/O APIC (高级可编程中断控制器)并且使用 MPS

10、14.PSM 的话,NetWare SMP 将使用 APIC 来提高均衡 I/O 模式的性能和扩展性。如果你使用其他的硬件支持模块,检查你的硬件供应商对于第二个 I/O APIC 的支持情况。通常第二个 I/O APIC 是被缺省关闭的,必须通过服务器的配置工具来打开它。网络通讯问题NetWare 4.11 SMP 要求 ODI 3.3 网络驱动,而不能在 ODI 3.2 网络驱动环境下正常的工作。NetWare 4.11 SMP 将检查网卡驱动的 ODI 版本和网络支持模块(.LAN 和ETHERTSM.NLM 以及 MSM.NLM)如果这些模块是根据老的 ODI 标准写的话系统将会报错。如

11、果 ODI 的版本不是 3.3 或最新的话,SMP 将不会正常的工作。NetWare 4.11 能够和 NetWare 4.10 下相同版本的 ODI 正常的工作。但是只有通过 Novell 认证的 ODI 3.3 的网络驱动才能够被 NetWare 4.11 使用。 SMP 和第三方的 NLMs 大多数的 NLMs 可以正常运行在 NetWare 4.11 的 SMP 环境下。如果在单处理器环境 下,某个 NLM 不能正常运行,则它在 SMP 环境下会产生更多的问题。在 SMP 环境下运行第三方的 NLMs 之前,推荐应该检查一下软件供应商对 NetWare SMP 兼容的支持情况。 SMP

12、 和 SFT III“SFT III“与 NetWare SMP 不兼容,SFT III 是一种非对称处理解决方案,因此如果对 NetWare SMP 的扩展性有要求的话,SFT III 不是一个合适的冗余解决方案。 SFT III 与 NetWare SMP 互不兼容并且永远不会互相兼容,它们不能够被同时使用。但是,SFT III 能够被设置为使用两个处理器。双处理器能够与 SFT III 实施非对称多处理。双处理器支持 SFT III 允许 IO 引擎使用一个处理器,而另外一个处理器被 MS 引擎使用。如果处理器多于两个,则前两个处理器被使用,其他的附加处理器将被忽略。 第二章 NetWa

13、re 的 ABEND2.1 NetWare ABEND 的概述(Abend 是 Abnormal END of Program 的缩写)当一个异常终止信息显示在服务器控制台上时,NetWare 系统或 CPU 检测到了严重的错误并跳到了异常错误处理模块,该模块终止 NetWare 执行并在控制台上为管理员显示异常错误信息。一个错误条件分支或失败的产生,被 CPU 检测到叫“处理器异常”,被 NetWare 系统检测到叫“软件异常”。异常错误处理模块被 NetWare 设计成公共函数,可被其它操作系统模块或 Novell.NLM 调用。NetWare 3 和 NetWare 4 操作系统不停的监

14、测着很多服务器的情况,以保证正确的运行。如果 NetWare 检测到一个操作可能威胁到内部数据的完整性(如函数调用过程中一个非法参数被检测通过),它将突然的关闭活动的进程并在屏幕上显示相应的异常信息。产生异常的主要原因是 NetWare 系统为保护内部数据的稳定性和完整性。例如:如果操作系统检测到一个非法的指针指向了高速缓存并继续在运行,数据将变得不可用或被中断。因此异常处理是 NetWare 用来保护自己和用户数据,使之免遭到不可预知错误的破坏。2.2 NetWare ABEND 的类型 如果异常中断信息在正文中包括处理器异常,则异常中断是被 CPU 检测出的查看处理器异常异常中断 。如果异

15、常中断信息没有包括字处理器异常,则异常中断是被 NetWare检测出的查看软件异常。如果异常中断信息涉及 NMI 奇偶错误或机器检测,则异常中断是硬件引起的查看硬件异常。如果异常中断信息包括“CPU Hog Detected by Timer”,则异常中断的产生是因为在服务器参数 CPU 占用延时总数(CPU Hog Timeout Amount)这段时间里,一个进程并没有放弃占用 CPU 的查看 CPU 占用异常。如果多于一种异常中断的信息出现,应首先解决硬件异常中断。2.2.1 处理器异常中断当是由 CPU 检测到异常中断的,这就叫做处理器异常。处理器异常总是在异常中断信息中包括字处理器异

16、常。 例如 Abend: Page Fault Processor Exception. A processor exception occurs 异常中断信息显示了关于异常中断的其他信息,包括在异常中断时运行的进程。如果运行进程是一些服务器进程,那么知道进程的名称是很有帮助的。有时这总是与异常中断有关。如果运行进程是一个 ISR(Interrupt Service Routine),那么问题通常是 LAN 或是磁盘驱动程序引起的。有时是硬件问题引起的。2.2.2 软件异常ABEND 检测到软件调用异常,NetWare 不断的监视服务器的状态以保证正确的操作。如果 NetWare 检测到了可能

17、威胁到它数据完整性的一个条件 (例如一个无效的参数的功能调用或硬件错误正在被传递),它就突然停止活动的处理器并在控制台上显示一个 ABEND 消息。因此,ABEND 是 NetWare 的保证它的数据完整性并且对数据损坏保护的方法。软件异常的问题,简单的可以是停掉软件,如果停掉软件服务器是稳定的,再启动软件直到问题的再现。2.2.3 硬件 Abends硬件的 ABEND 是 Non-Maskable Interrupt (NMI) 错误或是机器检测错误,这里有 2 种 NMI 错误消息。Abend:NMI 奇偶错误通常发生在 IO 检测中。IO 检查 Abend 的来源可能是任何服务器的任何地

18、方。Abend:NMI 奇偶错误通常发生在系统板上。系统板 Abend 的来源可能是在系统中的任何地方,但是很可能在系统板或它的内存上。如果你的服务器产生了硬件的 ABEND,运行一些硬件的诊断程序来帮助确定问题的原因。尝试去更换部分硬件来确定问题。更换硬件按照如下顺序。1.内存 2.电源3.系统主板2.2.4 CPU Hog AbendsCPU Hot abends 发生在当进程占用系统资源不放弃时, CPU 在特定时间超过了 CPU Hot 指定了超时记数。CPU Hog 超时处理开始了 ABEND 自动恢复机制去挂起线程。依靠自动恢复参数的设置,服务器可以重新启动,因此释放 CPU 资源

19、。查看 ABEND 消息或 ABEND 日志文件去确定运行处理 ABEND 问题的时间。当一个 CPU Hog ABEND 发生了,运行处理器显示了一个 ABEND 的消息显示了问题的代码。尝试移去在处理显示中的 NLM 模块。2.3 异常中断的解决当你遇到服务器出现异常中断或一些其它故障时,在解决问题前先考虑以下一些步骤。如果异常中断经常出现,可通过执行升级最新的补丁程序、更新网卡及磁盘驱动来解决。考虑以下所列的一些步骤:1、装载所有你能找到适合你的 NetWare 操作系统的补丁程序。补丁是用来解决已知问题的。2、升级驱动程序。每个局域网和板卡的生产厂商必须开发他们自己的驱动程序。唯一的确

20、定你有最高版本的驱动程序的办法就是从它们各自的厂家哪下载最新版本的程序。3、检查 NLMS,它也许是过期的。4、检查 DOS 分区,确认没有病毒。5、仔细检查中断等等。6、清理和重新插好板卡和电缆(小心静电)。解决异常中断 数据收集当收集数据时最常见的缺点就是不能超越表面的征兆去看更深的一层。下面的这些问题和建议会帮助你通过一个高层次来看问题。使用以下的列表来思考这种可能发生在你服务器或网络导致问题的事情。1、记录异常终止信息并观察其倾向。异常终止信息通常是和软件错误相一致的,同时信息并不能表现出硬件失败。2、检查系统错误日志(sys:systemsys$log.err)找到没有在其他地方表现

21、出来的线索。在异常终止前某个节点上的错误,某个文件上的错误,一个打印队列, VOLUME DISMOUNTS,等等。3、在异常终止时那些资源正在被使用。4、有没有电源的问题,在供电处或电源上。5、有没有一些数据库功能正在运行,比如重索引。6、网络利用率、磁盘利用率是否很高。7、当异常终止还在屏幕上时,运行 DEBUG 程序并记录基础信息,比如 EIP(指令指示器),运行 NLM,运行过程。8、使用 CONLOG.NLM 获得你也许会错过的控制台信息。9、是否有客户端程序正在运行?10、本身的服务器环境有改变吗。包括下列问题:- 用户数是否增长?- 是否有新的软件和升级软件被安装?- 是否有人用

22、平时不同的方法使用软件,比如数据库索引?- 是否有新的或不同的硬件?- 局域网、路由器、电缆线是否有改变?- 工作站或文件服务器是否有物理上的移动?- 局域网里有没有加入新的打印机?- 有没有功率损耗?- 参数有没有改变?11、有没有新的或强的电磁干扰(EMI)在服务器或电缆附近?大的马达,线缆跨过照明线路,真空吸尘器,发报机等等。12、设置 DSTRACE=on 然后,观察 DSTACE 屏幕上的错误,或一个“All Processed = NO”的信息。13、文件损坏、打印问题?14、MONITOR.NLM 和 INSTALL.NLM 是非常有价值的 NetWare 组件用来检查你的服务器

23、的情况。用它们查找信息,比如:- 上升的接收包的缓存- 有没有事件控制块(ECB)可用- 低服务器内存。CACHE BUFFER 的百分比应该通常在 60%70%- LRU 设置时间- DIRTY CACHE BUFFER 居高不下- 局域网错误率高(超过收发包总数的百分之十)- 高利用率(如果在某时它停在高利用率上 1020 分钟)- 检查服务器过程,看是否超过了最大值- 分区、卷和镜像信息- 观察和编辑 NCF 文件解决异常终止 隔离和复制解决问题的实质主要是在“问题隔离” 和“问题再现”之间。尽量使问题隔离,同时尝试找到使问题再发生的事件次序。在最简单的条件中,一个异常终止可能是由于硬件

24、失败或NLMS 失效引起的。问题隔离和问题再现几乎是相同的。主要的不同在问题再现,你特意的要使问题再次出现。这可能是一个 NLM 每次装载,服务器异常终止。或可能是某人做拷贝操作的同时有人正在登陆服务器,导致服务器死机。如果你能找到象刚才那样的可再生的问题,你就可以在某时排除一个可变数,再次测试,看看问题是否解决了。在其他情况时,问题隔离数据可能没有给你任何线索,所以你不得不尝试做不同的事情,看是否将问题隔离在系统或其他组件里了。你可能使问题隔离在磁盘通道因为问题只发生在对磁盘操作时。或你可能发现问题和某个 NLM 有关系,比如备份。当打算隔离问题时,考虑下面的系统:- 磁盘通道, - 局域网

25、通道,- 系统主板, - COM 端口,- NETWARE 操作系统, - 第三方 NLM 产品- 电缆线 - 某种工作站( WinNT vs. Win95 vs. Win 3.1 vs. DOS), - 某种 SHELL 程序( VLM, client32, 3rd party client).记住这样做的目的是要找出使问题再现的事件顺序,或至少把问题隔离到系统、一个 NLM 或一块硬件板卡上,它们总是和异常终止有关。下面方法将帮助你解决问题:下面是问题隔离和问题再现的一些办法1、用“SERVER NS , ”或“SERVER NA”启动服务器而不用分别执行STARTUP.NCF 或 Aut

26、oexec.ncf。装载“SERVER NS”将允许你启动 服务器而不自动 MOUNTING 卷。2、异常终止信息给我们建议了些什么。局域网通道,磁盘通道,内存恶化,系统主板问题,某个 NLM,打印,某个硬件板卡,某个网络片段,一个工作站,路由器,周围环境的条件,等等。NetWare 4.11,NetWare4.2,和 NetWare 5 将创建一个文件叫做ABEND.LOG 在 sys:system 目录下。它包括当前的以前的异常终止 信息,是在异常终止时写进模块里的。3、用“SERVER NA”来防止 AUTOEXEC.NCF 运行。然后在某时手工装载NLM。4、用“SERVER NDB”

27、来防止装载 DS 数据库,因此排除了目录服务,注意你不能在没有数据库装载时登陆。5、硬件的寿命是多大?如果环境不改变,硬件是很少出错的。不要总是假想新的硬件是好的。6、硬件会遭受静电打击吗?静电不是总有破坏性的,通常它会对你的硬件引起退化损伤,使其只能暂时的工作。7、检查第三方厂商的产品,看看是否他们知道你正经历的这个问题。8、临时卸载第三方 NLM 程序,卸载病毒检测程序和服务器/局域网监 测NLMS 程序。9、是否有电的问题。在电源或在电的供给方,检查电源的散热风扇,同样检查 CPU 风扇。高温会导致硬件失败。10、一个干燥,炎热和多尘的环境会因为静电的释放导致硬件损伤,它也会使 NMI

28、出错率升高。11、避免使用中断 15、2 和 9,按这个顺序。12、尝试隔离问题到硬件子系统,也就是说:局域网通道,磁盘通道,和系统主板。你可以交换硬件或尝试不同的中断或插槽。13、检查你有当前最新的 BIOS 版本给你的硬件14、如果可用的话,在机器上运行硬件诊断程序15、如果机器的局域网通道有问题,试试换用其他生产厂商的网卡。16、SERVER.EXE,就像其他的文件一样,也会损坏。一个损坏的SERVER.EXE 是很困难被跟踪的。如果你能降低环境要求,但你仍然有这个问题,尝试换一个新的 ERVER.EXE。同样的道理也适用于其他服务器上的 NLM。不要复制错误的 SERVER.EXE 文

29、件。17、运行 DSREPAIR,或一个 VERPAIR。18、“LOAD INSTALL”并且观察分区或镜像信息。INSTALL 动态的重新找回这些信息。这里的分区表可能是坏的,举个例子,当你尝试操作分区信息在 INSTALL 里,你将得到一个特殊的错误因为这个表不能被读取。19、通常的快速以太网卡是要求 5 类双绞线的。使用错误的电缆线会导致错误。28、繁重的输入输出有时会给服务器重压导致错误的发生。试试不间 断的做 XCOPY *.* 或 NCOPY。从几个工作站上尝试。 第三章 内部的调试器(Debug)NetWare 内部的调试器(Debug)在服务器异常中断 (Abends)中恢复

30、是非常有帮助的。恢复进程包括详细说明了怎么判定哪个部件检测到的差错信息 ,怎么鉴定处理器异常,怎么判定操作系统的运行状态 ,怎么使用调试器到收集有用的信息,和两个重启服务器的调试技术。此进程被设计用来帮助你在客户端和服务器中保存缓存中的数据,并且减少由服务器 ABEND 系统崩溃引起较长宕机时间的可能性。3.1 概述在 Abend 期间,当一个服务器突然地挂起时,系统将留下一些未知数量的系统未响应磁盘请求,如果你在这时重新启动服务器,这些重要 I/O 将丢失去并且文件系统可能崩溃。使用 NetWare 的内部调试器,你能正常重启一个异常中断的服务器并且安全的恢复系统。根据情况,重新启动和 sh

31、utdown 过程能保存缓冲了的用户数据,将未处理的文件系统 I/O写到磁盘,避免通过 VREPAIR 修复文件系统的消费时间。此进程被设计用来帮助你在客户端和服务器中保存缓冲的数据,并且减少由服务器 ABEND,系统崩溃引起较长宕机时间的可能性。Abend 条件有两个。首先,Abend 表示提前防止一个意外的严重错误。第二,因为意外的错误环境,系统将保持一个异常的状态,其中包括许多没有作完的任务,或更坏的是一些任务可能留下部分作完的工作,引起文件和数据库不正确.如在 NetWare 中冗余的目录项目表格( DET ) 与文件分配表格(FAT)镜象不匹配。Abend 可能发出在数据结构检测低级

32、软件一致性中的错误,例如堆栈溢出。 但是他们通常是软件和硬件 CPU 异常引起的,例如:页差错(Page faults)通用处理器异常保护( GPPE )不可屏蔽中断机器检查Abends 总是发出信号针对有缺点的系统组件或是硬件组件或是有缺陷的软件模块。当你遇见一个异常中断的服务器时,你应该记录全部的 Abend 显示信息。3.2 显示 Abend 进程当一条 Abend 消息显示在服务器控制台,NetWare 系统或服务器 CPU 检测到了一个严重的错误条件(差错) 并且跳进了 NetWare 的差错处理器。这个处理器占用 NetWare 资源,并在服务器控制台上显示 Abend 消息,告诉

33、服务器主管立即行动。我们将参考 CPU 检测到所有的错误来讲述处理器异常。我们将参考 NetWare 检测(NetWare -detected)的错误来讲述软件异常。Processor Exception = Any error detected by the CPUSoftware Exception = Any error detected by NetWare NetWare 的差错处理器( 功能)被操作系统作为公共的功能,因此它能被任何操作系统模块或 Novell NLM 使用。然而,因为这功能没被记录并且因此没由第三方的开发者使用,你可以安全地假设导致 Abends 的软件异常是被

34、NetWare 所检测的。3.3 显示 Abend 恢复过程在图 1 的流程图中,描述了你能采取的不同行动,取决于 Abend 的类型和服务器的状态。图表通过若干决定引导你并且然后向你提供一些一般的问题解决和系统重启建议。过程包括 5 个步骤:步骤 1:决定谁检测了差错步骤 2:辨别处理器异常步骤 3:收集问题解决信息步骤 4:辨别完成情况步骤 5:尝试重启 NetWare在图表的顶部,你被要求决定谁检测了差错(NetWare 或 CPU )。我们称之为“ 差错检测 ”。一旦你决定了 Abend 的来源,你可进入软件或硬件图表。如果差错被 CPU 检测(硬件), 你必须决定检测的差错类型。下一

35、步,你必须决定差错的上下文,差错是否在进程时间(process-timg)或中断时间(interrupt-time)发生了。并且最后,我们向你提供一条推荐的途径为孤立错误的模块或部件和重启系统并且安全恢复的推荐技术。Fault detection: Was the fault detected by NetWare or the CPU?Fault identification: What type of fault was detected by the CPU?Fault context: Did the fault occur during process-time or interru

36、pt-time? 图 1 : Abend 恢复过程。Step 1: Determine Who Detected the FaultStep 1:确定谁发现的故障下面的一个 ABEND 情况,你首先的任务是确定故障不管是发现在 NetWare 系统或在 CPU 上。当故障发现是在 CPU 上时这个 ABEND 消息的语法简单的包含了一个短语“Processor Exception“,如果短语 ”Processor Exception“没有出现在 ABEND 的描述文字中,你能知道 ABEND 的情况是软件异常在 NetWare 上。Processor Exception Example:表 3

37、 是一个 ABEND 的消息显示在服务器的控制台上当发生了 CPU 侦测到一个失败并传送控制到 NetWare 的失败处理者时。3 和 4 行是 ABEND的描述。Software Exception Example:表 4 是一个 ABEND 的消息显示发生在 NetWare 内核侦测了堆栈溢出时。他没有短语“Processor Exception“ 在 ABEND 的描述中(3 行)告诉ABEND 是由于软件异常引起的。Step 2:识别处理器的异常类型这步仅仅是处理器异常的。如果你的 ABEND 显示失败侦测是软件的,则跳过到第 3 步。处理器的异常恢复要求你去识别消息的来源。Intel

38、 Pentium 能产生 17 个不同类型的处理器异常。 Intel 80486 能产生 16 个。在这部分,我们提供了重新启动技术在 4 个异常的情况下:Page Fault, General Protection Processor Exception, Nonmaskable Interrupt or Machine Check, And Invalid Opcodes.Page Fault:在 NetWare 4.x 服务器上,内存分页是激活的。如果一个无效的地址是使用在 Novell 或第三方的软件模块。一个处理器异常是发生在 CPU 上的。因为 NetWare 使用了 CPU 的内

39、存分配页和映射工具,无效的地址包括了一些任意的保护或外部模块的已注册的地址空间的一些地址。General Protection Processor Exception (GPPE):在 NetWare 3.11 和 3.12 服务器上,内存地址是有限地址空间限制在物理内存中。如果 NetWare 或第三方模块尝试去访问内存地址超过限制,则一个 GPPE 发生在 CPU 上。NonMaskable Interrupts (NMI) and Machine Checks:NMI 几乎总是奇偶错误的结果。当 Intel Pentium 芯片机器检测到内部硬件错误时。这与内存有关系的错误可能发生在系统

40、主板上的主要内存中,或在附加项内存板上,或在共享范围的 I/O 卡上。Invalid Opcodes :这个异常发生在当 NetWare 或第三方模块去执行编码可是那里没有包含有效的编码的情况下。Identifying Processor Exceptions:实例 由于 Page Fault 的 ABEND 问题。象表 5,总是包含短语“page fault“描述信息。GPPE 在表 6 中同样是容易识别的。表 7 是 ABEND 发生在 NetWare 当 CPU 收到一个 NMI 时。表 8 是当一个软件模块去尝试执行一个无效的代码时。Step 3:收集发现并修理故障的信息在服务器重新启

41、动之前,你能收集服务器的一些信息来能帮助你解决关于 ABEND 的情况。Step 4:设法重启服务器收集了相关的 ABEND 信息后,你能尝试使用 NetWare 内部的 DEBUG 去重启服务器。你的目的是重启服务器并允许运行 1-2 分钟。一般允许片刻等待比不允许好因为他允许磁盘 I/O 到 FLUSH 中。在这个时间,客户端的应用能再次去连接和允许他们的应用去保存数据和退出。之后,你可以 DOWN 掉服务器。3.4 使用 NetWare 内部的 DEBUG 去重启服务器NetWare 3.x and 4.x 包含了一些诊断工具去调用 DEBUG。DEBUG 允许一个 OS 或 NLM 程

42、序去插入一个短裂点获得并记录内存 DUMP 在操作系统异常期间。内部的 DEBUG也能去使用修改一个 ABEND 服务器的状态并且重启系统。获得一个 ABEND 状态,你能使用得到。表 11 显示了在控制台的 ABEND 状态。Debugger Options在你工作期间的 DEBUG,你将需要使用 DEBUG 选项去收集相关的信息和重新启动服务器,因为有许多相关的选项.On-Line Help:有 4 个帮助屏幕可以在 DEBUG 时使用H for the general debugger help screen.H for the dot help screen.HE for help w

43、ith debugger expressions.HB for help with breakpoints表 12,13 显示了在“H”和“.H” 时的情况.Abend Message DisplayDOT-A(.a )显示了 ABEND 错误的描述(表 14)如果在 DEBUG 中没有 ABEND 情况出现,则显示一个键盘请求。Registers and Flags Display使用“R”命令显示 CPU 的寄存器和标记(表 16)Control Register DisplayRC 命令只能使用在 NetWare4.x 上显示 CPU 的 control registers (表 20)

44、。CR2 信息是多数帮助你在一个 page fault 期间。CR2 包含了显示地址关联了 Page Fault。页错误恢复使用页错误, CPU 状态将被保存。这意味产生错误的非法指令没被执行。当你偶然进入调试器,将触发错误指令。如果你能成功地隔离进程(使用线程隔离),你将能重启服务器并且安全地恢复。从页错误恢复包括如下几个步骤:1. 记录 Abend 消息。2. 进入调试器使用组合键。3. 使用 .R 调试器命令显示运行的进程并且记录运行的进程信息。4. 使用?命令显示你的区域并且记录 NLM 和功能信息(如果可以) 。5. 使用 RC 命令显示寄存器并且记录 CR2 的内容.6. 通过设置

45、 EIP 到 CSleepUntilInterrupt 隔离运行线程(注意大小写)。7. 试着使用 G 命令重启服务器。8. 如果成功,再试你的客户连接,关闭你的应用程序,并且允许所有的未解决的 I/O 写到磁盘,如果在这时你不能重启服务器,使用你收集的信息,哪个模块可能正在产生错误,重新启动并且继续 10 步骤9. 使用服务器控制台 DOWN 命令重启服务器.10. 通过移除有问题的软件模块或使用 DOMAIN.NLM 装载保护域内的模块,来开始解决问题。列表 21 显示了这些步骤页错误恢复的分析恢复(列表 21)开始是原有的 Abend 消息(行 1 到行 10)。然后,我们进入调试器(

46、第 12 行 )并且在调试器序言后收到 CPU 寄存器和标志显示(行 14 到行 22)。我们首先注意到了,在内存正在使用的地址 00000000 将内存写入到立即指令(第 22 行) 。列表 21 : 页错误的恢复1: System halted Thursday, May 4, 1995 2:10:25 pm MDT2: 3: Abend: Page Fault Processor Exception (Error code 00000002)4: OS version: Novell NetWare 4.10 November 8, 19945: Running Process: Pro

47、Demo Process6: Stack: AC 1F 65 01 E7 66 03 F1 50 CA 65 01 03 00 00 007: D0 1F 65 01 09 00 00 00 B0 81 01 F9 54 CE 65 018: 39 67 03 F1 0B CB 65 01 B4 D0 65 01 B0 81 01 F99: Press “Y“ to copy diagnostic image to disk.10: Otherwise press “X“ to exit. 11:12: 13:14: Novell 386 Debugger15: (C) Copyright 1

48、987-1993 Novell, Inc.16: All Rights Reserved17: 18: Abend: Page Fault Processor Exception (Error code 00000002)19: EAX = 00000000 EBX = 016A40E4 ECX = 00000000 EDX = FAC0100020: ESI = F90181D0 EDI = 00000006 EBP = 01698F9C ESP = 01698F9C21: EIP = F1036D82 FLAGS = 00017246 (PF ZF IF NT RF)22: F1036D8

49、2 C70000000000 MOV EAX= ?,0000000023: # .R24: Running process pointer: FB00100025: Process name: ProDemo Process Address: FB00100026: Stack pointer: 1698E9827: Stack limit: 169601028: Scheduling priority: 029: Wait state: 0030: 00035CE4 24 7B 01 00 00 00 00 00-00 20 00 FB 73 73 73 73 $. .ssss31: 00035CF4 CC 32 63 F0 20 00 00 00-B0 F8 03 00 11 46 52 45 L2cp .0x.FRE32: 00035D04 4E 43 48 20 2D 20 43 41-4E 41 44 49 41 4E 00 FF NCH - CANADIAN33: # ?34: Address in PRODEMO.NLM at code start +00000D82h35: Previous: -00000014 F1036D6E PRODEMO.NLM|WriteAddress36: Current: 00000000 F1036

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 实用文档 > 简明教程

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报