Comments (5)
I guess those tests are running on the loopback interface.
In the original PQUIC paper (available at pquic.org) we also report on performance benchmarks and provide explanation on the performance degradations. In short, plugins are eBPF bytecodes and thus are slower than native machine code. Also, injecting plugins add new functions and code paths to PQUIC, so the execution time increases.
That said, injecting plugins can be beneficial. FEC helps in lossy networks, such as SATCOM environments, but can be detrimental in good networks and Multipath can leverage several network paths. When running a test on the loopback, you are first likely to be CPU blocked rather than network blocked, and second losses are absent.
Regarding the injection of the datagram plugin. I am surprised to see a performance degradation as picoquicdemo does not use datagrams in any forms. I would expect that if you run the tests several time, you will not find a statistically meaningful difference. If you find one, it would be interesting to understand its origin.
from pquic.
I ran picoquicdemo with and without datagram plugin sending 100MB of data on loopback condition for 50 times. The average transmission time without the plugin injected was 9.223 seconds and with the plugin injected was 10.095 seconds.
I also observed that a few times the datagram plugin took time all the way up to 14.5 seconds.
I'm attaching the test data here: https://docs.google.com/spreadsheets/d/1vvfdTFZ0OX7mpczngmCTzWVM5NIoHRWBbzo1sjjm3wc/edit?usp=sharing
from pquic.
there's one more question that I want to ask.
On the server side at the end, it shows "Retrans= (some numeric value)". What does that signify? The number of times retransmission happened?
from pquic.
I think there is something odd with your test setup. I can transfer 1Gb in about a second on my machine loopback (disabling the logs with -l /dev/null), and the transfer does not report any retransmitted packet. Injecting the datagram plugin adds a fixed cost of reading a bunch of files and recompiling their code, but it does not add any instructions in the data path when using the picoquicdemo client and server.
I ran 20 tests side by side with and without the plugin and I did not find a meaningful difference. There is theoretically one, but a small one.
from pquic.
I am closing this as it seems that no further assistance is required.
from pquic.
Related Issues (20)
- how to run pquic with multipath plugins HOT 5
- load balance work with MPQUIC
- How multiple path can exist? HOT 1
- Mac OS build errors
- How to use PQUIC with multipath plugin to transport in Internet
- error while compiling HOT 1
- How to ensure pquic use HOT 1
- Problem about using multipath plugin HOT 1
- What are the differences between plugins with & without "cond" HOT 2
- Multipath Plugin does not establish subflows
- Invalid original_destination_connection_id HOT 2
- Retention of the unused encryption keys HOT 2
- Limitless active_connection_id_limit HOT 2
- Post request
- Incorrect way of prunning the retransmission queue. HOT 2
- /usr/bin/ld: cannot find -lprofiler HOT 1
- Segmentation fault (core dumped)
- -n sni is not opening on specified server
- /usr/bin/ld: cannot find -lprofiler: No such file or directory HOT 1
- Difference between picoquic and p-quic
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pquic.