fuser icon indicating copy to clipboard operation
fuser copied to clipboard

Multithreading Support?

Open devmaxde opened this issue 1 year ago • 18 comments

Hey, I was wondering, if there is a Multithreading support in the current Version. I was experimenting with the examples/simple.rs and realized, that copying a large amount of files was really slow. My Computer was running 1CPU on 100% all the time. Is there a solution to improve the performance?

devmaxde avatar Dec 28 '23 22:12 devmaxde

I think it might be possible: https://john-millikin.com/the-fuse-protocol#multi-threading

I haven't tried to implement it though

cberner avatar Dec 29 '23 00:12 cberner

Will you implement it in the near Future? I don't think, that I'll be able to contribute that. My knowledge is to small.

devmaxde avatar Dec 29 '23 13:12 devmaxde

No. It'll be a long time, if ever, before I get to it

Sent from my phone

On Fri, Dec 29, 2023, 5:59 AM Martin Maximilian Kutschka von Rothenfels < @.***> wrote:

Will you implement it in the near Future? I don't think, that I'll be able to contribute that. My knowledge is to small.

— Reply to this email directly, view it on GitHub https://github.com/cberner/fuser/issues/272#issuecomment-1872110579, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGNXQALERHP2NNX4PEQF7DYL3ECXAVCNFSM6AAAAABBF67ZI6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNZSGEYTANJXHE . You are receiving this because you commented.Message ID: @.***>

cberner avatar Dec 29 '23 14:12 cberner

Hi, Will we consideration about the multithread version of this fuser lib? Currently, there is a performance problem due to the single message loop from /dev/fuse 'socket', and the single message loop can only run in the single core, in our tests, we use fio to test the fuser framework to get the bandwidth, we use the simple test and in each write api, we just return directly without actually write the data to underlying file system, the bandwidth is limited in the single core of the test machine, and it cannot double according to the number of fio jobs when that core reaches 100%. If we implement the multithread version of the message loop, we can spread the load into multiple cores of the machine, and we can increate the throughput then.

hopkings2008 avatar Jul 31 '24 07:07 hopkings2008