NetWare4.11操作系统的优化、排错指南_第1页
NetWare4.11操作系统的优化、排错指南_第2页
NetWare4.11操作系统的优化、排错指南_第3页
NetWare4.11操作系统的优化、排错指南_第4页
NetWare4.11操作系统的优化、排错指南_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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.11,则必须找相应的OEM伙伴购买SMP支持包。SMP和文件系统的性能NetWare 4.1

3、1 SMP并没有提高文件系统的性能(除非服务器运行一个使用自己文件系统接口的数据库管理系统)。在当前发布的NetWare SMP软件中,所有文件系统的存取必须由处理器0来处理。服务器磁盘通道运行在接近最大能力时,运行在SMP环境下将加重服务器的负担并能够导致挂起和异常中止。SMP和局域网性能提高局域网的性能是在NetWare上运行多处理的一个主要优点。局域网支持模块在NetWare 4.11 SMP 环境下能够发挥处理器更高的性能。在负载比较重的网络环境下,SMP能够明显的提高系统,解决导致网速减慢和利用率的问题。1.2 SMP的安装调试SMP安装的问题在新版IntraNetWare中,INS

4、TALL.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.NCF文件中。这能够防止象压缩和下级分配情况下不能够获得足够处理器时间的问题。如果你在对高利用率排错时或没有使用SMP, 关闭此参数。添加完这几行后,重启服务器。

5、要确保对你的硬件使用的是正确的平台支持模块。如果你并不了解你要使用的PSM模块的话,最好使用自动安装或联系你的硬件供应商。最好把这三行添加在STARTUP.NCF文件中的开始处并紧跟在装载补丁的命令行后。不推荐装载SMP模块之前去装载其他的模块,这将导致一些问题的产生。通过简单的在STARTUP.NCF 中注释掉这三行,就可以把SMP关掉然后重起服务器。1.3 SMP的排错安装过程中的排错因为多处理器驱动已被装载,所以当它激活每一个附加的处理器时将给出相应的信息。如果你没有看到“Processor 1 activated.”或者在MONITOR下没有显示正确的处理器数量的话,SMP并没有成功设

6、置。首先检查是否使用了正确的PSM。也要检查一下是否BIOS被正确的配置。在不使用STARTUP.NCF文件的条件下重起服务器,然后手工装载SMP模块看是否有相应的出错信息。如果有相应的出错信息,你能够从以下部分的SMP出错信息中找到相关的内容。使用”LOAD MPDRIVER 1”命令直接去激活1号处理器(代替使用LOAD MPDRIVER ALL命令),0号处理器是第一个处理器。SMP的许可证在NetWare 4.x运行多处理的服务器上,有两种许可证。一种是常见的连接许可证(100,500,1000)。另外一种是SMP处理器许可证。普通的NetWare许可证最多支持4个处理器。如果你想同时

7、使用4个以上的处理器, 就需要向Novell购买SMP处理器许可证。每一个SMP处理器许可证,允许你添加4个额外的处理器。 普通的硬件问题在你安装多处理器模块到NetWare服务器之前,你需要了解关于你的硬件的一些情况:1.确保你有一个兼容的PSM。大多数服务器使用随NetWare 4.11发布的MPS14.PSM这个文件。而Compaq服务器使用CPQSMP.PSM这个模块。MPDETECT.NLM文件(当在安装过程中选择SMP选项时,此文件自动被INSTALL.NLM调用)通常用于选择正确的PSM。2. BIOS也必须兼容于这个标准。因为多处理器表由BIOS创建,所以BIOS必须严格兼容于

8、Intel MP标准。Intel MP 1.4版本的标准,扩展了配置表。它是95年7月1日发布的。如果BIOS版本老于这个日期,那就不能保证兼容于这个标准。如果主板,特别是BIOS不完全的兼容这个标准,NetWare多处理器模块将不会正常的运行。BIOS在大多数支持多处理器的服务器上有相应的选项可以关掉或打开对附加处理器的支持。为了使SMP正常运行,附加处理器的选项必须被打开。Compaq服务器要求操作系统必须在BIOS配置里被确定。同样地,为了使NetWare多处理器模块正确的运行,NetWare SMP也必须在BIOS 配置里被确定。3.PCI问题PCI重新定义了标准。因此,在标准修改之前

9、所有的硬件设计和制造将有可能产生与系统的兼容性问题。Novell不推荐你安装NetWare SMP在服务器上,除非PCI的版本是最新的2.1版本。4.如果你的服务器上有第二个I/O APIC (高级可编程中断控制器)并且使用MPS14.PSM的话,NetWare SMP将使用APIC来提高均衡I/O模式的性能和扩展性。如果你使用其他的硬件支持模块,检查你的硬件供应商对于第二个I/O APIC的支持情况。通常第二个I/O APIC是被缺省关闭的,必须通过服务器的配置工具来打开它。网络通讯问题NetWare 4.11 SMP要求ODI 3.3网络驱动,而不能在ODI 3.2网络驱动环境下正常的工作

10、。NetWare 4.11 SMP将检查网卡驱动的ODI版本和网络支持模块(.LAN 和ETHERTSM.NLM以及MSM.NLM)如果这些模块是根据老的ODI标准写的话系统将会报错。如果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环境下会产生更多的问题

11、。在SMP环境下运行第三方的NLMs之前,推荐应该检查一下软件供应商对NetWare SMP兼容的支持情况。 SMP和SFT III“SFT III“与NetWare SMP不兼容,SFT III是一种非对称处理解决方案,因此如果对NetWare SMP的扩展性有要求的话,SFT III不是一个合适的冗余解决方案。 SFT III与NetWare SMP互不兼容并且永远不会互相兼容,它们不能够被同时使用。但是,SFT III能够被设置为使用两个处理器。双处理器能够与SFT III实施非对称多处理。双处理器支持SFT III允许IO引擎使用一个处理器,而另外一个处理器被MS引擎使用。如果处理器多

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

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

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

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

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

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

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

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

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

21、或文件服务器是否有物理上的移动?- 局域网里有没有加入新的打印机?- 有没有功率损耗?- 参数有没有改变?11、有没有新的或强的电磁干扰(EMI)在服务器或电缆附近?大的马达,线缆跨过照明线路,真空吸尘器,发报机等等。12、设置DSTRACE=on 然后,观察DSTACE 屏幕上的错误,或一个“All Processed = NO”的信息。13、文件损坏、打印问题?14、MONITOR.NLM 和INSTALL.NLM是非常有价值的NetWare 组件用来检查你的服务器的情况。用它们查找信息,比如:- 上升的接收包的缓存- 有没有事件控制块(ECB)可用- 低服务器内存。CACHE BUFFE

22、R的百分比应该通常在60%70%- LRU 设置时间- DIRTY CACHE BUFFER居高不下- 局域网错误率高(超过收发包总数的百分之十)- 高利用率(如果在某时它停在高利用率上1020分钟)- 检查服务器过程,看是否超过了最大值- 分区、卷和镜像信息- 观察和编辑NCF文件解决异常终止 隔离和复制解决问题的实质主要是在“问题隔离”和“问题再现”之间。尽量使问题隔离,同时尝试找到使问题再发生的事件次序。在最简单的条件中,一个异常终止可能是由于硬件失败或NLMS失效引起的。问题隔离和问题再现几乎是相同的。主要的不同在问题再现,你特意的要使问题再次出现。这可能是一个NLM每次装载,服务器异

23、常终止。或可能是某人做拷贝操作的同时有人正在登陆服务器,导致服务器死机。如果你能找到象刚才那样的可再生的问题,你就可以在某时排除一个可变数,再次测试,看看问题是否解决了。在其他情况时,问题隔离数据可能没有给你任何线索,所以你不得不尝试做不同的事情,看是否将问题隔离在系统或其他组件里了。你可能使问题隔离在磁盘通道因为问题只发生在对磁盘操作时。或你可能发现问题和某个NLM有关系,比如备份。当打算隔离问题时,考虑下面的系统:- 磁盘通道, - 局域网通道,- 系统主板, - COM端口,- NETWARE 操作系统, - 第三方NLM产品- 电缆线 - 某种工作站( WinNT vs. Win95

24、vs. Win 3.1 vs. DOS), - 某种SHELL程序( VLM, client32, 3rd party client).记住这样做的目的是要找出使问题再现的事件顺序,或至少把问题隔离到系统、一个NLM或一块硬件板卡上,它们总是和异常终止有关。下面方法将帮助你解决问题:下面是问题隔离和问题再现的一些办法1、用“SERVER NS,”或“SERVER NA”启动服务器而不用分别执行STARTUP.NCF或Autoexec.ncf。装载“SERVER NS”将允许你启动 服务器而不自动MOUNTING卷。2、异常终止信息给我们建议了些什么。局域网通道,磁盘通道,内存恶化,系统主板问题

25、,某个NLM,打印,某个硬件板卡,某个网络片段,一个工作站,路由器,周围环境的条件,等等。NetWare 4.11,NetWare4.2,和NetWare 5将创建一个文件叫做ABEND.LOG在sys:system目录下。它包括当前的以前的异常终止 信息,是在异常终止时写进模块里的。3、用“SERVER NA”来防止AUTOEXEC.NCF运行。然后在某时手工装载NLM。4、用“SERVER NDB”来防止装载DS数据库,因此排除了目录服务,注意你不能在没有数据库装载时登陆。5、硬件的寿命是多大?如果环境不改变,硬件是很少出错的。不要总是假想新的硬件是好的。6、硬件会遭受静电打击吗?静电不是

26、总有破坏性的,通常它会对你的硬件引起退化损伤,使其只能暂时的工作。7、检查第三方厂商的产品,看看是否他们知道你正经历的这个问题。8、临时卸载第三方NLM程序,卸载病毒检测程序和服务器/局域网监 测NLMS程序。9、是否有电的问题。在电源或在电的供给方,检查电源的散热风扇,同样检查CPU风扇。高温会导致硬件失败。10、一个干燥,炎热和多尘的环境会因为静电的释放导致硬件损伤,它也会使NMI出错率升高。11、避免使用中断15、2和9,按这个顺序。12、尝试隔离问题到硬件子系统,也就是说:局域网通道,磁盘通道,和系统主板。你可以交换硬件或尝试不同的中断或插槽。13、检查你有当前最新的BIOS版本给你的

27、硬件14、如果可用的话,在机器上运行硬件诊断程序15、如果机器的局域网通道有问题,试试换用其他生产厂商的网卡。16、SERVER.EXE,就像其他的文件一样,也会损坏。一个损坏的SERVER.EXE是很困难被跟踪的。如果你能降低环境要求,但你仍然有这个问题,尝试换一个新的ERVER.EXE。同样的道理也适用于其他服务器上的NLM。不要复制错误的SERVER.EXE文件。17、运行DSREPAIR,或一个VERPAIR。18、“LOAD INSTALL”并且观察分区或镜像信息。INSTALL动态的重新找回这些信息。这里的分区表可能是坏的,举个例子,当你尝试操作分区信息在INSTALL里,你将得到

28、一个特殊的错误因为这个表不能被读取。19、通常的快速以太网卡是要求5类双绞线的。使用错误的电缆线会导致错误。28、繁重的输入输出有时会给服务器重压导致错误的发生。试试不间 断的做XCOPY *.* 或NCOPY。从几个工作站上尝试。 第三章 内部的调试器(Debug)NetWare内部的调试器(Debug)在服务器异常中断(Abends)中恢复是非常有帮助的。恢复进程包括详细说明了怎么判定哪个部件检测到的差错信息,怎么鉴定处理器异常,怎么判定操作系统的运行状态 ,怎么使用调试器到收集有用的信息,和两个重启服务器的调试技术。此进程被设计用来帮助你在客户端和服务器中保存缓存中的数据,并且减少由服务

29、器ABEND系统崩溃引起较长宕机时间的可能性。3.1概述在Abend期间,当一个服务器突然地挂起时,系统将留下一些未知数量的系统未响应磁盘请求,如果你在这时重新启动服务器,这些重要I/O将丢失去并且文件系统可能崩溃。使用NetWare 的内部调试器,你能正常重启一个异常中断的服务器并且安全的恢复系统。根据情况,重新启动和shutdown过程能保存缓冲了的用户数据,将未处理的文件系统I/O写到磁盘,避免通过VREPAIR修复文件系统的消费时间。此进程被设计用来帮助你在客户端和服务器中保存缓冲的数据,并且减少由服务器ABEND,系统崩溃引起较长宕机时间的可能性。Abend条件有两个。首先,Aben

30、d表示提前防止一个意外的严重错误。第二,因为意外的错误环境,系统将保持一个异常的状态,其中包括许多没有作完的任务,或更坏的是一些任务可能留下部分作完的工作,引起文件和数据库不正确.如在NetWare中冗余的目录项目表格( DET )与文件分配表格(FAT)镜象不匹配。Abend可能发出在数据结构检测低级软件一致性中的错误,例如堆栈溢出。 但是他们通常是软件和硬件CPU异常引起的,例如:页差错(Page faults)通用处理器异常保护( GPPE )不可屏蔽中断机器检查Abends 总是发出信号针对有缺点的系统组件或是硬件组件或是有缺陷的软件模块。当你遇见一个异常中断的服务器时,你应该记录全部

31、的Abend显示信息。3.2显示Abend 进程当一条 Abend 消息显示在服务器控制台,NetWare系统或服务器 CPU 检测到了一个严重的错误条件(差错)并且跳进了NetWare 的差错处理器。这个处理器占用NetWare资源,并在服务器控制台上显示 Abend 消息,告诉服务器主管立即行动。我们将参考 CPU 检测到所有的错误来讲述处理器异常。我们将参考NetWare检测(NetWare -detected)的错误来讲述软件异常。Processor Exception = Any error detected by the CPUSoftware Exception = Any er

32、ror detected by NetWare NetWare 的差错处理器(功能)被操作系统作为公共的功能,因此它能被任何操作系统模块或 Novell NLM 使用。然而,因为这功能没被记录并且因此没由第三方的开发者使用,你可以安全地假设导致 Abends 的软件异常是被NetWare 所检测的。3.3显示Abend恢复过程在图1的流程图中,描述了你能采取的不同行动,取决于Abend的类型和服务器的状态。图表通过若干决定引导你并且然后向你提供一些一般的问题解决和系统重启建议。过程包括 5 个步骤:步骤1:决定谁检测了差错步骤2:辨别处理器异常步骤3:收集问题解决信息步骤4:辨别完成情况步骤5

33、:尝试重启NetWare在图表的顶部,你被要求决定谁检测了差错(NetWare 或 CPU )。我们称之为“差错检测”。一旦你决定了Abend的来源,你可进入软件或硬件图表。如果差错被 CPU 检测(硬件),你必须决定检测的差错类型。下一步,你必须决定差错的上下文,差错是否在进程时间(process-timg)或中断时间(interrupt-time)发生了。并且最后,我们向你提供一条推荐的途径为孤立错误的模块或部件和重启系统并且安全恢复的推荐技术。Fault detection: Was the fault detected by NetWare or the CPU?Fault ident

34、ification: What type of fault was detected by the CPU?Fault context: Did the fault occur during process-time or interrupt-time? 图 1 : Abend 恢复过程。Step 1: Determine Who Detected the FaultStep 1:确定谁发现的故障下面的一个ABEND情况,你首先的任务是确定故障不管是发现在NetWare系统或在CPU上。当故障发现是在CPU上时这个ABEND消息的语法简单的包含了一个短语“Processor Exception

35、,如果短语”Processor Exception没有出现在ABEND的描述文字中,你能知道ABEND的情况是软件异常在NetWare上。Processor Exception Example:表3是一个ABEND的消息显示在服务器的控制台上当发生了CPU侦测到一个失败并传送控制到NetWare的失败处理者时。3和4行是ABEND的描述。Software Exception Example:表4是一个ABEND的消息显示发生在NetWare内核侦测了堆栈溢出时。他没有短语“Processor Exception 在ABEND的描述中(3行)告诉ABEND是由于软件异常引起的。Step 2:识别

36、处理器的异常类型这步仅仅是处理器异常的。如果你的ABEND 显示失败侦测是软件的,则跳过到第3步。处理器的异常恢复要求你去识别消息的来源。Intel 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 服务器上,内存分页是激活的。如果一个

37、无效的地址是使用在Novell或第三方的软件模块。一个处理器异常是发生在CPU上的。因为NetWare使用了CPU的内存分配页和映射工具,无效的地址包括了一些任意的保护或外部模块的已注册的地址空间的一些地址。General Protection Processor Exception (GPPE):在NetWare 3.11 和3.12服务器上,内存地址是有限地址空间限制在物理内存中。如果NetWare 或第三方模块尝试去访问内存地址超过限制,则一个GPPE发生在CPU上。NonMaskable Interrupts (NMI) and Machine Checks:NMI几乎总是奇偶错误的结

38、果。当Intel Pentium 芯片机器检测到内部硬件错误时。这与内存有关系的错误可能发生在系统主板上的主要内存中,或在附加项内存板上,或在共享范围的I/O卡上。Invalid Opcodes :这个异常发生在当NetWare 或第三方模块去执行编码可是那里没有包含有效的编码的情况下。Identifying Processor Exceptions:实例 由于Page Fault的ABEND问题。象表5,总是包含短语page fault描述信息。GPPE在表6中同样是容易识别的。表7是ABEND 发生在NetWare 当CPU收到一个NMI时。表8是当一个软件模块去尝试执行一个无效的代码时。

39、Step 3:收集发现并修理故障的信息在服务器重新启动之前,你能收集服务器的一些信息来能帮助你解决关于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程序

40、去插入一个短裂点获得并记录内存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 with debugger expre

41、ssions.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)。CR2信息是多数帮助你在一个page fault期间。CR2包含了显示地址关

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

43、器。8. 如果成功,再试你的客户连接,关闭你的应用程序,并且允许所有的未解决的 I/O 写到磁盘,如果在这时你不能重启服务器,使用你收集的信息,哪个模块可能正在产生错误,重新启动并且继续10步骤9. 使用服务器控制台DOWN命令重启服务器.10. 通过移除有问题的软件模块或使用DOMAIN.NLM装载保护域内的模块,来开始解决问题。列表21显示了这些步骤页错误恢复的分析恢复(列表21)开始是原有的Abend消息(行1到行10)。然后,我们进入调试器(第12行)并且在调试器序言后收到CPU 寄存器和标志显示(行14到行22)。我们首先注意到了,在内存正在使用的地址00000000将内存写入到立即

44、指令(第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: ProDemo Process6: Stack: AC 1F 65 01 E7 66 03 F1 50 CA 65 01 03 00 00 007: D0 1F 65 01 0

45、9 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 1987-1993 Novell, Inc.16: All Rights Reserved17: 18: Abend: Page Fault Processor Exception

46、 (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: F1036D82 C70000000000 MOV EAX= ?,0000000023: # .R24: Running process pointer: FB00100025: Proces

47、s 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 2

48、0 2D 20 43 41-4E 41 44 49 41 4E 00 FF NCH - CANADIAN.33: # ?34: Address in PRODEMO.NLM at code start +00000D82h35: Previous: -00000014 F1036D6E PRODEMO.NLM|WriteAddress36: Current: 00000000 F1036D8237: Next: +00000008 F1036D8A PRODEMO.NLM|DoPrivOp38: # RC39: IDTR = 07FF:00018AA0 GDTR = 0028:0001D660

49、 LDTR = 0000 TR = 000040: CRO = 80000013 CR2 = 00000000 CR3 = 0028000041: # EIP = CSleepUntilInterrupt42: Register changed43: # G44:45: 46:47: System halted Thursday, May 4, 1995 2:10:25 pm MDT48: 49: Abend: Page Fault Processor Exception (Error code 00000002)50: OS version: Novell NetWare 4.10 Nove

50、mber 8, 199451: Running Process: ProDemo Process52: Stack: AC 1F 65 01 E7 66 03 F1 50 CA 65 01 03 00 00 0053: D0 1F 65 01 09 00 00 00 B0 81 01 F9 54 CE 65 0154: 39 67 03 F1 0B CB 65 01 B4 D0 65 01 B0 81 01 F955: Press Y to copy diagnostic image to disk.56: Otherwise press X to exit. 57:58: 59: ABEND

51、ECTOMY:60: ABENDECTOMY:61: Notifying stations that file server is down62:63: Downing the router.64:65: 5-04-95 2:12:14 pm: DS-4.63-3066: Bindery close requested by the SERVER67: 68: 5-04-95 2:12:14 pm: DS-4.63-3069: Directory Services: Local database has been closed70: 71: Dismounting volume SYS72:

52、73: 5-04-95 2:12:17 pm: SERVER-4.10-200974: ABENDECTOMY TTS shut down75: because backout volume SYS was dismounted76: 77: Type EXIT to return to DOS.78: ABENDECTOMY:在调试器提示符下,我们输入.R命令(第23行)浏览有关运行进程的信息(第24行到第32行)。除了运行进程是ProDemo Process的信息,我们找不到其它有用的信息(第25行).然后我们输入?命令,用来浏览NLM和在Abend时间正在执行的函数(第33行)。在本例中

53、,服务器在一个不同与SERVER.NLM的模块中,执行编码.因此调试器能使用出口的 APIs作为标志(第35行到第37行)。它在这里(第35行),我们看到在PRODEMO.NLM中的 WriteAddress函数引起了页错误。下一步,我们使用RC命令(第38行),用来查找定位在RC2中,产生页错误的精确地址。为以后的问题解决,记录下RC2的内容。下一步,我们设置EIP为CSleepUntilInterrupt(第41行),这对将ProDemo进程踢出运行队列有效果。这样做,我们改变了进程的指令指针。替代在DOS中断矢量表中,使用MOV指令将指针指向一个不可用的地址的方法,它使用CSleepUn

54、tilInterrupt函数来指定 。这是有效的,对于强迫ProDemo停止直到没有中断请求。在将异常中断的进程停止后,我们就可用使用G命令重启服务器(第43行)。一旦重启,我们会看到在服务器的磁盘子系统上若干突出的 I/O 被写到磁盘。然后,我们要求所有用户进行连接测试并退出他们的应用。当许多用户退出了他们的应用并且退出时,我们再次看到服务器的磁盘子系统的灯在闪烁。一旦用户退出了,我们回到Abend恢复过程。当我们重新开始时,操作系统返回到ProDemo屏幕。但是因为我们使ProDemo暂停了,它没接受任何的输入,因此我们使用了控制台命令Alt-Escape(第45行)切换到控制台,显示原来

55、Abend屏幕的消息。我们返回到控制台屏幕,光标停在Abend消息的后面(第56行),没有提示符。一旦我们按键(第58行),我们收到了一个命令提示符并且能安全地down掉服务器。然后,记录需要编辑的服务器AUTOEXEC.NCF并且为更进一步的解决问题和测试,从装载队列把PRODEMO.NLM移除。最后,down掉服务器。从NMI或机器检查恢复在NMI或机器检查后,CPU状态与一个例外被保存。NetWare清除CPU的概要标记(RF),排除了系统使用G命令重启的可能性。Trace-N-Go技术执行立即指令,用来接管设置RF标志并且恢复系统到一个可重启的状态。如果你能成功使用Trace-N-Go技术重启服务器,你就有机会有能力平滑地恢复。NMI和机器检查的恢复过程包括下列任务:1. 记录Abend信息。2. 使用组合

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论