You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hi, when we user code on hi-load server(above 500 users and 50 CPS) Asterisk 18 is down:
AMI Manager freezes on command asterisk -rx "manager show connected".
What happens : AmiClient read messages from TCP stack on line 232 (master branch on 28/02/2022).
this.readBuffer = this.readBuffer.Append(bytes.Slice(0, nrBytes));
Then we try to find in Byte readBuffer TerminatorBytes. If we found it, then we pasre one line. If readBuffer contains several lines, we continiue parse other line.
At this time(when thread parse lines) in TCP buffer (TCP Window) we receive a lot of messages, which not receiving by ami client(because we parsing previous fragment of buffer).
Then we get issue : TCP zero window. This is mean, that receive from TCP buffer is very slowly.
Possible solution : use separate thread, which will be receive messages from TCP buffer into ConcurrentQueue and another thread, which will be get messages from queue and parse lines
The text was updated successfully, but these errors were encountered:
Hi, when we user code on hi-load server(above 500 users and 50 CPS) Asterisk 18 is down:
AMI Manager freezes on command asterisk -rx "manager show connected".
What happens : AmiClient read messages from TCP stack on line 232 (master branch on 28/02/2022).
this.readBuffer = this.readBuffer.Append(bytes.Slice(0, nrBytes));
Then we try to find in Byte readBuffer TerminatorBytes. If we found it, then we pasre one line. If readBuffer contains several lines, we continiue parse other line.
At this time(when thread parse lines) in TCP buffer (TCP Window) we receive a lot of messages, which not receiving by ami client(because we parsing previous fragment of buffer).
Then we get issue : TCP zero window. This is mean, that receive from TCP buffer is very slowly.
Possible solution : use separate thread, which will be receive messages from TCP buffer into ConcurrentQueue and another thread, which will be get messages from queue and parse lines
The text was updated successfully, but these errors were encountered: