[Queue] Load Test

I’m trying to load test for QUEEU with asterisk16

my load result result

  • I made a 50 agents and 50 calls
    It’s OK with CPU 5~7% usage

  • I made a 100 agents and 100 calls
    It’s OK with CPU 9~14% usgage

  • I made a 150 agents and 150 calls
    It looked like it was working with CPU 18~ 24% usages. BUT I can see a WARNING MESSAGE like this
    ( Intel(R) Xeon(R) CPU E5620 @ 2.40GHz * 4Core )

tail -f /var/log/asterisk/messages
[Mar 25 10:00:30] WARNING[25011][C-00000777] taskprocessor.c: The ‘stasis/pool-control’ task processor queue reached 500 scheduled tasks again.
[Mar 25 10:00:30] WARNING[25013][C-00000777] taskprocessor.c: The ‘stasis/pool-control’ task processor queue reached 500 scheduled tasks again.
[Mar 25 10:00:30] WARNING[25013][C-00000777] taskprocessor.c: The ‘stasis/pool-control’ task processor queue reached 500 scheduled tasks again.
[Mar 25 10:00:30] WARNING[25013][C-00000777] taskprocessor.c: The ‘stasis/pool-control’ task processor queue reached 500 scheduled tasks again.

[ippbx@sbpds asterisk]$ /usr/sbin/asterisk -rx ‘core show taskprocessors’
Processor Processed In Queue Max Depth Low water High water
app_voicemail 0 0 0 450 500
ast_msg_queue 0 0 0 450 500

stasis/p:channel:all-000006df 281 0 12 450 500
stasis/p:channel:all-000006e2 185 0 4 450 500
stasis/p:channel:all-000006e4 108 0 4 450 500
stasis/p:channel:all-000006e6 32 0 1 450 500
stasis/p:endpoint:PJSIP/GATEWAY1-0000001c 1 0 1 450 500
stasis/p:endpoint:PJSIP/GATEWAY2-0000001d 10984 0 12 450 500
stasis/p:endpoint:PJSIP/GATEWAY3-0000001e 1 0 1 450 500
stasis/p:endpoint:PJSIP/IPPBX1-0000001f 27798 0 40 450 500
stasis/p:endpoint:PJSIP/VG-00000020 1 0 1 450 500
stasis/pool 12943096 0 300 450 500
stasis/pool-control 21318165 0 2663 450 500
727 taskprocessors
Asterisk ending (0).

[ippbx@sbpds asterisk]$ /usr/sbin/asterisk -rx ‘queue show’
QUEUE63 has 1 calls (max unlimited) in ‘leastrecent’ strategy (9s holdtime, 226s talktime), W:5, C:1153, A:0, SL:96.3%, SL2:96.3% within 20s
Members:
6019 (Local/6019@Agents from Agent:6019) with penalty 10 (ringinuse disabled) (dynamic) (in call) (In use) has taken 2 calls (last was 206 secs ago) (login was 664 secs ago)
6143 (Local/6143@Agents from Agent:6143) with penalty 10 (ringinuse disabled) (dynamic) (in call) (In use) has taken 1 calls (last was 218 secs ago) (login was 443 secs ago)
6009 (Local/6009@Agents from Agent:6009) with penalty 10 (ringinuse disabled) (dynamic) (in call) (In use) has taken 2 calls (last was 224 secs ago) (login was 685 secs ago)
6042 (Local/6042@Agents from Agent:6042) with penalty 10 (ringinuse disabled) (dynamic) (in

6005 (Local/6005@Agents from Agent:6005) with penalty 10 (ringinuse disabled) (dynamic) (in call) (In use) has taken 2 calls (last was 223 secs ago) (login was 694 secs ago)
6039 (Local/6039@Agents from Agent:6039) with penalty 10 (ringinuse disabled) (dynamic) (in call) (In use) has taken 2 calls (last was 158 secs ago) (login was 622 secs ago)
6029 (Local/6029@Agents from Agent:6029) with penalty 10 (ringinuse disabled) (dynamic) (in call) (In use) has taken 2 calls (last was 176 secs ago) (login was 642 secs ago)
Callers:
1. PJSIP/GATEWAY2-000005dc (wait: 0:10, prio: 0)

I found this post! : Stasis State: Improved Management ⋆ Asterisk
so I upgrde asterisk 16 to 18. but The results of the load test were similar.

and I found that if asterisk process CPU utilization is less than 100%, there’s no WARNING mesage.
if asterisk process CPU utilization exceeds 100%, there are WARNING message.

I want to increase performance. is there good way?

Upgrade hardware for better CPU capabilities and optimize Asterisk configuration settings like threadpool and task processors. Implement load balancing across multiple Asterisk instances and monitor CPU utilization closely. Adjust settings to prevent CPU usage from exceeding 100%, triggering warning messages.

Best regard
Danish Hafeez | QA Assistant
ICTInnovations

1 Like