I have a Linux application that uses Boost ASIO to communicate over TCP to upto 10000 servers in async way.
Currently, I call io_service.run()
from 8 threads(host size is 4 core, 16GB) to process IO to/from peers.
I know internally, ASIO would use epoll
on single fd for the io_service
.
I wanted to know how to understand if having a single io_service
, albeit spread across multiple threads, could be a potential bottleneck.
Is io_service
, only limited by epoll limits?
Note: changing application to use multiple io_service
is bit involved, hence could not do a quick POC as of now.