среда, 17 июля 2019 г.

Поиздевался над железками

У меня было два HDD, два SSD, два внешних USB-диска (HDD) и сколько-то SD-карт. Не то, чтобы все это было нужно протестировать, но раз начал коллекционировать цифры MB/s, нужно идти в этом своем увлечении до конца. Единственное, что меня беспокоило — это флэшка-брелок. В мире нет ничего более бессмысленного и редко используемого, чем флэшка-брелок.

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

Способ тестирования

Замеры делались следующими командами (первая для записи, вторая для чтения):

# dd if=〈файл на tmpfs〉 of=〈файл на целевом устройстве〉 bs=1M count=1K oflag=sync
# sync; echo 3 > /proc/sys/vm/drop_caches ; dd of=〈файл на tmpfs〉 if=〈файл на целевом устройстве〉 bs=1M count=1K oflag=sync

Сам этот гигабайтный файл предварительно был сгенерирован из /dev/urandom посредством все того же dd. Непосредственно брать из /dev/urandom теоретически было бы лучше, но увы, он оказался медленнее, чем SSD. Использовать /dev/zero и /dev/null я не стал во избежание каких-нибудь оптимизаций со стороны системы.

Указанные команды выполнялись по несколько раз для каждого устройства, пока не начинали давать более-менее стабильный результат (стабильность определялась на глаз), после чего последние пять таких стабильных результатов усреднялись и округлялись до целых мегабайт. О некоторых интересных нестабильностях я напишу ниже. Отмечу, что в результатах десятичные, а не двоичные мегабайты, т.е. 1 MB = 1 000 000 B, впрочем, в стандартах и характеристиках от производителя обычно указываются они же.

Disclaimer: описанное в этом посте не является корректным тестированием и сравнением чего бы то ни было — очень многое делалось на глаз, а тестируемые девайсы находились в совершенно разных стадиях износа и заполненности. Да и нагрузка 1GiB кусками по 1MiB не соответствует ни реальным кейсам, ни любимым тестам производителей и обзорщиков. Зато удобна. В общем, автор в курсе, автор не претендуэ. Автора интересовало исследование скопившихся у него девайсов в текущем состоянии, способом, худо-бедно соответствующим текущим задачам (не всем).

tl;dr: в целом, результаты соответствуют ожиданиям, а китайские бренды (ORICO и noname) проявили себя вполне неплохо.