Cette question concerne principalement les performances USB sous Linux, mais plus particulièrement les problèmes de performances lors de l’exécution d’images virtualbox à partir de mon clé USB. J'ai posté ceci sur le forum de la virtualbox, mais jusqu'à présent, personne ne m'a aidé.
Détails
J'ai acheté une nouvelle clé USB Kingston HyperX Savage 512 Go 3.1. J'ai copié un fichier de 150 Go dessus, vérifié le hachage et il est passé. J'ai aussi vérifié la vitesse en utilisant:
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
À un autre moment, ce serait autour de 110 Mo / s, mais je pense tout de même que les performances sont suffisantes pour que VirtualBox puisse y exécuter une instance Ubuntu.
Un autre repère montre ce qui suit:
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
Qu'est-ce qui se passe est que lorsque je démarre la VirtualBox, il y a des pauses ou des retards. Un journal de boîte virtuelle d'un nouveau démarrage et d'un nouvel arrêt se trouve à l' adresse suivante : https://pastebin.com/iC7kQ54J (couper la partie de début parce qu'elle était trop longue).
D'après mes recherches, chaque fois qu'il y a un retard, le message VBox.log contient un grand nombre des messages suivants:
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
Après avoir cherché sur Google, il semble que les gens disent que cela a à voir avec les entrées / sorties sur le disque, mais comment cela peut-il être le cas si j'obtiens de bonnes performances sur le disque pendant les tests?
Est-ce que je me trompe?
Pouvez-vous suggérer une meilleure méthode?
Existe-t-il d'autres paramètres qui pourraient être désactivés et qui causent des problèmes de performance avec virtual-box avec ma clé USB?
Il n'y a pas d'erreur dans dmesg sur l'hôte lors de l'exécution de cette machine virtuelle.
Voici sudo lshw | grep -A26 -B10 Kingston pour ma clé USB:
*-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
Quelqu'un peut-il dire quel pourrait être le problème?
&&
et je commencerais la commande avec sudo
au lieu d'être dans la substitution de commande Bash ( $()
).
&
dans cette première commande? On dirait qu'il devrait y en avoir un&&
. (De plus, cela$
semble étrange.)