USB 3.0接続で外付けHDDを接続し利用していたが、大きいデータの読み書きをすると使用しているHDD機種の標準的な転送速度をかなり下回るパフォーマンスしか出ていなかった。これまで、そういうものかと納得していた。先日別件でUSB経由でのデータ転送のパフォーマンスをあげる方法をみつけた。次のようにやってみると、実際にUSB 3.0接続の外付けHDDのパフォーマンスが大きく改善された。
# echo 256 > /sys/module/usbcore/parameters/usbfs_memory_mb
usbfs_memory_mbはUSBバッファサイズをコントロールするパラメータである。LinuxのUSBバッファサイズは16MBと小さい。これを256MBにあげてみた。実験してみると、ほぼ外部HDDの読み書きの性能(USB 3.0の転送速度より小さい)の上限レベルに達していた。
同じようにUSB 3.0接続の外付けHDDが思ったよりも遅いと悩んでいる人がいたら試す価値はある。
参考リンク
Understanding USBFS on Linux
https://www.flir.jp/support-center/iis/machine-vision/application-note/understanding-usbfs-on-linux/