CentOS 6.4 运行 Asterisk 11.5,负载高,CPU/内存/磁盘 IO 低

CentOS 6.4 运行 Asterisk 11.5,负载高,CPU/内存/磁盘 IO 低

我有一台 Asterisk 服务器用于自动呼叫,我注意到它出现了无法解释的高负载。该服务器只运行 Asterisk。数据库和其他支持应用程序在另一台机器上运行。

什么原因造成如此高的负载?

如果负载持续时间过长(超过最大值 8),则会导致通话量下降和整体无响应。

硬件是 8 核“Intel Xeon E3-1230 V2 @ 3.30GHz”,配备 16GB RAM

我阅读了有关类似问题的其他帖子,因此我将发布其中所要求的所有信息。

以下是我使用的监控工具的结果。该系统目前处理大约 200 个频道。

它不是线性扩展的,在 400 个通道时负载达到 8,然后情况从那里开始走下坡路。

“ps auxf” 在 D 状态下不显示任何内容。

top - 10:50:28 up 7 days, 23:20,  3 users,  load average: 2.16, 2.44, 1.93
Tasks: 341 total,   1 running, 340 sleeping,   0 stopped,   0 zombie
Cpu(s):  4.3%us,  5.9%sy,  0.0%ni, 89.4%id,  0.0%wa,  0.0%hi,  0.3%si,  0.0%st
Mem:  16303732k total,  7179980k used,  9123752k free,   264836k buffers
Swap:  8224760k total,        0k used,  8224760k free,  5759716k cached

2512 root      20   0 4744m 173m  46m S 50.8  1.1 396:55.01 asterisk

典型的 iostat -x。sda 和 sdb 在 raid 1 中,而 sdc 是存储一些经常使用的声音文件的 ssd。

avg-cpu:  %user   %nice %system %iowait  %steal   %idle
           4.30    0.00    5.94    0.38    0.00   89.38

Device:         rrqm/s   wrqm/s     r/s     w/s   rsec/s   wsec/s avgrq-sz avgqu-sz       await  svctm  %util
sda               0.00     6.00    0.00    9.00     0.00   112.00    12.44     0.04        4.33   3.67   3.30
sdc               0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00        0.00   0.00   0.00
sdb               0.00     7.00    0.00    8.00     0.00   112.00    14.00     0.04        5.25   4.62   3.70
md127             0.00     0.00    0.00   15.00     0.00   112.00     7.47     0.00        0.00   0.00   0.00
dm-0              0.00     0.00    0.00   14.00     0.00   112.00     8.00     0.05        3.50   2.64   3.70
dm-1              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00        0.00   0.00   0.00
dm-2              0.00     0.00    0.00    0.00     0.00     0.00     0.00     0.00        0.00   0.00   0.00

猫/ proc /中断

           CPU0       CPU1       CPU2       CPU3       CPU4       CPU5       CPU6           CPU7
  0:        127          0          0          0          0          0          0              0   IO-APIC-edge      timer
  1:          2          0          0          0          0          0          0          0   IO-APIC-edge      i8042
  3:          2          0          0          0          0          0          0          0   IO-APIC-edge
  4:          2          0          0          0          0          0          0          0   IO-APIC-edge
  8:          1          0          0          0          0          0          0          0   IO-APIC-edge      rtc0
  9:          0          0          0          0          0          0          0          0   IO-APIC-fasteoi   acpi
 10:          2          0          0          0          0          0          0          0   IO-APIC-edge
 12:          4          0          0          0          0          0          0          0   IO-APIC-edge      i8042
 16:         59          0          0          0          0          0          0          0   IO-APIC-fasteoi   ehci_hcd:usb1
 23:         97          0          0          0          0          0          0         40   IO-APIC-fasteoi   ehci_hcd:usb2
 24:       2298          0          0          0          0          0          0          0  HPET_MSI-edge      hpet2
 25:          0          0          0          0          0          0          0          0  HPET_MSI-edge      hpet3
 26:          0          0          0          0          0          0          0          0  HPET_MSI-edge      hpet4
 27:          0          0          0          0          0          0          0          0  HPET_MSI-edge      hpet5
 28:          0          0          0          0          0          0          0          0  HPET_MSI-edge      hpet6
 29:     412442          0          0         36    1175680          0          0        208   PCI-MSI-edge      ahci
 30:         74  335176384          0          0          0          0          0          0   PCI-MSI-edge      eth0
 31:          5         10     344792          0          0          0          0              0   PCI-MSI-edge      eth1-rx-0
 32:          0          0          0          0          0          0          0          0   PCI-MSI-edge      eth1-tx-0
 33:          3          0          0          0          0          0          0          0   PCI-MSI-edge      eth1
NMI:       7784      14329       4689       5198       7033       7387       6069       6332   Non-maskable interrupts
LOC:   46833697   44931615   30462128   37088906   47922986   44201942   27616867   37813275   Local timer interrupts
SPU:          0          0          0          0          0          0          0          0   Spurious interrupts
PMI:       7784      14329       4689       5198       7033       7387       6069       6332   Performance monitoring interrupts
IWI:          0          0          0          0          0          0          0          0   IRQ work interrupts
RES:     897464     372249     589429     570768     646428     605601     478042     484381   Rescheduling interrupts
CAL:         92        292        281        289        267        292        288        291   Function call interrupts
TLB:  206630086  265955778  173872460  156528749  143771724  221909392  129664286  115580760   TLB shootdowns
TRM:          0          0          0          0          0          0          0          0   Thermal event interrupts
THR:          0          0          0          0          0          0          0          0   Threshold APIC interrupts
MCE:          0          0          0          0          0          0          0          0   Machine check exceptions
MCP:       2300       2300       2300       2300       2300       2300       2300       2300   Machine check polls
ERR:          0

错误信息:0

vmstat 1 20

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0      0 9103556 265224 5776272    0    0     1     1    2    8  0  1 99  0  0
 0  0      0 9103356 265224 5776268    0    0     0    24 101813 25156  5  9 86  0  0
 1  0      0 9103224 265224 5776324    0    0     0     2 139955 25205  5 12 83  0  0
 3  0      0 9103968 265224 5776280    0    0     0    54 102550 24442  5  9 85  1  0
 2  0      0 9103084 265224 5776304    0    0     0     0 84384 22729  3  7 90  0  0
 2  0      0 9102116 265224 5776412    0    0     0     0 84072 24705  6  8 87  0  0
 1  0      0 9103432 265224 5776328    0    0     0     0 108438 24144  5  9 86  0  0
 0  0      0 9102924 265224 5776340    0    0     0     2 41961 23168  3  5 92  0  0
 0  0      0 9102608 265224 5776364    0    0     0    90 76298 26135  5  7 87  1  0
 2  0      0 9078068 265224 5776444    0    0     0     0 83315 24891  5  8 87  0  0
 0  0      0 9103344 265224 5776436    0    0     0     0 67256 26539  6  7 87  0  0
 1  0      0 9094300 265224 5776444    0    0     0     0 54944 24834  3  6 91  0  0
 0  0      0 9103352 265224 5776460    0    0     0     2 92988 26388  5  9 86  0  0
 2  0      0 9103592 265224 5776440    0    0     0    46 76231 27186  5  7 87  1  0
 1  0      0 9103744 265224 5776500    0    0     0     0 67153 26006  5  7 88  0  0
 3  0      0 9103056 265224 5776520    0    0     0    76 86165 26895  5  8 87  0  0
 1  0      0 9094384 265224 5776568    0    0     0    84 59498 26179  4  6 90  0  0
 1  0      0 9088632 265224 5776556    0    0     0     0 103184 27236  6  9 85  0  0
 1  0      0 9102532 265224 5776608    0    0     0    40 94010 27663  6  9 85  0  0
 1  0      0 9091052 265224 5776648    0    0     0     0 93813 26675  9  9 82  0  0

mpstat 1

11:05:18 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle
11:05:19 AM  all    8.22    0.00   11.88    0.00    0.00    0.63    0.00    0.00   79.27
11:05:20 AM  all    3.05    0.00    4.96    0.00    0.00    0.38    0.00    0.00   91.60
11:05:21 AM  all    5.64    0.00    7.27    0.63    0.00    0.38    0.00    0.00   86.09
11:05:22 AM  all    5.44    0.00    6.96    0.00    0.00    0.25    0.00    0.00   87.34
11:05:23 AM  all    3.76    0.00    7.14    0.00    0.00    0.25    0.00    0.00   88.85
11:05:24 AM  all    4.80    0.00    9.86    0.00    0.00    0.51    0.00    0.00   84.83
11:05:25 AM  all    3.80    0.00    5.58    0.00    0.00    0.38    0.00    0.00   90.24
11:05:26 AM  all    6.58    0.00    7.72    0.51    0.00    0.51    0.00    0.00   84.68
11:05:27 AM  all    6.67    0.00    8.43    0.00    0.00    0.50    0.00    0.00   84.40
11:05:28 AM  all    4.32    0.00    5.97    0.00    0.00    0.25    0.00    0.00   89.45
11:05:29 AM  all    5.04    0.00    7.06    0.00    0.00    0.50    0.00    0.00   87.39
11:05:30 AM  all    3.93    0.00    6.34    0.13    0.00    0.51    0.00    0.00   89.10
11:05:31 AM  all    4.07    0.00    5.60    0.38    0.00    0.25    0.00    0.00   89.69
11:05:32 AM  all    7.08    0.00    9.48    0.00    0.00    0.51    0.00    0.00   82.93
11:05:33 AM  all    4.19    0.00    8.51    0.00    0.00    0.51    0.00    0.00   86.79
11:05:34 AM  all    2.67    0.00    4.45    0.00    0.00    0.25    0.00    0.00   92.63

答案1

也许回答这个问题已经太晚了,而且原因可能与我的情况不同。

但是,当我将我的 asterisk 1.8 更新到 asterisk 11.5(在 Fedora 14 上更新到 Fedora 20)但保留我的旧配置文件时,我也观察到了如此高的 CPU 负载!在 asterisk.conf 中,行:

;console = yes ;作为控制台运行(与启动时 -c 相同)。

没有用分号注释,一旦注释掉该行,并且重新启动星号,CPU就会恢复正常活动!

答案2

似乎您的上下文切换和中断次数相当高。另外,如果您查看 2 的负载和正在运行的队列,我认为这种情况可能是由线程的快速爆发引起的,这些线程很快完成了工作,因此它们不会在 CPU 上花费太多时间,但它们会增加负载。

PS,请原谅我的英语不好。

答案3

您可能无法通过简单的方式看到所有进程ps auxf,因为这些选项ps会隐藏线程多线程进程。尝试使用ps -eLo pid,stat,comm,这将显示所有线程,其中一些线程可能具有RD状态。并且平均负载是平均量R+D 线索(或者任务,用 Linux 术语来说)每个采样间隔(每秒可能是 100 次)进行一次采样。

答案4

Asterisk 唯一需要花费 CPU 时间的事情是更改编解码器时重新编码(不是您的情况,而是当电话是 ALAW/ULAW 且中继是 G.729 时)、召开会议并将音频通道混合为一个时、MusicOnHold 等。尝试将您的声音文件重新编码为 ALAW/ULAW。如果您录制通话,请尝试将其录制到 *LAW(到 RAM 磁盘)并在下班时间重新编码为 MP3 或某些网络存储。如果您有除 SIP 之外的语音中继,那也会有所不同。

对于如此多的调用,此 CPU 的容量实在是太大了。请查看星号尺寸标注你会发现,即使硬件更差,你也可以同时进行 1000 个通话。

相关内容