Code Monkey home page Code Monkey logo

webrtc-test's Issues

Sporadically some calls aren't processed by the browsers

When making lengthy load tests we have seen that some times the browsers after a while start getting slower to process requests and the tabs aren't re-spawned on time to handle the calls directed to them.

Not sure if that i a browser issue or some issue in the code of the web app

Consider revisiting Selenium for driving the browser

Notice that this is how we need it in the beginning, but for some reason it didn't seem to scale that well with more than 10-20 browsers, which is why we changed it, drive the browsers from webrtc-test.py and add more logic to the test web-app.

Having Selenium working would make it easier to work more easily with supported browsers, easier to get logs per browser tab and printing out statistics for the calls from within webrtc-test.py

Load test call fails - Calls are processed too slow on the headless Firefox side

I reproduced this when load testing 50 concurrent calls (i.e. having 50 browser tabs registered with Restcomm and receiving calls). With 20 it is not reproducible.

Analysis:

Sipp starts sending SIP requests
The browser webrtc clients start answering, but it seems that overtime 200 OK sent by the clients are delayed reaching more thatn 30 secs at which point Restcomm times out and CANCELs the calls towards the clients, which in turn terminate the call prematurely
I don't see too much load on the browser (no swapping, no excess waiting on I/O, memory and CPU consumption seem normal) that would explain it. And some webrtc client side errors seem irrelevant to that behaviour

Notice that I tried originally hosting the headless browsers in EC2 with magnetic HD and the issue occurred as follows. The delay from receiving INVITE until sending back 200 OK starts at ~5 seconds (delay to answer included) in the first call, 12 seconds in the 5th call, 19 seconds in the 10th call and so on until Restcomm times out.

I then tried general purpose SSD and seems that it occurs less. delay from receiving INVITE until sending back 200 OK starts at ~5 seconds (delay to answer included) in the first call, 7 seconds in the 5th call, 9 seconds in the 10th call and so on until Restcomm times out. But still there's an issue.

Load testing tool cannot cope with 5 cps loads

Seems that either browser fails to send the ajax message properly to the test tool to respawn, or the test tool cannot handle the load, which is why it happens 5 cps. the ajax messages from the browser are sent in bursts of 5.

Even when improving the 'respawn' thread to handle requests in threads and increasing the socket receive buffer length, there are still cases where the http server is unable to process some incoming browser messages sporadically

Check RestComm/restcomm-web-sdk#74 for earlier activities

Improve logging for easier troubleshooting during load tests

For now I have added logging in webrtc-client.html that we use for load test, but we need to enhance RestCommWebClient.js so that all WebRTComm events that are forwarded to RCDevice/RCConnection objects are logged together with their paramaters

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.