2016年1月24日日曜日

玄人志向 玄箱 Debian Jessie 3.16 の USB ドライブの高速化

先日玄箱用の Debian Jessie 3.16 のカーネルのアップデートを行いましたが、今回は USB ドライブの高速化です。

現状

以前より 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 件のコメント:

コメントを投稿