LINUX.ORG.RU

Медленное копирование на флешку

 


1

3

Добрый день всем

Извиняюсь, что старую тему поднимаю. Видел архивные затухшие темы на этот счет. Но у меня на достаточно новой системе такая проблема

lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 22.04.3 LTS Release: 22.04 Codename: jammy

Флешек несколько штук. Все довольно новые (1-2 года) с USB 3. Последнюю вчера купил.

Когда копирую большой файл (гигов 10), то до процентов 50% добегает за пару секунд, а потом стопорится и невероятно медленно доходит до 10%. После попытки отмонтировать еще приходится столько же ждать пока система сообщит о том, что устройство отключено.

Нет ли у кого правильного рецепта это решить?

PS

  1. Да, забыл сказать, что дело не в NTFS. Я сначала его использовал, а затем стал пробовать extFAT. На нем и продолжил все эксперименты. Так вот с extFAT та же проблема.

  2. Находил такой совет

Открыть файл /etc/sysctl.conf и дописать строки:

vm.dirty_bytes = 4194304 vm.dirty_background_bytes = 4194304

применить изменения: sudo sysctl -p

Однако, эта настройка повлияет не только на флешки, но и на все файловые операции. Я не уверен в ее безопасности и правильности. Хотелось бы более верное решение.

PS2

РЕЗЮМИРУЮ ПО ТЕМЕ

Было 2 проблемы - неравномерное заполнение прогрессбара и медленное копирование (на глаз).

Посоветовали включить sync. Надо было создать файл /etc/udisks2/mount_options.conf и добавить в него строки:

[defaults]
ntfs_drivers=ntfs3,ntfs
ntfs:ntfs3_defaults=uid=$UID,gid=$GID,sync
exfat_defaults=uid=$UID,gid=$GID,iocharset=utf8,errors=remount-ro,sync

Индикация после этого стала нормальной. Но скорость копирования в сравнении с Виндой стала в 5 раз медленнее. Отключил sync, прогрессбар стал показывать не плавный прогресс, также долго стало отмонтироваться, но копироваться, и правда, стало быстрее. Причем сильно. И данные теперь с виндой совпадают.

Попутно выяснилось, что порт, в который втыкалась флешка, хоть и был синего цвета, но работал не как USB 3.

Вот выдача lsusb

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 004: ID 0bda:568a Realtek Semiconductor Corp. Integrated Webcam
Bus 001 Device 003: ID 062a:4c01 MosArt Semiconductor Corp. 2,4Ghz Wireless Transceiver [for Delux M618 Plus Wireless Vertical Mouse]
Bus 001 Device 010: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 002: ID 09da:0025 A4Tech Co., Ltd. A4tech 2.4G Wireless Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub - это шина USB 3.

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub - это шина USB 2.

Bus 001 Device 010: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50 - флешка, которая, как видно сидит на Bus 001, т.е. USB 2.

Переткнул в другой разъем и картина поменялась, на такую:

lsusb
Bus 002 Device 002: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 004: ID 0bda:568a Realtek Semiconductor Corp. Integrated Webcam
Bus 001 Device 011: ID 062a:4c01 MosArt Semiconductor Corp. 2,4Ghz Wireless Transceiver [for Delux M618 Plus Wireless Vertical Mouse]
Bus 001 Device 015: ID 09da:0025 A4Tech Co., Ltd. A4tech 2.4G Wireless Device
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

В режиме дерева:

lsusb -t   
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 10000M
    |__ Port 1: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 2: Dev 16, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 16, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 3: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 3: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 5: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 5: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 6: Dev 5, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M
    |__ Port 14: Dev 6, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 14: Dev 6, If 1, Class=Wireless, Driver=btusb, 12M

Чтобы еще точнее убедиться можно также смотреть выдачу lsusb -v или dmesg

Копирование в медленном порту (хоть он и тоже синий) - 10 Гигов за 8 минут (с sync было 25 -28 минут). Копирование в быстром порту - 10 Гигов за 3 минуты. Причем в это время я и включаю отмонтирование (засекал по часам).

Для того, чтобы прогрессбар был плавным и не было задержек с отмонтированием можно использовать библиотеку autofsync https://github.com/i-rinat/autofsync. Воспользоваться ей можно так:

  1. Клонируем или качаем репозиторий

  2. Выполняем в рабочей копии (или каталоге с кодом репозитрия)

    cmake CMakeLists.txt
    make
    

    и получаем файл autofsync.so

  3. Копируем этот файл в удобное место; например в /home/me_user/.local/lib/ (оставшийся каталог autofsync-master можно удалить).

  4. Добавляем в ~/.bashrc алиас

alias mc='LD_PRELOAD=/home/me_user/.local/lib/autofsync.so mc'

ИТОГ

Таким образом, медленно копировалось из-за того, что один из портов в компе на самом деле работает медленнее, чем должен (не поддерживает USB3, хоть и синий). И эта проблема решилась выбором другого порта.

А прогресс бар сделать плавным и избавиться от задержек при отмонтировании можно через библиотеку autofsync. Штатных средств решения проблемы не найдено.

БОНУС

Попутно скинули ссылки по полезные ресурс по флешкам - https://www.usbdev.ru/articles/

Там информация о том как узнать реальный объем флешки и как восстановить флешку.

Хотя более человеческим языком кратко это рассказано в статье https://lifehacker.ru/kak-vosstanovit-fleshku/



Последнее исправление: it07 (всего исправлений: 3)
Ответ на: комментарий от it07

А с чего ему ухудшать? Не очень понимаю.

Буду честен: у меня есть хоть и есть ощущение понимания, оно недостаточное для того, чтобы внятно и, главное, без ошибок и неточностей, объяснить. Так что лучше пошлю в гугл. Добавлю лишь то, что кэширование придумали явно не от скуки и не в качестве диверсии.

CrX ★★★★★
()
Ответ на: комментарий от it07

А с чего ему ухудшать? Не очень понимаю.

Сложно на пальцах объяснять, а не на пальцах лень и долго. Ну например с sync на каждый блок должно придти подтверждение от контроллера что блок записан, и только после этого будет послан следующий блок, а с async, то бишь с буфером, блоки могут объединяться в более крупные пакеты перед передачей, так что количество «служебного» трафика сокращается. Подтверждение записи от накопителя например поступает только после срабатывания flush, а он делается раз в несколько секунд, или в момент umount. Так же появляется возможность работы с очередью команд, возможность эту очередь оптимизировать, переупорядочивать. Ну и куча всяких неочевидных оптимизаций. Без нормального прогрессбара неудобно, да, но я не наркоман, я в него не пялюсь заворожённо.

Jameson ★★★★★
()

Можете проверить, на какой Bus/Hub подключается флешка на линуксе (комманда lsusb).

У меня, например, она (Transcend 128GB) назначается на Bus 002:

Bus 002 Device 005: ID 8564:1000 Transcend Information, Inc. JetFlash
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

А, например, usb 2.0-устройства подключаются по 2.0:

Bus 003 Device 005: ID 046a:000c Cherry GmbH USB Optical Mouse
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Был случай, что полетел разъём (и кабель; не знаю, кто кого за собой потянул) и подключалось на 2.0 hub.

Средняя скорость записи этой флешки на больших файлах 40 МБ/с. Чтение - до 300 МБ/с.

Но где-то месяц тому назад скорость на ней просела, потом (может после какого-то обновления системы) снова восстановилась.

forest22
()
Последнее исправление: forest22 (всего исправлений: 1)
Ответ на: комментарий от Jameson

Сложно на пальцах объяснять, а не на пальцах лень и долго. Ну например с sync на каждый блок должно придти подтверждение от контроллера что блок записан, и только после этого будет послан следующий блок, …

Ну, вообще-то вполне понятное объяснение получилось. А это было на пальцах или нет? ))

it07
() автор топика
Ответ на: комментарий от forest22

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 004: ID 0bda:568a Realtek Semiconductor Corp. Integrated Webcam
Bus 001 Device 003: ID 062a:4c01 MosArt Semiconductor Corp. 2,4Ghz Wireless Transceiver [for Delux M618 Plus Wireless Vertical Mouse]
Bus 001 Device 010: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 002: ID 09da:0025 A4Tech Co., Ltd. A4tech 2.4G Wireless Device
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Kingston Technology DataTraveler - флешка Подключена к Bus 001, получается? Который Linux Foundation 2.0 root hub в итоге? Я верно это понимаю?

it07
() автор топика
Ответ на: комментарий от it07

Скорее популярно, нежели научно :) Потому что вопрос чтения с источника например даже не рассматривался, а при синхронной записи чтение этого потока с источника данных ЕМНИП тоже синхронное, мимо буфера чтения, что тоже добавляет прерываний и накладных расходов...

Jameson ★★★★★
()
Последнее исправление: Jameson (всего исправлений: 1)
Ответ на: комментарий от Jameson

Ну да, у тебя флешка в 2.0 дырке торчит. Ты по цвету посмотри, 3.0 дырки голубые.

Моё (диванное) предположение, что не имеет значения, в какой разъём (условно «голубой» или «белый») воткнута флешка.

То есть да, она должна быть воткнута в «голубой» разъём, но назначение на 2.0 или 3.0 происходит динамически.

Т.е., та же мышка/клавиаутура (которая заявляет себя как 2.0 устройство), воткнутая в «голубой» разъём, будет Bus/Hub 2.0.

forest22
()
Последнее исправление: forest22 (всего исправлений: 1)
Ответ на: комментарий от forest22

Цвета везде голубые у разъемов.

И, кстати, сейчас переткнул в другой разъем

lsusb
Bus 002 Device 002: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 004: ID 0bda:568a Realtek Semiconductor Corp. Integrated Webcam
Bus 001 Device 011: ID 062a:4c01 MosArt Semiconductor Corp. 2,4Ghz Wireless Transceiver [for Delux M618 Plus Wireless Vertical Mouse]
Bus 001 Device 015: ID 09da:0025 A4Tech Co., Ltd. A4tech 2.4G Wireless Device
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


И теперь оно торчит в Linux Foundation 3.0 root hub

Но при копировании скорость примерно та же - около 6 МБ/c

it07
() автор топика
Ответ на: комментарий от forest22

То есть да, она должна быть воткнута в «голубой» разъём, но назначение на 2.0 или 3.0 происходит динамически.

Это только «вниз» работает. То есть 1.1 устройство будучи вставленным в любую дырку установит соединение по 1.1 версии протокола, устройство умеющее только в 2.0 аналогично (1.1 дырок уже давно нет), а вот 3.Х устройство будет работать по протоколу 3.Х только в «голубой» дырке. В 2.0 дырках оно свалится до 2.0.

Jameson ★★★★★
()
Ответ на: комментарий от it07

У меня установлена программа gkrellm.

Я вижу визуально, как и с какой актуальной скоростью идёт копирование на флешку.

Так вот, где-то месяц назад график представлял собой «пилу». Я подумал, что контроллер флешки предохраняет её от перенагрева.

Но потом (после очередного апдейта?) скорость восстановилась и держится ровно на +/- 40 МБ/с.

forest22
()
Ответ на: комментарий от it07

Ну для начала убедиться что у тебя флешка действительно по usb 3.0 определилась. То что она на хабе 3.0 повисла не означает что согласование произошло по этому протоколу. Поэтому я тебе и предложил почитать lsusb -v или dmesg, чтобы не гадать.

Jameson ★★★★★
()
Ответ на: комментарий от it07
Disk stats (read/write):
  sdd: ios=0/13177, merge=0/0, ticks=0/130860, in_queue=130860, util=99.68%
[white_ghost@xdg12 1aa03ccd-e6ae-48d3-bc57-2cba823cf9ca]$ fio --rw=write --ioengine=libaio direct=1 --directory=test-data --size=2200m --blocksize=4M --name=mytest
mytest: (g=0): rw=write, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=libaio, iodepth=1
fio: unable to open 'direct=1' job file
[white_ghost@xdg12 1aa03ccd-e6ae-48d3-bc57-2cba823cf9ca]$ fio --rw=write --ioengine=libaio --direct=1 --directory=test-data --size=2200m --blocksize=4M --name=mytest
mytest: (g=0): rw=write, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=libaio, iodepth=1
fio-3.27
Starting 1 process
Jobs: 1 (f=1): [W(1)][100.0%][w=12.0MiB/s][w=3 IOPS][eta 00m:00s]
mytest: (groupid=0, jobs=1): err= 0: pid=111151: Sat Jan 27 17:35:57 2024
  write: IOPS=3, BW=12.1MiB/s (12.7MB/s)(2200MiB/182024msec); 0 zone resets
    slat (msec): min=280, max=1729, avg=314.37, stdev=107.60
    clat (usec): min=6180, max=27253, avg=16045.35, stdev=3035.45
     lat (msec): min=297, max=1740, avg=330.42, stdev=107.06
    clat percentiles (usec):
     |  1.00th=[ 7963],  5.00th=[11076], 10.00th=[11338], 20.00th=[11731],
     | 30.00th=[17171], 40.00th=[17433], 50.00th=[17695], 60.00th=[17695],
     | 70.00th=[17957], 80.00th=[17957], 90.00th=[18220], 95.00th=[18220],
     | 99.00th=[18482], 99.50th=[18744], 99.90th=[27132], 99.95th=[27132],
     | 99.99th=[27132]
   bw (  KiB/s): min= 8192, max=16416, per=100.00%, avg=12681.72, stdev=4082.67, samples=354
   iops        : min=    2, max=    4, avg= 3.10, stdev= 1.00, samples=354
  lat (msec)   : 10=1.27%, 20=98.36%, 50=0.36%
  cpu          : usr=0.08%, sys=0.65%, ctx=19057, majf=0, minf=11
  IO depths    : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,550,0,0 short=0,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=12.1MiB/s (12.7MB/s), 12.1MiB/s-12.1MiB/s (12.7MB/s-12.7MB/s), io=2200MiB (2307MB), run=182024-182024msec

Disk stats (read/write):
  sdd: ios=0/19255, merge=0/528, ticks=0/357145, in_queue=357145, util=99.87%
 lsusb
Bus 002 Device 008: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50

вот тотже дататревел больше из него не выжать. обрати внимание это скорость при 3 iops начешь увеличивать иопс скорость свалится….

antech
()
Ответ на: комментарий от it07
fio-3.27
Starting 1 process
Jobs: 1 (f=1): [W(1)][100.0%][w=489KiB/s][w=218 IOPS][eta 00m:00s]
mytest: (groupid=0, jobs=1): err= 0: pid=111502: Sat Jan 27 17:42:55 2024
  write: IOPS=176, BW=397KiB/s (407kB/s)(22.0MiB/56689msec); 0 zone resets
    clat (usec): min=3, max=2215, avg=703.55, stdev=618.34
     lat (usec): min=4, max=2216, avg=704.13, stdev=618.32
    clat percentiles (usec):
     |  1.00th=[    5],  5.00th=[    6], 10.00th=[    8], 20.00th=[   10],
     | 30.00th=[   10], 40.00th=[   18], 50.00th=[ 1106], 60.00th=[ 1172],
     | 70.00th=[ 1221], 80.00th=[ 1287], 90.00th=[ 1352], 95.00th=[ 1418],
     | 99.00th=[ 1483], 99.50th=[ 1500], 99.90th=[ 1598], 99.95th=[ 1663],
     | 99.99th=[ 1909]
   bw (  KiB/s): min=   35, max=  507, per=100.00%, avg=435.57, stdev=95.07, samples=103
   iops        : min=   16, max=  226, avg=194.14, stdev=42.30, samples=103
  lat (usec)   : 4=0.02%, 10=30.48%, 20=11.13%, 50=2.19%, 100=0.02%
  lat (usec)   : 1000=0.21%
  lat (msec)   : 2=55.94%, 4=0.01%
  fsync/fdatasync/sync_file_range:
    sync (msec): min=2, max=1501, avg= 4.94, stdev=33.14
    sync percentiles (msec):
     |  1.00th=[    4],  5.00th=[    4], 10.00th=[    4], 20.00th=[    4],
     | 30.00th=[    4], 40.00th=[    4], 50.00th=[    4], 60.00th=[    4],
     | 70.00th=[    4], 80.00th=[    5], 90.00th=[    6], 95.00th=[    6],
     | 99.00th=[    6], 99.50th=[    9], 99.90th=[  218], 99.95th=[  257],
     | 99.99th=[ 1435]
  cpu          : usr=0.33%, sys=1.84%, ctx=21306, majf=0, minf=15
  IO depths    : 1=200.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%
     submit    : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     complete  : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0%
     issued rwts: total=0,10030,0,0 short=10029,0,0,0 dropped=0,0,0,0
     latency   : target=0, window=0, percentile=100.00%, depth=1

Run status group 0 (all jobs):
  WRITE: bw=397KiB/s (407kB/s), 397KiB/s-397KiB/s (407kB/s-407kB/s), io=22.0MiB (23.1MB), run=56689-56689msec

Disk stats (read/write):
  sdd: ios=5627/10020, merge=0/0, ticks=6682/48950, in_queue=55633, util=99.91%

вот пожалуйста что с ним будет под реальной нагрузкой.

antech
()
Ответ на: комментарий от it07

https://www.ixbt.com/live/data/obzor-i-test-usb-fleshki-kingston-datatraveler-100-g3-na-32-gb.html вот обзор на это чудо. цифры приблизительно такие же. на сайте кингстуна я не нашел позорных спекоф на скорость записи…. ну я б тоже постеснялся такое написать. и по ссылке тестили в твоей любимой венде.

antech
()
Последнее исправление: antech (всего исправлений: 1)
Ответ на: комментарий от Jameson

Вот она флешка

  1. Я верно понимаю, что bcdUSB - 3.20 Это все же подключение по usb 3?

  2. Предплоложим даже, что usb 2. Разве у него не до 60 МБ/c скорость? Разве не должно даже на 2й версии достигать скорости в 25 как на винде?


Bus 002 Device 003: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.20
  bDeviceClass            0 
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0         9
  idVendor           0x0951 Kingston Technology
  idProduct          0x1666 DataTraveler 100 G3/G4/SE9 G2/50
  bcdDevice            1.10
  iManufacturer           1 Kingston
  iProduct                2 DataTraveler 3.0
  iSerial                 3 408D5CE4B641E550895B0007
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x002c
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              504mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               3

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 
  bDeviceProtocol         3 
  bMaxPacketSize0         9
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0003 3.0 root hub
  bcdDevice            6.02
  iManufacturer           3 Linux 6.2.16-060216-generic xhci-hcd
  iProduct                2 xHCI Host Controller
  iSerial                 1 0000:00:14.0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x001f
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12
        bMaxBurst               0


it07
() автор топика
Ответ на: комментарий от antech
  1. Это не тот девайс. Если название похожее, то не значит, что точно такой же.
  2. На винде скорость записи в 5 раза больше. Приводил результаты тестов скорости в теме. Так что дело точно не во флешке Вопрос темы как заставить линуксе писать с такой же скорость.
it07
() автор топика
Ответ на: комментарий от it07

Нет, sync не вариант, естественно. Не слушай вредные советы.

как заставить линуксе писать с такой же скорость

А это отличный вопрос :-)

Я не придумал решения лучше, чем vm.dirty_bytes.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)
Ответ на: комментарий от it07

bInterfaceProtocol 0 Full speed (or root) hub

Меня вот это смущает. Потому что «Full speed» это USB 1.1, Тут должно быть «High speed».

Покажи выхлоп lsusb -t, он должен фактические значения показать.

Jameson ★★★★★
()
Ответ на: комментарий от Jameson

Оба варианта приведу


 lsusb      
Bus 002 Device 006: ID 0951:1666 Kingston Technology DataTraveler 100 G3/G4/SE9 G2/50
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 005: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
Bus 001 Device 004: ID 0bda:568a Realtek Semiconductor Corp. Integrated Webcam
Bus 001 Device 011: ID 062a:4c01 MosArt Semiconductor Corp. 2,4Ghz Wireless Transceiver [for Delux M618 Plus Wireless Vertical Mouse]
Bus 001 Device 016: ID 09da:0025 A4Tech Co., Ltd. A4tech 2.4G Wireless Device
Bus 001 Device 006: ID 8087:0aaa Intel Corp. Bluetooth 9460/9560 Jefferson Peak (JfP)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub



% lsusb -t   
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 10000M
    |__ Port 1: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 2: Dev 16, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 2: Dev 16, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 3: Dev 11, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 3: Dev 11, If 1, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 5: Dev 4, If 1, Class=Video, Driver=uvcvideo, 480M
    |__ Port 5: Dev 4, If 0, Class=Video, Driver=uvcvideo, 480M
    |__ Port 6: Dev 5, If 0, Class=Vendor Specific Class, Driver=rtsx_usb, 480M
    |__ Port 14: Dev 6, If 0, Class=Wireless, Driver=btusb, 12M
    |__ Port 14: Dev 6, If 1, Class=Wireless, Driver=btusb, 12M

it07
() автор топика
Ответ на: комментарий от it07

Ну тут всё в порядке. Реально не знаю тогда почему скорость в шесть раз меньше и как это исправить. Предлагаю убрать sync и забить болт на плавность прогрессбара.

Jameson ★★★★★
()
Ответ на: комментарий от antech

У меня нет цели кому-то что-то доказать. Есть проблема и пытаюсь ее решить. Тут на форуме опытные люди подсказывают варианты интересные. Поэтому и написал.

antech, пожалуйста, не надо мозг пытаться поиметь.

it07
() автор топика
Ответ на: комментарий от it07

Вот у вас, например:

Port 1: Dev 6, If 0, Class=Mass Storage, Driver=usb-storage, 5000M

Т.е. драйвер usb-storage.

А у меня:

Port 2: Dev 5, If 0, Class=Mass Storage, Driver=uas, 5000M

Драйвер - uas.

Не знаю, имеет ли это какое-то значение.

forest22
()

На картах обычно указывают скорость ниже которой не опустится буквой V и скорость кратковременой записи их не надо путать. Новую флешку иногда говорят нужно воткнуть на пару дней в зарядник чтобы контроллер все перелопатил и только потом можно пользоваться, если она не перегреется раньше.

fucpsy
()
Ответ на: комментарий от Jameson

Похоже, что правда проблема была в sync. Отключил sync, прогрессбар стал показывать не плавный прогресс, также долго стало отмонтироваться, но копироваться, и правда, стало быстрее. Причем сильно. И данные теперь с виндой совпадают.

Копирование в медленном порту (хоть он и тоже синий) - 10 Гигов за 8 минут (с sync было 25 -28 минут).Копирование в быстром порту - 10 Гигов за 3 минуты. Причем в это время я и включаю отмонтирование.

Таким образом медленно копировалось из-за того, что один из портов в компе на самом деле работает медленнее, чем должен. И эта проблема решилась выбором другого порта.

А вот что с плавностью прогрессбара делать и временем отмонтирования пока так и не понял. Но все равно вы очень помогли @Jameson @forest22 И я узнал много нового.

Если получится плавность добавить, то вообще - огонь будет

it07
() автор топика
Ответ на: комментарий от it07

Если получится плавность добавить, то вообще - огонь будет

nautilus из Gnome вообще термометры на этот случай не использует: перетаскиваете/копируете файл с диска на примонтированную флешку и сразу - бац! и файл перетащился/скопировался. И всё равно какого он там размера, лишь бы влез. Да, я тут попробовал только что 10 GB скопировать с помощью nautilus. И да, на комп-е неожаданно оказалось 32 GB RAM.

Вам не термометр/прогресс нужен, а легко доступная и вменяемая информация: можно ли выдернуть флешку или пока этого лучше не делать в силу ранее предпринятых усилий по обнаружению чего бы там ни было, подготовки носителя для этого, и прочих телодвижений. Ну, чтобы проделанная работа не пропала даром и (вероятно) не возникло ещё каких-нибудь проблем.

Лично мне при записи чего-то ёмкого на флешки всегда хватало вывода iostat /mount/point Возможно, есть методики и попроще. Тот же lsof на точку монтирования, например. Ну, тут выбор большой, конечно же.

И да, я абсолютно согласен с одним из участником обсуждения, что нынче бокс для M.2 с фактически не использованным ранее SSD M.2 на 256 GB можно раздобыть за 2-2.5 кило рос. руб. И разница в цене с не левой флешкой такого же объёма вряд ли будет больше 20% (в пользу флешки, безусловно). Но за эти 300-500 рос. руб. вы сбережёте массу своего драгоценного времени. Если уж, действительно, перезапись существенного объёма на внешний носитель у вас не разовая процедура.

LaLe
()
Последнее исправление: LaLe (всего исправлений: 1)
Ответ на: комментарий от LaLe

По большому счету хотел разобраться почему работает не так как ожидаю. Попутно узнал что у меня не все синие порты работают как USB3 (выше обсуждалось).

Сейчас то откопал у себя и SSD и HDD с USB. Кстати, с ними работает также криво (прогрессс бар и отмонтирование). Правда происходит все быстрее.

Я все думал, что есть какой-то конфиг, который если поправить, то прогрессбар тоже заработает.

it07
() автор топика
Ответ на: комментарий от it07

По большому счету хотел разобраться почему работает не так как ожидаю.

По этой теме есть специальный ресурс: https://www.usbdev.ru/

Там и про контроллеры, и про непосредственно носители. И способы и методы не только восстановления, а приведения в удовлетворительное состояние, вплоть до определения действительной ёмкости или, скажем так, полезной ёмкости.

Лично я флешки с указанным объёмом больше 8 GB не беру. А некоторые флешки даже с указанными 4 GB оказываются с фактически в два-пять раз больше. Бывает. Случается и наоборот, конечно же: указывается 8 GB, а при прогоне подобранной утилитой дай Бог половина рабочая. И не то, чтобы вторая половина совсем не отвечает, а как-то так - временам. Ни в коей мере не заявляю, что всяк флешка - хлам. Но вот то, что при первом ознакомлении кажется Phison (производитель контроллера такой), как у вас, судя по предоставленной информации, вполне себе и легко может Phison-ом и не быть. Специфика, однако.

LaLe
()
Последнее исправление: LaLe (всего исправлений: 1)

Копирует оно с максимально доступной для твоего компьютера скоростью. А неравномерность это следствие кеширования. Ничего тут делать и настраивать не надо. Хочешь копировать быстрей - покупай компьютер с современным USB портом и быструю флешку.

vbr ★★★★
()