USBスピードボトルネック(特に仮想マシンを実行するとき)

USBスピードボトルネック(特に仮想マシンを実行するとき)

この質問は主にLinuxのUSBパフォーマンスに関するものですが、特にUSBでvirtualboxイメージを実行するときのパフォーマンスの問題についてです。私はこれをvirtualboxフォーラムに投稿しましたが、これまで誰も私を助けませんでした。

詳細

新しいKingston HyperX Savage 512GB 3.1 USBスティックを購入しました。上記の150GBファイルをコピーしてハッシュを確認した結果、合格しました。また、以下を使用して速度を確認しました。

time $(sudo dd if=/dev/zero of=/home/host/mnt/testfile2 bs=1M count=1000 & sync)         
1000+0 records in            
1000+0 records out           
1048576000 bytes (1.0 GB, 1000 MiB) copied, 3.69425 s, 284 MB/s                                                             
real    0m3.883s             
user    0m0.002s
sys     0m0.002s

それ以外の場合は約110MB / sですが、VirtualBoxはUbuntuインスタンスを実行するのに十分なパフォーマンスがあると思います。

もう1つのベンチマークは次のことを示しています。

sudo hdparm -Tt /dev/sdd1        
/dev/sdd1:                    
Timing cached reads:   21882 MB in  1.99 seconds = 10973.39 MB/sec                                                     
Timing buffered disk reads: 1204 MB in  3.00 seconds = 400.74 MB/sec                                                   

VirtualBoxを起動すると、一時停止または遅延が発生します。新規開始および終了仮想ボックスログは、次の場所にあります。https://pastebin.com/iC7kQ54J(長すぎるので始めを切ります。)

私の研究では、遅延が発生するたびにVBox.logに次のメッセージがたくさん表示されます。

00:07:10.988753 AsyncCompletion: Task 0x007f65495ff9c0 completed after 16 seconds
00:07:17.981513 AsyncCompletion: Task 0x007f65495ffe80 completed after 23 seconds
00:07:17.989714 AsyncCompletion: Task 0x007f65495ff7c0 completed after 23 seconds
00:07:18.004043 AsyncCompletion: Task 0x007f65495ffec0 completed after 23 seconds
00:07:18.009427 AsyncCompletion: Task 0x007f65495fffc0 completed after 23 seconds
00:07:18.065390 AsyncCompletion: Task 0x007f65495ffd80 completed after 23 seconds
00:07:18.065474 AsyncCompletion: Task 0x007f65495ff840 completed after 23 seconds

インターネット検索の結果、人々はこれがドライブのI / Oに関連していると言っているようです。しかし、ベンチマーク中にドライブで良いパフォーマンスを得ている場合はどうすればよいですか?

私の基準マーカーが間違っていますか?

より良いアプローチを提案できますか?

USBを使用してVirtual Boxのパフォーマンスの問題を引き起こす無効にすることができる他のパラメータはありますか?

この仮想マシンの実行中は、ホストマシンのdmesgにエラーはありません。

私のUSBの場合、sudo lshw | grep -A26 -B10 キングストンです。

          *-usb:1
               description: Mass storage device
               product: HyperX Savage
               vendor: Kingston
               physical id: 6
               bus info: usb@4:6
               logical name: scsi8
               version: 1.00
               capabilities: usb-3.10 scsi emulated scsi-host
               configuration: driver=usb-storage maxpower=896mA speed=5000Mbit/s
             *-disk
                  description: SCSI Disk
                  product: HyperX Savage
                  vendor: Kingston
                  physical id: 0.0.0
                  bus info: scsi@8:0.0.0
                  logical name: /dev/sdd
                  version: PMAP
                  size: 468GiB (503GB)
                  capabilities: removable
                  configuration: ansiversion=6 logicalsectorsize=512 sectorsize=512
                *-medium
                     physical id: 0
                     logical name: /dev/sdd
                     size: 468GiB (503GB)
                     capabilities: partitioned partitioned:dos
                     configuration: signature=6e13cd5d
                   *-volume
                        description: EXT4 volume
                        vendor: Linux
                        physical id: 1
                        logical name: /dev/sdd1
                        logical name: /home/host/mnt
                        version: 1.0
                        serial: e953210a-43c2-4ba9-87ec-55ed8ab3c6ff
                        size: 468GiB
                        capacity: 468GiB
                        capabilities: primary journaled extended_attributes large_files huge_files dir_nlink recover 64bit extents ext4 ext2 initialized
                        configuration: created=2018-09-01 00:55:53 filesystem=ext4 label=datapartition lastmountpoint=/home/host/mnt modified=2018-09-01 12:50:22 mount.fstype=ext4 mount.options=rw,relatime,data=ordered mounted=2018-09-01 12:50:22 state=mounted

誰でも問題が何であるかを教えてもらえますか?

答え1

https://pastebin.com/iC7kQ54J

ログによると、KVMがインストールされているようです。 (少なくともドライバがロードされているようです。)そうであれば、遅延の原因があります。 2人のドライバーが同じ資源を置いて競います。数年前も同じことをしましたが、システムはひどく反応しました。

短期的な解決策は、Virtualboxを起動する前にKVMモジュールを削除することです。長期的な解決策は、仮想化されたアプリケーションを削除または初期化する前に自動的にチェックすることです。

答え2

あなたの質問によると、最適な条件では、USB書き込み時間は読み取り時間の半分です。バッファを考慮していないようで、これらの速度はデバイスの実際の性能と非常に似ています。

だから試してみてください:

時間$(sudo dd if=/dev/urandom of=/home/host/mnt/testfile2 bs=1M count=1000 ) 時間$(sudo dd if=/dev/urandom of=/home/host/mnt/testfile2
bs =1M個数=1000&同期)

そして、2番目のタスクのタイミングを確認してください。

同時作業を実行することもこのメディアには適しておらず、中断を招く可能性があります。そのような機器の寿命はそのような使用のために短くなり、そのメディアはそのような用途には設計されていない。

一般に、ハイパーバイザーはI / O集約的であり、VM I / O操作に加えてVMイメージを継続的に保存することができ、いくつかの技術は定期的なスナップショットも実行します。

簡単に言えば、設計目的に合わない用途で使用しようとするものであり、いくら最適化しようとしても動作しないでしょう。

PS。私はまた、容量が少ないことを除いて、「同じ」USBペンモデルを持っていますが、そのモデルは本当に悪い選択です。遅い通常使用中。メーカーの仕様は書類上では良く見えますが、通常はRAMバッファに収まるデータ量で作業時間を決めます。

PS2。デバイスはUSB 3.1と言っていますが、デバイスの技術を教えてはいけません。

関連情報