Asterisk 占用了 100% 的 CPU 并冻结了我的 Debian 主机

Asterisk 占用了 100% 的 CPU 并冻结了我的 Debian 主机

我有一个 Debian 主机

$ uname -a

Linux voip 2.6.25-2-amd64 #1 SMP 星期一 7 月 14 日 11:05:23 UTC 2008 x86_64 GNU/Linux

旧星号

星号 1:1.4.21.2~dfsg-3

它已经工作了很长时间

$正常运行时间

13:50:37 启动 1047 天,21:02,7 个用户,平均负载:0.17、0.19、2.81

今天主机冻结了,ping 可以响应,但我无法使用 ssh,也无法使用 dhcp 或任何其他服务。

我从控制台登录后,查看 top - 我发现 asterisk 占用了 100% 的 CPU。killall asterisk 不起作用,我不得不求助于 killall -9。重新启动服务后,一切似乎都很好。

我检查了我的日志并注意到了这一点:

> Mar 12 13:18:06 voip kernel: [96834831.947297] asterisk      D
> ffff81000100a080     0 15757      1                 Mar 12 13:18:06
> voip kernel: [96834831.947304]  ffff8100390fdda8 0000000000000086
> ffff810039561c00 ffff810024af33d8                                     
> Mar 12 13:18:06 voip kernel: [96834831.947310]  ffff81002dda8080
> ffff810039cb2d40 ffff81002dda82f0 0000000000000001                    
> Mar 12 13:18:06 voip kernel: [96834831.947317]  0000000000000296
> 0000000000000003 ffff8100390fdda8 ffffffff8022bea4                    
> Mar 12 13:18:06 voip kernel: [96834831.947322] Call Trace:            
> Mar 12 13:18:06 voip kernel: [96834831.947345]  [<ffffffff8022bea4>]
> __wake_up+0x38/0x4e                           Mar 12 13:18:06 voip kernel: [96834831.947364]  [<ffffffff881145b4>]
> :jbd:log_wait_commit+0x9f/0xed                Mar 12 13:18:06 voip
> kernel: [96834831.947373]  [<ffffffff80246a54>]
> autoremove_wake_function+0x0/0x2e             Mar 12 13:18:06 voip
> kernel: [96834831.947389]  [<ffffffff881104f7>]
> :jbd:journal_stop+0x165/0x18d                 Mar 12 13:18:06 voip
> kernel: [96834831.947400]  [<ffffffff802b4c6d>]
> __writeback_single_inode+0x17f/0x29d          Mar 12 13:18:06 voip kernel: [96834831.947407]  [<ffffffff80246a54>]
> autoremove_wake_function+0x0/0x2e             Mar 12 13:18:06 voip
> kernel: [96834831.947419]  [<ffffffff802b558b>] sync_inode+0x24/0x31  
> Mar 12 13:18:06 voip kernel: [96834831.947440]  [<ffffffff881213ce>]
> :ext3:ext3_sync_file+0x8a/0x9c                Mar 12 13:18:06 voip
> kernel: [96834831.947449]  [<ffffffff802b79c2>] do_fsync+0x52/0xa4    
> Mar 12 13:18:06 voip kernel: [96834831.947456]  [<ffffffff802b7a37>]
> __do_fsync+0x23/0x36                          Mar 12 13:18:06 voip kernel: [96834831.947463]  [<ffffffff8020bd9a>]
> system_call_after_swapgs+0x8a/0x8f

我很困惑,这是 Asterisk 的错误吗?还是其他原因?为什么我在日志中看到 do_fsync 和 sync_inode?这可能是文件系统或硬盘问题吗?(我使用 lvm+ext3)

有人能给我指出正确的方向吗?

答案1

如果某项服务连续三年运行良好,但突然出现与文件系统相关的内核错误,那么我认为您的硬件已经开始崩溃。立即确保您有可用的备份,并立即用新服务器替换旧服务器。

或者,至少更换硬盘,即使看起来像硬盘问题的问题有时可能是由于 RAM/CPU 故障或过热造成的。

答案2

我认为您可能遇到了硬件问题。请尝试运行fsck以修复您的文件系统。

相关内容