LINUX.ORG.RU
ФорумTalks

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

 ,


0

2

Есть две флешки:
1. JetFlash Transcend 16GB (1100)
2. General UDisk (5.00)
Ну, это не я, а они сами себя так определяют.

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

Нет, я был бы дурак, если бы не перепроверил. Но получилась почему-то совершенно обратная ситуация.

1. andrew@andrew-Inspiron-3542:~$ sudo dd if=/dev/zero of=/dev/sdb
dd: запись в '/dev/sdb': На устройстве не осталось свободного места
30851073+0 записей получено
30851072+0 записей отправлено
15795748864 байт (16 GB, 15 GiB) скопирован, 4302,7 s, 3,7 MB/s

2. andrew@andrew-Inspiron-3542:~$ sudo dd if=/dev/zero of=/dev/sdb
dd: запись в '/dev/sdb': На устройстве не осталось свободного места
30720001+0 записей получено
30720000+0 записей отправлено
15728640000 байт (16 GB, 15 GiB) скопирован, 2468,17 s, 6,4 MB/s


Вот как-то так. Но я ж не полный дебил, я вижу - что на одну 3 гига пишется две минуты, а на вторую - четыре минуты. При одинаковой ФС! Причём наоборот.

В чём подвох?

ЗЫ: Нет, я их не перепутал. Именно в таком порядке и проверял, а получилось наоборот.

★★

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

честно странный вопрос, флешки разной пропускной способности.

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

Shulman
()

Последовательная запись всегда лучше чем дёргать рандомно в режиме файловой системы. Твой тест с dd, если что, файловую систму не использует вообще.

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

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

dd if=/dev/zero of=/dev/sdb

теперь попробуй перезаписать всю флеху не нулями, а когда все биты единицы (0xFF).

и провести еще пару серию тестов.

n_play
()
Ответ на: комментарий от anc

Те, которые «на одну 3 гига пишется две минуты, а на вторую - четыре минуты» при том, что на dd ситуация обратная (вторая флешка быстрее).

YAR ★★★★★
()

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

xmikex ★★★★
()

В чём подвох?

В разных флешках и отсутствующей методологии тестирования.

Во-первых, работа с большими и маленькими блоками - это совершенно разные вещи, их скорость никак не обязана коррелировать. Во-вторых, прежде чем вообще что-то измерять тебе бы их тримнуть.

slovazap ★★★★★
()
Ответ на: удаленный комментарий

Пустой каталог долго копируется? Я-то думал, в нём файлы.

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

Во-вторых, прежде чем вообще что-то измерять тебе бы их тримнуть.

гениально! как это вообще можно сделать с древней флехой 10+летней давности из конца нулевых годов?

n_play
()

И никто не посоветовал воспользоваться fio.

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

гениально! как это вообще можно сделать с древней флехой 10+летней давности из конца нулевых годов?

Ну у меня есть:

% man trim | head -4
TRIM(8)                 FreeBSD System Manager's Manual                TRIM(8)

NAME
     trim – erase device blocks that have no needed contents

будет ли она работать с USB флешками, а тем более старыми, не представляю. Однако без этого что-то мерить бессмысленно - если есть очищенные блоки будет быстро, если нет будет медленно, а потом контроллер что-то очистит в фоне и будет снова быстро, но только для небольшого объёма, а потом опять медленно. Ну ты понел.

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

а почему dd без указания bs?

+1. в синтетическом тесте пишет по 512k байт. это совсем другое. а вы не понимаете.

crypt ★★★★★
()
Последнее исправление: crypt (всего исправлений: 2)

Флешки бывают разного качества.

BceM_IIpuBeT ★★☆☆☆
()

Так флешки сами по себе разные бывают. У меня, например, есть трансенд 3.0, куда можно сезон сериала в FHD слить за 5 минут, а есть нонейм с Германии (в подарок отдали), который 100мб пишет 10 минут (видимо, поэтому и отдали).

Zhbert ★★★★★
()

В чём подвох?

Подвох может быть в erase-блоках. NAND-флеш для записи части erase-блока требует выполнять цикл read-modify-write. Формально это не нужно делать, если блок уже стёрт, но в реальной жизни они почти всегда чем-то уже заняты. Если кластеры FAT не выровнены по границам erase-блоков, то запись даже небольшого файла может потребовать записи сразу двух erase-блоков, из-за чего скорость записи может заметно просесть. В конце 2000-х очень многие флешки шли с невыровненными FAT, и выравнивание могло заметно ускорить их работу.

Как проверить, не знаю. Но достаточно свежие версии mkfs.fat автоматически выравнивают структуры FAT. Если в man-странице упоминается флаг -a, то соответствующая версия mkfs.fat делает выравнивание самостоятельно. Флаг, кстати, выключает оптимизацию, так что использовать его не нужно. Раздел в таблице разделов тоже должен быть выровнен на размер erase-блока. Раньше считалось, что это 128 КиБ. Сейчас не знаю, там и больше может быть. Нужно смотреть в документацию к современным NAND-flash чипам.

i-rinat ★★★★★
()
Ответ на: комментарий от ox55ff

Контроллер вообще может шифровать данные XOR’ом, чтобы слишком много одинаковых бит было сложно выстроить подряд. И чтобы со стороны хоста не получилось узнать шаблон, читая стёртые страницы, всё равно нужно возвращать фейковые данные. В таком случае контроллеру просто нет особого смысла возвращать 0xff, а вот смысл возвращать 0x00 есть. «Чтобы никто не догадался».

i-rinat ★★★★★
()
Ответ на: комментарий от ox55ff

более правильный вопрос. как стриггерить стирание всех страниц?

в нулевых к флешечке в комплекте на диске шло ПО, которое могло это сделать. (домохозяйками такая процедура ошибочно именовалась как «низкоуровневое форматирование»)

помню была a-data на сотни мегобайт. там какая-то программ была. помню даже флешку убил ей (т.к. выбрал не тот размер стораджа) и потом быстренько обратно в магаз отнес по гарантии, типа «ничо не знаю, так и было». каюсь, впервые в жизни гарантией воспользовался.

а с массовым приходом ssd, даже флешкам приделали trim (что есть тоже самое, тобишь стирание страницы).

n_play
()
Ответ на: комментарий от i-rinat

Но достаточно свежие версии mkfs.fat автоматически выравнивают структуры FAT.

Спасибо, не знал. Т.е. получается, что советы, типа приведённых ниже, уже устарели.

http://3gfp.com/wp/2014/07/formatting-sd-cards-for-speed-and-lifetime/

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

Интересная статья. Там ещё есть и довольно простой способ проверить выравнивание. В комментариях пишут, что erase-блоки на microsd карточках составляют от 4 до 32 MiB.

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

Современные флешки ещё более странные. Недавно купил флешку, и тестировал её на скорости записи и чтения. В рекламе было написано, что чтение будет 150 MB/s, но в тот момент, когда я тестил чтение, 150 MB/s держалась только первые два гигабайта, а потом скорость чтения падала до 55 MB/s. Явно не троттлинг, потому что я делал чтение 256 MiB кусков в разных местах в разном порядке, и первые два гига были стабильно в три раза быстрее, чем всё остальное. А потом, когда через час решил ещё раз проверить, весь объём стал читаться со скоростью 150 MB/s. Я вообще понятия не имею, что там контроллер делает. Возможно, их стали делать достаточно умными?

i-rinat ★★★★★
()
Ответ на: комментарий от n_play

С usb флешками хз как. А вот когда прошивал камеру через uboot, то у него в консоли была соответствующая команда типа nand erase.

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

dd if=/dev/zero

Здесь будет стирание флешки и последующая запись нулей. А если писать 255, то будет только стирание. Одно действие против двух.

ox55ff ★★★★★
()
Ответ на: комментарий от i-rinat

а вот смысл возвращать 0x00 есть.

Так модно самого себя перехитрить. Когда дампил флешки напрямую через программатор, то часто видел поля 0xff.

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

А если записать файл с известным содержанием, когда флеш ещё в составе USB накопителя, то в дампе это содержание видно? В смысле открытым текстом.

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

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

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

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

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

Из патента US8261159B1:

Data storage systems sometimes scramble data before storing it in memory. Data scrambling (also referred to as data randomization) can be carried out, for example, by performing a bit-wise Exclusive Or (XOR) between the data and a pseudo-random scrambling sequence. Storage of scrambled data has a number of important advantages, such as elimination of severe and repetitive interference effects, and balancing of data-dependent cell wearing across the memory. Some signal processing schemes, such as adaptive estimation of read thresholds, perform better when operating on scrambled data. Although in some cases the data provided for storage already has random statistical properties (e.g., when storing compressed or encrypted data), in other cases the data may not be sufficiently randomized (e.g., in homogeneous areas of an uncompressed image, or when the data is padded with zeros).

Так что это просто способ изменить статистические свойства данных без использования значительных вычислительных ресурсов.

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

99% патентов не для реализации, а для огораживания и для резервирования себе места под солнцем, особенно если выглядит чем-то полезным и перспективным для всех участников рынка.

ну и какие там в 1990м году flash-девайсы были? на целую сотню килобайт или аж на мегабайт?

тогда еще никаких флешек не было.

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

n_play
()

т: на вторую, такое-же количество информации пишется гораздо дольше, чем на первую.

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

bhfq ★★★★★
()

Eсли ты хочешь именно скорость то смотри на usb 3.0/3.1 или usb type-c флешки хорошего производителя, а не всякие jetflash.

Они сейчас дешевые, например Samsung USB Flash Drive DUO Plus за 1300 рублей на 32гб.

bhfq ★★★★★
()
Ответ на: комментарий от i-rinat

Нужно смотреть в документацию к современным NAND-flash чипам.

Судя по названиям моделей и скоростям у тса не современные nand-flash чипы, а что-то из оперы 11 летней давности. У самого таких штук 5 валяется, скорости там от 8 МБ/с на Silicon Power, до 1 МБ/с на самой страшной SmartBuy флешке.

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

что занимается восстановлением данных со флешек

Кстати, интересная тема. Вопрос только - как? В смысле, каким образом можно восстановить информацию с флешки? Отформатированной, например? Ну я-то в курсе, что при обычном форматировании, инфо не удаляется, а грохается таблица разделов и ФС. Данные остаются там-же, где и были. Тогда чем эти ребята занимаются, простите? Кидаловом лохов, пожалуй.

Просто на восстановлении данных с убитых винтов - я не одну собачку скушал. Знаю. Просто знаю, как это работает.

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

По моей практике за восстановлением обращаются не после «отформатировал», а после «оно сдохло». А сдохнуть оно может по разным причинам.

anc ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.