現状
以前より USB ドライブへの書き込み速度が遅いことが気になっていました。USB ハードディスクでも比較的遅かったのですが、USB フラッシュメモリだと絶望的に遅くなっていました。そこで、カーネルのビルドオプションの見直しなどを行っていましたが、よい結果が得られませんでした。なお lsusb -t コマンドで、USB ドライブの接続状況を確認すると 480Mbps と USB 2.0 High Speed となっていました。
# lsusb -t
/: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/2p, 12M
/: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=ohci-pci/3p, 12M
/: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/5p, 480M
|__ Port 2: Dev 2, If 0, Class=Mass Storage, Driver=usb-storage, 480M
さらにいろいろと調べていると原因をようやく発見しました。
原因と対策
原因はマウントオプションでした。USB ドライブのマウントには usbmount を使用しており、自動的に /media/usb0 へマウントするようにしていました。このマウント時のオプションに同期方式(sync)に指定していました。この設定を入出力に同期方式(sync)から非同期方式(async)へ変更することによって高速化することができました。設定変更
usbmount の設定ファイル(/etc/usbmount/usbmount.conf)を編集します。"sync" の部分を "async" へ変更します。# vi /etc/usbmount/usbmount.conf
--- 38 行目 ---
MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"
↓↓↓
MOUNTOPTIONS="async,noexec,nodev,noatime,nodiratime"
動作改善状況
278MB のファイルを USB ドライブへコピーする時間を計測しました。USB ドライブとして使用した USB フラッシュメモリも USB ハードディスクも書き込み時間が極端に短くなりました。USB フラッシュ・メモリの場合
・sync 動作時:27分40秒 (間違いなく27分です!)
・async 動作時: 48秒
USB ハードディスクの場合
・sync 動作時:6分7秒
・async 動作時: 34秒
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。