![Asterisk 占用了 100% 的 CPU 并冻结了我的 Debian 主机](https://linux22.com/image/578377/Asterisk%20%E5%8D%A0%E7%94%A8%E4%BA%86%20100%25%20%E7%9A%84%20CPU%20%E5%B9%B6%E5%86%BB%E7%BB%93%E4%BA%86%E6%88%91%E7%9A%84%20Debian%20%E4%B8%BB%E6%9C%BA.png)
我有一个 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
以修复您的文件系统。