Web Broadcasting Performance Test Mirjam Labrenz Structure 1. 2. 3. 4. Remember what the project is Test on a local machine Test on a local machine with external server Test on external machines (Jenkins) Remember what the project is • A prototype that can: – Broadcast platform – Perform subscriptions (DIP, OPC) – Uses: • • • • • Websocket Atmosphere framework Tomcat 7 Cache based on Hazelcast and Spring framework Highcharts to show the statistics Remember what the project is First test – First problem Client Server local local Dual Core Dual Core 8 GB RAM 8 GB RAM 64-bit 64-bit Wasync client Tomcat 7 Server • Problem: – Max. 150 clients • Solution – Changing the NIO configuration of Tomcat 7 – Now max. 2700 clients First Test with external server Client Server local extern Dual Core Hudson slave - Broadcast01 8 GB RAM 2 GB RAM 64-bit Java 1.7 Wasync client Tomcat 7 Server NIO Connector First Test - external server Number of messages Number of clients Connection Ramp up Interval (per 10 clients) in ms Interval between messages in ms All messages arrived 200 1 50 100 200 10 50 100 200 25 50 100 200 50 50 100 200 100 50 100 200 200 50 100 200 300 50 100 200 400 50 100 200 500 50 100 200 600 50 200 200 700 50 800 200 800 50 800 200 1000 50 1000 200 1500 50 2000 200 2000 50 3500 200 2500 50 3500 200 2720 50 3500 Second Test - external server Client Server local extern Dual Core Hudson slave - Broadcast01 8 GB RAM 2 GB RAM 64-bit Java 1.7 Wasync client Tomcat 7 Server NIO Connector Second Test - external server Test combinations Number of messages Number of clients Connection Ramp up Interval (per 10 clients) in ms Interval between messages in ms 200 50 800 100,200,500,1000,2 000,5000 200 100 800 100,200,500,1000,2 000,5000 200 200 800 100,200,500,1000,2 000,5000 200 500 800 100,200,500,1000,2 000,5000 200 1000 800 100,200,500,1000,2 000,5000 200 2000 800 100,200,500,1000,2 000,5000 Second Test - external server Average sending Time Second Test - external server Average sending Time Second Test - external server Average sending Time Second Test - external server Average sending Time Second Test - external server Average sending Time Second Test - external server Average sending Time - Boxplot Second Test - external server Variance Second Test - external server Variance Second Test - external server Variance Second Test - external server Variance Second Test - external server Variance - Boxplot Second Test - external server Standard deviation Second Test - external server Standard deviation Second Test - external server Standard deviation Second Test - external server Standard deviation Second Test - external server Standard deviation - Boxplot Big test – external server Number of messages Number of clients Connection Ramp up Interval (per 10 clients) in ms Interval between messages in ms All messages arrived 100.000 5 50 1000 • Ready to move on • Project on 3 external machines (Jenkins) First test - Jenkins Client 1 Client 2 Client 3 Server Extern Extern extern extern cvl-ci-32-1 cvl-ci-32-1 cvw-ci-32-1 Hudson slave Broadcast01 GB RAM GB RAM GB RAM 2 GB RAM 32-bit 32-bit 32-bit Java 1.7 Linux Linux Windows Wasync client Wasync client Wasync client Tomcat 7 Server NIO Connector First test - Jenkins • Problems – reached the max. number of threads / file handles on the Linux machines couldn’t create all the clients no messages arrived • Solution: – increasing max. number of Threads • Still not all the messages arrived – decided to use only Windows machines at the moment Second Tests - Jenkins Client 1 Client 2 Client 3 Server extern extern extern extern cvw-bcast01 cvw-bcast02 cvw-ci-64-1 Hudson slave Broadcast01 2 GB RAM 2 GB RAM 2 GB RAM 2 GB RAM 64-bit Java 1.7 Windows Windows Windows Wasync client Wasync client Wasync client Tomcat 7 Server NIO Connector Second Tests – Jenkins Test combinations Number of clients Number of messages Connection Ramp up Interval (per 10 clients) in ms Interval between messages in ms All clients created 50 10, 50, 100, 250, 500 200 1000 bcast01 Bcast02 ci-64-1 100 10, 50, 100, 250, 500 200 1000 bcast01 bcast02 ci-64-1 250 10, 50, 100, 250, 500 200 1000 bcast01 bcast02 ci-64-1 500 10, 50, 100, 250, 500 200 1000 bcast01 bcast02 ci-64-1 750 10, 50, 100, 250, 500 200 1000 bcast01 bcast02 ci-64-1 1000 10, 50, 100, 250, 500 200 1000 bcast01 bcast02 ci-64-1 Second Tests – Jenkins Problems • until 50 clients all messages arrived • from 100 to 1000 clients more and more messages lost – for example • 100 clients, 10 messages sent, 9 arrived • 1000 clients, 10 messages sent, 1 arrived Second Tests – Jenkins Problems Second Tests – Jenkins Solution • Problem was that the client hadn’t enough time to get the messages Increasing the waiting time for the clients Latest tests - Jenkins Client 1 Client 2 Client 3 Server extern extern extern extern cvw-bcast01 cvw-bcast02 cvw-bcast03 Hudson slave Broadcast01 2 GB RAM 2 GB RAM 8 GB RAM 2 GB RAM 64-bit 64-bit 64-bit Java 1.7 Windows Windows Windows Wasync client Wasync client Wasync client Tomcat 7 Server NIO Connector Latest tests – Jenkins Test combinations Number of clients Number of messages Connection Ramp up Interval (per 10 clients) in ms Interval between messages in ms 50 100 200 200,500,1000 200 100 200 200,500,1000 500 100 200 200,500,1000 Latest tests – Jenkins Average sending Time Latest tests – Jenkins Average sending Time Latest tests – Jenkins Average sending Time Latest tests – Jenkins Average sending Time Latest tests – Jenkins Average sending Time Latest tests – Jenkins Average sending Time - Boxplot Latest tests – Jenkins Variance Latest tests – Jenkins Variance Latest tests – Jenkins Variance Latest tests – Jenkins Variance Latest tests – Jenkins Variance Latest tests – Jenkins Variance - Boxplot Latest tests – Jenkins Standard deviation Latest tests – Jenkins Standard deviation Latest tests – Jenkins Standard deviation Latest tests – Jenkins Standard deviation Latest tests – Jenkins Standard deviation Latest tests – Jenkins Standard deviation - Boxplot
© Copyright 2026 Paperzz