#факты | Сколько циклов записи у флешки?

16 Июля 2013 в 19:00, Олег Довбня 13 398 просмотров 8

Тестирование флешки

В комментариях к рассказу о причинах постепенной деградации флешек наши читатели интересуются тем, сколь долго сможет проработать флешка. Ответ на этот вопрос зависит в том числе и от количества циклов записи на флеш-носитель. Блогер Джош Брессерс (Josh Bressers) решил изучить этот вопрос основательно и провел тестирование, в ходе которого он проверил флешку на выносливость. Результат удивил его самого: флеш-накопитель оказался намного более крепким, чем предполагалось изначально. Нижеописанные действия не рекомендуется повторять, поскольку целью тестирования было проверить флешку на прочность. А сделать это можно только одним способом: вывести ее из строя.

Эксперимент проводился над флешкой Sony Microvault USB Flash Drive емкостью в 1 гигабайт. Важно понимать, что разные флешки будут вести себя по-разному. Это зависит от множества факторов, некоторые из которых были ранее рассмотрены на страницах нашего ресурса.

Тестирование флешки на выносливость

Тестирование флешки на выносливость

Для проведения тестирования Джош Брессерс написал специальную утилиту, использующую признак O_DIRECT. Это позволило файловой системе получать доступ непосредственно к файлу. Дело в том, что файловая система предпочитает кэшировать данные в оперативной памяти. Как работает кэширование, нашим читателям уже известно, поэтому на сей раз обойдемся без подробностей.

В большинстве случаев кэширование является оптимальным решением, но для задач данного теста оно не подходило, поскольку на прочность проверялась именно флешка. Обращаться каждый раз следовало именно к ней, а не к оперативной памяти. Чтобы использовать O_DIRECT, флешку пришлось переформатировать в файловую систему ext3. Изначально она поставлялась с файловой системой vfat, которая не отличается способностью корректно работать с признаком O_DIRECT.

Файловая система была создана следующим образом:

mkfs.ext3 -m 0 -b 1024 /dev/sdb1

Подготовка к эксперименту была окончена и началось само тестирование.

Сначала накопитель был целиком заполнен данными, оставлен лишь один свободный блок. Предполагалось записывать в него все новые и новые данные до тех пор, пока флешка не откажет. Создание тестового файла было осуществлено следующим образом:

dd if=/dev/urandom of=test-file bs=1024 count=1

Заполнение диска осуществлялось нижеприведенной командой:

dd if=/dev/urandom of=big-file

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

Оказалось, что одного блока мало. Сам Джош Брессерс не знает причин такого явления. Это особенности файловой системы. Для проведения этого теста потребовалось три свободных блока на флешке.

Джош Брессерс полагал, что флешка выдержит примерно 30 тысяч циклов перезаписи. То есть примерно 10 тысяч циклов записи в каждый блок.

Результаты тестирования

Тестирование флешки

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

Флешка отказала после того, как данные были записаны в нее 90 миллионов 593 тысячи 104 раза. Ее выносливость многократно превзошла ожидания. На осуществление каждого из большей части циклов записи требовалось примерно 1 тысяча 500 микросекунд (миллионных долей секунды).

Тестирование флешки

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

Тестирование флешки

Конец флешке пришел во время цикла записи, а не чтения. Терминал (консоль) выдал следующее сообщение об ошибке:

Message from syslogd@link at May 15 07:44:03 …
kernel: journal commit I/O error

Интересно, что компьютер по-прежнему продолжал «видеть» накопитель и позволял считывать с него информацию, отказываясь лишь записывать данные. Джош Брессерс предполагает значительную вероятность того, что флешка сохраняет способность к чтению с нее данных даже после того, как она стала непригодной для записи. То есть вероятность потери данных ниже, чем потери способности к записи.

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

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

По материалам bress.net

#факты | Сколько циклов записи у флешки?

Приложение
Hi-News.ru

Новости высоких технологий в приложении для iOS и Android.

8 комментариев

  1. andreas1251

    Коды написаны для того, что бы мы попытались " угробить" свои флешки?) я уже пишу программу для transcend jet flash 16gb))))

  2. 07333

    Флешки очень хорошие закажу несколько штук себе!!!

  3. alex

    Приятно видеть консольные команды GNU/Linux!

  4. andreas1251

    Приятно не просто понимать но и пользовать))

    • zhenyA

      Пользования без понимания не бывает)

      • A7p3cc0p

        Бывает! Я вот пользуюсь флэшкой, но не пониманию, как она работает. И не хочу понимать. И так голова всякой всячиной забита ;) Я даже не понимаю зачем я эту статью прочитал. Наверное, потому, что у меня обед на работе. :D

Новый комментарий

Для отправки комментария вы должны авторизоваться или зарегистрироваться.