Hi!
I'm conducting some tests with MultiChain on an Azure VM (Standard D8s v3, 8 cores, 32 GB RAM). It's a two-node setup with default blockchain configuration. I ran the following command against the first node:
ab -A <node1_credentials> -p payload.json -n 1000000 -c 1 -s 300 <node1_url>
Content of the payload file is:
{ "method": "sendasset", "params": [<node2_address>, "testasset", 1] }
ab results usually ends with something like this:
Percentage of the requests served within a certain time (ms)
50% 1
66% 1
75% 1
80% 1
90% 1
95% 2
98% 2
99% 2
100% 14045 (longest request)
Is it to be expected that some of the requests take a very long time to complete? Why? In the above example, it took MultiChain more than 14 seconds to send a response! In some tests, ab even timed out after five minutes waiting.
To confirm this was an issue with MultiChain and not ab, I tried to send some commands (getmultibalances, getinfo, getpeerinfo...) to both nodes with multichain-cli and had the same results, sometimes it's instantaneous other times it takes a lot of time to get an answer.
Also, in my latest test runs, the second node started to throw the following exception (transfering 2,000,000 assets, one at a time):
************************
EXCEPTION: St9bad_alloc
std::bad_alloc
bitcoin in ProcessMessages()
So I deleted my chain, created a new one, launched the test again and got the same error. Any idea what could cause it?
Unfortunately, I cannot run multichaind with the -debug flag because the log files fill up my disk before the test ends.
Thanks for your time!