Loom and high performance networking

robert engels robaho at icloud.com
Wed Aug 14 13:44:52 UTC 2024


Hi Alan. I agree and I’ll try to resolve this today. But what I am struggling with is why the parallelism is the only thing that matters. The poller mode or number of pollers make no difference. 

If I lower the parallelism I get better performance (matches the NIO - all systems have roughly the same error rate regardless of throughput). 

> On Aug 14, 2024, at 1:15 AM, Alan Bateman <Alan.Bateman at oracle.com> wrote:
> 
> 
> 
> On 13/08/2024 16:34, robert engels wrote:
>> I did. It didn’t make any difference. I checked the thread dump as well and the extras were created. 
>> 
>> Surprised that lowering the priority didn’t help - so now I need to think about other options. It feels like something when the carriers can use all the cores that the poller is prevented from running - like some sort of lock being held by the carrier/vt and do it thrashes around until it eventually gets a chance. 
>> 
> With pollerMode=2 then the the work is done on virtual threads so I assume you don't see the master poller stealing CPU cycles.
> 
> In any case, what you describe sounds a bit like bursty usage where all FJP workers are scanning for work before parking, and/or something else that may be macOS specific when running out of some resource. I suspect tuning the networking params to remove the errors/timeouts might make it a bit easier to study.
> 
> -Alan
> 
> 


More information about the loom-dev mailing list