Core switching

+1 vote
Hey team,

Does multichain utilizes multiple cores or it runs only on one core and relies on OS for core switching?

I 've a 2 core c4.large instance and no matter how much load I put on the multichain the CPU utilization caps at 50%. It never exceeds the 50% mark. So if I 've a 4 core system my 3 cores would lie idle?



asked Nov 21, 2017 by ashish235

1 Answer

0 votes
MultiChain does use multiple cores for certain things. For example, proof-of-work mining (if you use it) takes place in a separate thread (which can run on a separate core), signature verification is multi-threaded during the initial blockchain download process, and some parts of API request reading and response building can happen in parallel threads. However for most of its regular ongoing activity, MultiChain uses a single core only.
answered Nov 21, 2017 by MultiChain
Thanks for the response.

So I ran few tests on a AWS c4.large instance with 2 vcpu with a provisioned SSD disk with 800 iops. Initially till 100k transactions the TPS was good 150+ but it dropped after 200k to 90 and after a million transactions it dropped to 35 only. Is this expected performance? I 'm using ab tool with 2 concurrent users and using the sendassetfrom api.
These sound like low speeds. Please use getwalletinfo to check your UTXO count. It could be that if you are inflating the number of UTXOs in the wallet, this is slowing down the coin selection when making new transactions.
I 'm running a controlled test this time with a RPS of 10. Just after an hour or so I checked the UTXO it's 10328 on 2nd node, which holds the private key of the receiving wallet. The utxo on 1st node which holds my sender wallet is 2. Is the high utxo on secondary concerning? And how do I fix it.

I read about Autocombine somewhere but how does it help me?
A high UTXO count on the receiving wallet will not affect the sending speed of the sending wallet. So while autocombine can help you with this (note that it requires the receiving address to also have send permissions), it does not explain the slow throughput speed you are seeing.

It is hard for us to know what is causing the slow transaction rate you see. You can post your blockchain parameters here, for us to take a look at. Also look at free memory, disk utilization and CPU utilization to see where the bottleneck might be.

You can see our own performance measurements (with full technical details of the setup) here: