Papyrus Performance Tests
“High speed” — It’s not only the property of our team, but also of our solution. The first statement you may easily validate by yourself — just go to our gitHub and check how quickly we implement new features.
To prove the second statement Papyrus do regular performance testing.
Channel layer — is the most highly-loaded layer in our system, so that’s why our team ran performance test of papyrus channel nodes. For test we configured 4 machines on Google Cloud of n1-standard-2 type . They are the most common servers — that’s why we chose them.
Test setup consisted of 4 google cloud servers with following roles:
1. DSP channel node + IPFS node
2. SSP channel node + IPFS node
3. Auditor channel node + IPFS node
4. Test module channel-demo-rtb was used to generate test load.
Modules were deployed using Google Container Engine. Test nodes configuration can be found at https://github.com/papyrusglobal/state-channels/tree/master/config/perftest.
The test consisted of following steps:
1. To open single Papyrus channel between 3 participants.
2. To send RTB impressions to this channel. Each impression consists of 3 transactions: RtbResponse, WinNotification and AuditorResponse
3. To settle channel blocks every 5 minutes
As you may see — we do not check abstract things, but emulate the real load in the most common configuration on the most commonly used and available equipment.
We tested different throughputs and measured overall system stability and load.
Stable throughput: 16000 transactions/sec
Memory usage (channel node): 800Mb
Avg CPU usage (channel node at stable throughput): 0.6 CPU
Memory usage (IPFS node): 1Gb
Avg CPU usage (IPFS node): 0.3 CPU
16000 transactions/sec performance for single channel.
It is always possible to scale out by adding more channels. Since adding each channel adds only few transactions to blockchain layer throughput increases linearly with number of channels.
To cover the load of the most DSPs we just need to run 3–4 Channels.
So, these are impressive results that show our readiness for real integration.
We will continue to make further optimisations to achieve even better results.