Why is SCSIFS slow for small chunks?
Dave Higton (1515) 3543 posts |
I’ve been looking at the source code of MsgServe with a view to speeding up some operations. I discovered that one slow part is a loop that writes files in chunks using OS_GBPB 2, with a default chunk size of 1024. By using bigger chunks I’ve observed speedups on that section, for large files, from 110 seconds down to 7 seconds on my system. At Andrew’s request, I’ve tried various filing systems with different chunk sizes, which shows that the only FS that’s really slow with these small chunks is SCSIFS. So, why uniquely SCSIFS? My system is a BBxM with 120 GB SanDisk SSD connected to USB via a SATA-USB interface. |
Jeffrey Lee (213) 6048 posts |
There’s a fair amount of overhead in the USB layer – bigger chunks will minimise that. For a proper look at what’s going on, I’d suggest using fiqprof. However you might want to wait for me to release a new version first – the current one doesn’t work too well on modern OS versions, mainly because the OS will now claim the FIQ vector in a few different situations and kick fiqprof off of it. The new version is implemented as a module, so it’s able to reclaim the vector once the OS is finished. But if you’re eager, I think the current version might work OK for your scenario (SCSIFS/USB). |