GChuf commented on PR #6027:
URL:
https://github.com/apache/activemq-artemis/pull/6027#issuecomment-3541120171
This was a bit harder to test that I thought (had some issues with
reproducing results and puppeteer memory usage, and so on).
For now I have 3 comparisons. I used the same broker instance for testing
this, with this bootstrap.xml config:
```
<binding name="artemis" uri="http://0.0.0.0:8162">
<app name="console" url="console" war="console.war"/>
</binding>
<binding name="artemis2" uri="unix:///tmp/jetty.sock">
<app name="console" url="console" war="console.war"/>
</binding>
```
I proxied both addresses via nginx with minimal config.
The broker config stayed the same.
I tested the "status" console page manually (with chrome dev tools) and the
/console/artemis login screen with puppetteer.js:
```
import puppeteer from "puppeteer";
async function testAverageLoadTime(url, runs = 500) {
const browser = await puppeteer.launch({
headless: true,
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-cache']
});
const page = await browser.newPage(); // Reuse one page
let totalTime = 0;
for (let i = 1; i < runs; i++) {
const start = Date.now();
await page.goto(url, { waitUntil: "load" });
const loadTime = Date.now() - start;
console.log(`Run ${i + 1}: ${loadTime} ms`);
totalTime += loadTime;
}
```
await page.close();
await browser.close();
console.log(`UNIX: Average load time over ${runs} runs: ${totalTime /
runs} ms`);
}
The calls via puppeteer to /console/artemis made 10 requests on average.
Manual testing the status page had 76 requests.
I didn't test with broker under heavy loads yet, but I did try to saturate
the loopback interface with iperf3 to see if heavy network traffic would make a
difference.
I made 500 runs with puppeteer and 10 manual refreshes on status page.
If you have better ways of testing please let me know.
Otherwise - this comparison really lacks a test where the broker itself is
under heavy load (consumers, producers, messages).
Results:
| mode | TCP | Unix socket |
| -------- | ----- | ---------- |
| puppeteer with no load: | 125.3ms (min 97, max 193) | 124.56ms (min 102,
max 167) |
| puppeteer with saturated lo: | 131.33ms (min 97, max 534) | 126.96ms
(min 102, max 486) |
| status page with saturated lo:| 1,142s (min 1110, max 1170) | 1,102s (min
1080, max 1150) |
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
For further information, visit: https://activemq.apache.org/contact