我有一个debian服务器的问题,我认为是由于坏RAM,但是坚持。
戴尔Poweredge 6800采用两颗双核3.6GHZ Xeon处理器和5GB DDR2 ECC 333。
我有一个73GB的SCSI驱动器。
我现在正在处理它,从MySQL中取出logging来构build触发SIP调用的星号.call文件(小文本文件)。
我们通过一个cgi界面来pipe理它,系统也在运行我们的邮件的城堡,但是我们有不到五个用户。 这不是一个巨大的stream失。
我的高峰使用率似乎是每分钟460个电话。 加载hover2.0 – 4.3之间,如果我推过去,它尖峰> 22.0。
我遇到的问题是,大约一个小时到一个表盘,它是冻结在我身上。 昨天晚上5点59分开始,6点55分17秒,系统响应无效。 没有logging,我无法通过SSH或HTTP连接,它响应平,而Nmap显示开放的端口,我可以远程login,但不引发任何响应。
我收集的数据是在6点50分,当时正如我所料,我看到了大量的使用情况,但据我所知,没有什么可比的。
系统一直在抱怨我安装的一个新的2GB磁带出现内存错误,所以在第一次崩溃之后,我用我们升级的512MB磁条replace了这对磁盘。
我目前正在拨号运行一个活的sar数据收集,以防万一它再次崩溃。 至less我可以拨打更多的粒度。
除此之外,在没有任何相关日志数据或崩溃转储的情况下,如何诊断系统冻结,我已经不知所措了。 由于系统仍在运行,但在此期间完全没有响应,直到执行重新启动。 有任何想法吗?
注:我有新的服务器,以便通过分配服务来承担这个系统的一些负担,但同时,这是我们生产依赖这个主力的平均时间。
这里是昨晚崩溃的Sar数据。
更新: 这个sar快照以10秒的增量运行,在冻结前最后收集1秒
我已经购买了terminal控制台服务器,现在可以看到系统冻结时发生了什么。
这组消息每30秒左右重复一次,循环通过CPU1和CPU2
[17675.940127] BUG: soft lockup - CPU#1 stuck for 61s! [asterisk:4579] [17675.940127] Modules linked in: btrfs zlib_deflate crc32c libcrc32c ufs qnx4 hfsplus hfs minix ntfs vfat msdos fat jfs xfs reiserfs ext] [17675.940127] [17675.940127] Pid: 4579, comm: asterisk Not tainted (2.6.32-5-686-bigmem #1) PowerEdge 6800 [17675.940127] EIP: 0060:[<c1024c6f>] EFLAGS: 00000202 CPU: 1 [17675.940127] EIP is at native_flush_tlb_others+0x85/0xa6 [17675.940127] EAX: 00000282 EBX: c14620ac ECX: c102fb3a EDX: 00000020 [17675.940127] ESI: 00000001 EDI: 00000040 EBP: c14620a0 ESP: f35d1a3c [17675.940127] DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068 [17675.940127] CR0: 80050033 CR2: b3f06946 CR3: 36787000 CR4: 000006f0 [17675.940127] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000 [17675.940127] DR6: ffff0ff0 DR7: 00000400 [17675.940127] Call Trace: [17675.940127] [<c1024d57>] ? flush_tlb_page+0x5d/0x65 [17675.940127] [<c1024144>] ? ptep_set_access_flags+0x59/0x63 [17675.940127] [<c10a13c8>] ? do_wp_page+0x3b9/0x7dd [17675.940127] [<c1025a1d>] ? kmap_atomic_prot+0xd7/0xfc [17675.940127] [<c10a3173>] ? handle_mm_fault+0x982/0xa22 [17675.940127] [<c104d52d>] ? lock_hrtimer_base+0x15/0x2f [17675.940127] [<c104d5ab>] ? hrtimer_try_to_cancel+0x2f/0x35 [17675.940127] [<c12823e8>] ? do_page_fault+0x2f1/0x307 [17675.940127] [<c12820f7>] ? do_page_fault+0x0/0x307 [17675.940127] [<c1280923>] ? error_code+0x73/0x78 [17675.940127] [<c10c00d8>] ? copy_strings+0x94/0x1ba [17675.940127] [<c10c6b8a>] ? do_sys_poll+0x2c3/0x312 [17675.940127] [<c10c7586>] ? __pollwait+0x0/0xa5 [17675.940127] [<c10c762b>] ? pollwake+0x0/0x65 [17675.940127] [<c10c762b>] ? pollwake+0x0/0x65 [17675.940127] [<c10c762b>] ? pollwake+0x0/0x65 [17675.940127] [<c10c762b>] ? pollwake+0x0/0x65 [17675.940127] [<c1026614>] ? activate_task+0x1e/0x24 [17675.940127] [<c1032713>] ? push_rt_task+0x208/0x242 [17675.940127] [<c102acb9>] ? post_schedule+0x31/0x3e [17675.940127] [<c127f5d6>] ? schedule+0x78f/0x7dc [17675.940127] [<c10567d5>] ? futex_wait_setup+0x5c/0xcd [17675.940127] [<c10568cd>] ? futex_wait_queue_me+0x87/0x98 [17675.940127] [<c100c96a>] ? sched_clock+0x5/0x7 [17675.940127] [<c1091b00>] ? zone_watermark_ok+0x16/0x99 [17675.940127] [<c1087baa>] ? cpupri_find+0x4c/0xd6 [17675.940127] [<c109270c>] ? get_page_from_freelist+0xc0/0x3c7 [17675.940127] [<c102d917>] ? check_preempt_curr_rt+0x76/0xe3 [17675.940127] [<c1024e31>] ? smp_invalidate_interrupt+0x73/0x86 [17675.940127] [<c1092cd4>] ? __alloc_pages_nodemask+0xf3/0x4d9 [17675.940127] [<c113d358>] ? cpumask_any_but+0x20/0x2b [17675.940127] [<c1024d44>] ? flush_tlb_page+0x4a/0x65 [17675.940127] [<c127fe16>] ? mutex_lock+0xb/0x24 [17675.940127] [<c10bb225>] ? do_sync_read+0xc0/0x107 [17675.940127] [<c10438d5>] ? do_send_sig_info+0x4f/0x59 [17675.940127] [<c104a97a>] ? autoremove_wake_function+0x0/0x2d [17675.940127] [<c1051af5>] ? ktime_get_ts+0xcd/0xd5 [17675.940127] [<c10c6d2b>] ? sys_poll+0x44/0x8d [17675.940127] [<c100813b>] ? sysenter_do_call+0x12/0x28
第一次迭代列出了另一组模块。
[267866.376128] Modules linked in: cpufreq_powersave cpufreq_stats cpufreq_conservative cpufreq_userspace parport_pc ppdev lp parport sco bridge stp bnep rfcomm l2cap crc16 bluetooth rfkill nfsd lockd nfs_acl auth_rpcgss sunrpc exportfs binfmt_misc fuse loop radeon ttm psmouse drm_kms_helper serio_raw evdev pcspkr drm i2c_algo_bit rng_core i2c_core dcdbas shpchp button pci_hotplug processor ext3 jbd mbcache sd_mod crc_t10dif sg sr_mod cdrom ata_generic uhci_hcd ata_piix mptspi mptscsih ehci_hcd mptbase usbcore nls_base libata tg3 scsi_transport_spi scsi_mod floppy libphy thermal thermal_sys [last unloaded: scsi_wait_scan]
我安装了intel-microcode microcode.ctl还没有弄清楚如何像其他一些论坛所build议的那样禁用超线程。
我认为这种模式可能与写入时的I / O太高,磁盘没有同步。 这可以解释在什么都没有logging的情况下突然出现的负载峰值,最终会自行解决。
如果是这种情况,系统冻结时,/ proc / meminfo将显示“Dirty”的高值,并且您可能会看到dmesg / syslog消息:
INFO: task syslogd:1500 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. syslogd D 0000000000000110 0 1500 1 1503 1491 (NOTLB) ffff8800b0739d88 0000000000000286 ffff8800b8922970 ffff8800b8922970 0000000000000009 ffff8800bb2dd0c0 ffff8800baa55080 0000000000002b40 ffff8800bb2dd2a8 0000000000000000 Call Trace: [] :jbd:log_wait_commit+0xa3/0xf5 [] autoremove_wake_function+0x0/0x2e [] :jbd:journal_stop+0x1cf/0x1ff [] __writeback_single_inode+0x1d9/0x318 [] do_readv_writev+0x26e/0x291 [] sync_inode+0x24/0x33 [] :ext3:ext3_sync_file+0xcc/0xf8 [] do_fsync+0x52/0xa4 [] __do_fsync+0x23/0x36 [] tracesys+0xab/0xb6
如果发生了这种情况,你必须find一些方法来减less写入操作,通过限制它们,caching它们,或者通过将磁盘调度器切换到noop,等等。这个问题将会有所帮助,因为系统在冻结之前能够容忍更大的“脏”内存高峰。
你可以尝试获得更多信息的一些事情:
如果您认为您的服务器完全崩溃,您可能能够从netconsole获取信息,如果由于某种原因您无法访问默认控制台。
如果你正在用-p标志运行Asterisk并且它可能是活锁的系统,你可以尝试确保你可以创build一个新的ssh shell,比如: # for pid in `pidof sshd`; do chrt -p -f 99 $pid; done # for pid in `pidof sshd`; do chrt -p -f 99 $pid; done
如果内核检测到问题,也可以尝试设置以下选项以使其自动重启: # sysctl -w kernel.panic_on_oops=1; sysctl -w kernel.panic=1; sysctl -w kernel.softlockup_panic=1 # sysctl -w kernel.panic_on_oops=1; sysctl -w kernel.panic=1; sysctl -w kernel.softlockup_panic=1 # sysctl -w kernel.panic_on_oops=1; sysctl -w kernel.panic=1; sysctl -w kernel.softlockup_panic=1 。