Eos: Feature request: Allow nodeos (smart contracts) to take advantage of multi-threaded processing

Created on 20 Oct 2018  ·  9Comments  ·  Source: EOSIO/eos

Don't know if this is possible but would be nice. Running on a docker server with xeon 16 core processor, it would be nice to take advantage of multiple cores/threads to execute contracts. A 4 core desktop processor should not beat a top of the line latest greatest xeon server processor with 16 cores.... you would think.

For example, the 8086K currently beats the Xeon Gold 6130 out of the box in executing contracts.

Also, this feature should increase nodeos performance in virtualized environments.

All 9 comments

4568

nodeos is not multithreaded. There are no current plans to enable multithreading.

cpu is not enough always, multithreading is very urgent.

I found today, that EOS uses only one core of 8 cores we have at the server.
If we can utilize all CPUs (8 cores), then we might expect at least 8 times faster requests processing.
This is very critical for us, to handle 10000 peak requests per second from block-chain users.

easy to say, hard to do. just give up. 😂

In 1.5 multi-threaded transaction/block key recovery was added. 1.6 added some additional multi-threading and other performance improvements. 1.7 added some additional multi-threading and other performance improvements. Other multi-threading and performance improvements are in work for 1.8.

I will describe the issue, that we have, a little bit more detailed.
When game challenge is over, then we need to show new balance status for all the users, which joined a challenge.
So, they generate a simple get table request (http://node_url:8888/v1/chain/get_table_rows) to block-chain nodes. We use load balancer to aggregate all nodes into one DNS record.
If we could use all CPU cores to utilize user's request, then it would be great. Because now only one core is processing all the requests. And we can not get more than 2443 requests per second from one EOS server.
This amount is reached after tuning up Linux network buffers. So there is no more efforts for network optimization, and the CPU is more critical now.

Please give 1.7.0-rc1 a try as it includes improvements to http request handling including making part of the http request handling multi-threaded. See the new http-threads option.

Hi, heifner.
I tested version 1.7.0-rc2. It it working for me. Thank you guys. You are the best!!!
All 8 cores now are working and handle user's requests.

Was this page helpful?
0 / 5 - 0 ratings