From: Greg B. <br...@ro...> - 2007-03-15 01:20:19
|
Barlow, Simon <simon.barlow@...> writes: > > We have developed a fuse file system for a SCSI device which works well > part from a performance issue which we think is down to fuse. > > The performance figures are showing 16MB/s and we would expect at least > 30MB/s. > > The fuse filesystem is using direct_io therefore the maximum block size > is 128K. > > >From the client's we wish to read, for example, 1MB of data which we > know gets segmented into 1MB/128KB read operations. > > Are the plans for fuse to allow unlimited read operations ie. The 128K > limit no longer exists, and if so when will this be available. i'm seeing a similar issue with direct_io and reads. in my test, the application is issuing 128KB reads. it appears that fuse is breaking up a 128KB read into two reads: one that 131044 bytes long and one that is 28 bytes long. the small 28 byte read is reducing the performance by almost half. here's a sample of the client output when the '-d' flag is passed to fuse: READ[0] 131044 bytes from 331350016 READ[0] 28 bytes from 331481060 READ[0] 131044 bytes from 331481088 READ[0] 28 bytes from 331612132 READ[0] 131044 bytes from 331612160 READ[0] 28 bytes from 331743204 this issue is not present with writes -- fuse issues a single 128KB write, thus, write performance is great. - gb |