Привід ручки повільніше, ніж рекламується


0

Я купив диск 32 ГБ (SanDisk Ultra Fit 3.0). У упаковці сказано: швидкість до 150 МБ / с. На моїй системі Ubuntu Linux швидкість читання сирого пристрою зберігання даних (з sudo dd if=/dev/sdb of=/dev/null bs=16M ) всього 51 МБ / с. Я не маю легкого доступу до інших операційних систем, щоб спробувати.

Що не так, і як я можу його прискорити?

Зверніть увагу на те, що накопичувач ручки підключений до порту USB 3.0, який читав зовнішній жорсткий диск швидкістю 240 МБ / с за кілька хвилин до того, як я спробував за допомогою носія.


1
"до" є ключовою фразою тут. Так само, як і широкосмугові швидкості, які можуть бути "до" 100 Мбіт / с, а насправді вони намагаються досягти 5 Мбіт / с, вони не технічно брехня, коли вони рекламують, що вона теоретично може досягти такої високої швидкості.
Mokubai

@Mokubai: Будь-яка порада, як я міг би досягти більш високу швидкість з цим рухом диска? (Якщо мені потрібен аппаратний оновлення на комп'ютері, що це має бути?)
pts

1
Я сумніваюся, що це ваші комп'ютери. Швидше за все, 150Мб / с тільки для читання і, дивлячись на це ваші результати здаються свого роду протилежними тесту в цьому огляді: amazon.co.uk/gp/customer-reviews/R1UBKG87XQXX3L/… Може бути, ви тільки що отримали не дуже хороший, або вам потрібно писати речі в першу чергу.
Mokubai

Відповіді:


1

Я думаю, ви зіткнулися з випадком різниці між теоретичною і практичною швидкістю. Теоретична швидкість - це швидкість роботи / пристрою / і т.д. у кращому випадку . Наприклад. ніяких помилок не відбувається, все робиться як заплановано, ніяких зовнішніх факторів не враховується і т.д. є беруться до уваги.

Найпростіший спосіб виявити це - вираз "до" перед швидкістю. Звичайно, компанії збираються рекламувати себе тим, як вони виглядають кращими, що не є практичною швидкістю.

EDIT: Флеш-накопичувачі практично мають випадковий доступ (це означає, що будь-які дані можна отримати в постійний час, незалежно від того, де він знаходиться), але розділені на блоки, які є послідовними (тобто, щоб читати або писати до нього потрібно прочитати все, що виходить перед ним). Коли дані записуються або зчитуються з блоку, весь блок потрібно читати з / до запису (коли ви читаєте, непотрібні частини викидаються десь посередині операції, а коли ви пишете, те ж саме назад до незмінних частин, які були там раніше). Таким чином, у випадку з pendrive і читанням, найкращим сценарієм є те, що кожні запитувані дані узгоджуються точно з блоком. У реальних життєвих ситуаціях це рідко трапляється, якщо розмір блоку не враховується при запиті або запису даних (користувач не має контролю над цим).

Інша річ, яку слід взяти до уваги, це те, що за лаштунками, як пристрій, так і ОС можуть вносити виправлення помилок, коли це необхідно, що уповільнює процес, але не викликає помилку, що реєструється (оскільки вона була автоматично виправлена, коли виявлено) . Без цього ви можете пошкодити дані, не помічаючи їх, тому це необхідна функція.

TL; DR: Найкращий сценарій в основному недосяжний весь час. Можливо, існують певні типи операцій, які підходять до нього (наприклад, жорсткі диски працюють набагато краще, ніж на великих файлах, ніж на багатьох малих).

EDIT2: Для флеш-накопичувачів я не знаю, які типи операцій виконуються найкраще.

EDIT3: У випадку з флеш-пам'яттю, розмір прочитаних даних не має значення при швидкості тестування. Якщо ОС, яку ви використовуєте, читає, наприклад, 128 байт за раз, а пристрій має розмір блоку 256 байт, то кожні 256 байт потребують двох операцій, роблячи швидкість половиною того, що могло бути. Проте той факт, що pendrives розглядаються як блок пристроїв, вказує на те, що Linux може виявляти розмір блоку, роблячи цю причину малоймовірною. На жаль, я не можу придумати будь-яку іншу причину, яка б уповільнила її, але що б це не було, я не думаю, що це вирішується.


Будь-яка порада про те, що може бути причиною повільності в моїй ситуації, і як я можу це прискорити? (Немає жодних помилок, принаймні я не бачу жодного інтерфейсу syslog. Що може бути незапланованим? Які зовнішні фактори?)
pts

Будь-яке розуміння того, що найкращий сценарій є, і як його відтворити?
pts

@pts Я відрегулюю свою відповідь через хвилину, щоб відповісти на ці питання.
sisisisi

Дякуємо за додаткову інформацію. Як зазначено в питанні, я вирівнюю ліміти до 16-мегабайтної межі, яка повинна бути більш ніж достатньою, щоб отримати максимальну продуктивність. Я також не думаю, що виправлення помилок може пояснити уповільнення від 150 МБ / с до 51 МБ / с на a новинка ручка. Зверніть увагу, що в моїх вимірюваннях не існує накладних витрат файлової системи (отже, це не має значення, як великі файли), тому що я читаю блок-пристрій безпосередньо. Отже, що може бути причиною повільності у цьому конкретному випадку?
pts

1
У випадку з флеш-пам'яттю цей розмір не має значення. Якщо ОС, яку ви використовуєте, читає, наприклад, 128 байт за раз, а пристрій має розмір блоку 256 байт, то кожні 256 байт потребують двох операцій, роблячи швидкість половиною того, що могло бути. Проте той факт, що pendrives розглядаються як блок пристроїв, вказує на те, що Linux може виявляти розмір блоку, роблячи цю причину малоймовірною. На жаль, я не можу придумати будь-яку іншу причину, яка б уповільнила її, але що б це не було, я не думаю, що це вирішується.
sisisisi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.