最近我9岁的苹果G4文件服务器已经随机崩溃。 通常这是一个内核恐慌,但有时系统只是locking。 当我离开办公室时似乎总是发生,但即使在我的办公室,系统也在一个单独的服务器房间,几乎从来没有任何人在控制台。 怀疑坏RAM,我运行memtest,但20通过后,发现没有问题。 (我跑了10遍,重新启动,并且跑了10多个单用户模式)。 苹果硬件testing也报告没有问题(循环运行超过100循环后)
我怀疑硬件坏了…终究是 9岁了。 但是我们现在没有预算来replace服务器。 在我们下次升级之前,我最好的select是什么? 任何方式来解决什么是崩溃? 或者至less有什么方法让系统在内核崩溃或locking后自动重启,以便恢复服务?
panic.log显示:
Mon Jun 29 12:52:23 2009 panic(cpu 1 caller 0x00040180): zalloc: "socket" (751876 elements) retry fail 3 Latest stack backtrace for cpu 1: Backtrace: 0x000954F8 0x00095A10 0x00026898 0x00040180 0x0026B868 0x00290E10 0x00290F1C 0x00296B40 0x002ABDB8 0x000ABD30 0x00000000 Proceeding back via exception chain: Exception state (sv=0x32288780) PC=0x9001B08C; MSR=0x0000F030; DAR=0x12555000; DSISR=0x42000000; LR=0x8EF88A00; R1=0xBFFFF700; XCP=0x0000003 0 (0xC00 - System call) Kernel version: Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC ********* Fri Jul 3 10:15:24 2009 panic(cpu 1 caller 0x00040180): zalloc: "socket" (762004 elements) retry fail 3 Latest stack backtrace for cpu 1: Backtrace: 0x000954F8 0x00095A10 0x00026898 0x00040180 0x0026B868 0x00290E10 0x00290F1C 0x00296B40 0x002ABDB8 0x000ABD30 0x00000000 Proceeding back via exception chain: Exception state (sv=0x2C543000) PC=0x9001B08C; MSR=0x0000F030; DAR=0x11A41000; DSISR=0x42000000; LR=0x8EF88A00; R1=0xBFFFF700; XCP=0x0000003 0 (0xC00 - System call) Kernel version: Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC ********* Tue Jul 21 20:44:47 2009 panic(cpu 1 caller 0x00040180): zalloc: "socket" (762004 elements) retry fail 3 Latest stack backtrace for cpu 1: Backtrace: 0x000954F8 0x00095A10 0x00026898 0x00040180 0x0026B868 0x00290E10 0x00290F1C 0x00296B40 0x002ABDB8 0x000ABD30 0x00000000 Proceeding back via exception chain: Exception state (sv=0x2C543000) PC=0x9001B08C; MSR=0x0000F030; DAR=0x11A41000; DSISR=0x42000000; LR=0x8EF88A00; R1=0xBFFFF700; XCP=0x0000003 0 (0xC00 - System call) Kernel version: Darwin Kernel Version 8.11.0: Wed Oct 10 18:26:00 PDT 2007; root:xnu-792.24.17~1/RELEASE_PPC *********
我假设,如果这是作为运行Mac OS X服务器的文件服务器运行,更正? 如果在内核崩溃后它不会自动重启,那么你的硬件已经够老了,可能不支持它,因为它是服务器上的默认设置。
显然,服务器不会尝试重启,如果它不是一个内核恐慌,只是挂起,但我发现先进的电路开球! 成为这个问题的绝佳解决scheme。 基本上,他们的软件每隔一段时间就会在硬件中传递硬件,如果硬件盒locking并停止testing,那么就会循环使用。 普雷斯托! 自动重启,内核恐慌或不!
我将假设你已经看过CrashReporter和其他系统日志,看看有没有什么有趣的东西出现在那里。
但是当试图从旧机器中挤出一些额外的时间时,我所做的第一件事情之一是检查冷却 – 从箱子里取出所有的灰尘,然后检查以确保风扇旋转良好。
…如果你正在运行客户端,并采取摩托车的电源循环的build议,请查看“节能器 – >选项”中的“断电后自动重新启动”。 如果您运行的是OS X服务器,那么在服务器“冻结”的情况下,您也可以在其中find“自动重新启动”的设置。
你知道是什么导致内核恐慌? 哪个特定的内核扩展是电脑故障?
我发布了一些关于如何在超级用户上无关的问题上读取内核恐慌日志,希望能够帮助:
如果它不是一个包,你可以从内核恐慌中findkext的名字:你可以在
~/Library/Logs/panic.logfind这个信息,或者当你在恐慌之后重新启动你的计算机,它会询问你是否想要向苹果报告错误。 按报告,然后单击中心选项卡查看崩溃详细信息。一个例子是:
panic(cpu 0 caller 0x0035C330): freeing free mbuf Backtrace, Format - Frame : Return Address (4 potential args on stack) 0x2545bc08 : 0x128d08 (0x3c9afc 0x2545bc2c 0x131de5 0x0) 0x2545bc48 : 0x35c330 (0x3ea258 0x3ae65000 0x23935100 0x493e0) 0x2545bc88 : 0x7424a4 (0x36f19300 0x493e0 0x0 0x134b11) 0x2545bca8 : 0x9f1458 (0x23935000 0x36f19300 0x0 0x0) 0x2545bcd8 : 0x9ef6d6 (0x23935000 0x36f19300 0x0 0x0) 0x2545bcf8 : 0x9fa0ce (0x23935000 0x36f15f00 0x1000000 0x0) 0x2545bea8 : 0x9f375a (0x23935000 0x3a14880 0x40000000 0x34fb8b) 0x2545bf08 : 0x398f79 (0x23935000 0x3a14880 0x1 0x13becf) 0x2545bf58 : 0x39814b (0x3a14880 0x4121d48 0x4121d8c 0x0) 0x2545bf88 : 0x397e81 (0x3a184c0 0x5d3734 0x452084 0x40431f4) 0x2545bfc8 : 0x19a77c (0x3a184c0 0x0 0x19d0b5 0x696543c) Backtrace terminated-invalid frame pointer 0x0
Kernel loadable modules in backtrace (with dependencies): com.apple.iokit.AppleYukon(1.0.9b3)@0x9ed000 dependency: com.apple.iokit.IONetworkingFamily(1.5.1)@0x73b000 dependency: com.apple.iokit.IOPCIFamily(2.2)@0x60a000 dependency: com.apple.iokit.IOACPIFamily(1.2.0)@0x6b6000 com.apple.iokit.IONetworkingFamily(1.5.1)@0x73b000 Kernel version: Darwin Kernel Version 8.8.2: Thu Sep 28 20:43:26 PDT 2006; root:xnu-792.14.14.obj~1/RELEASE_I386
我已经设定了相对的线。 具体来说,您正在寻找“内核可加载模块…”之后的第一行。 在这种情况下,该项目是com.apple.iokit.AppleYukon (这是以太网驱动程序/内核扩展),所以文件名将是com.apple.iokit.AppleYukon.kext 。
在你的服务器上,你可以运行last命令来查看它何时启动(以及正常的重启)。在这个时候发生的系统日志中是否有什么有趣的东西?
另外,作为文件服务器,一定要检查硬盘驱动器。 我们有一个连接到RAID的G5(?),当RAID不快时它不能正常工作。
另外看内存,腐败或其他内存错误很可能导致这种随机的事情。
如果您可以将DIMM交换到x86 PC,请尝试使用MemTest x86 +来查看是否有任何明显错误,但是如果错误是随机的或足够模糊的,则MemTest可以显示干净。