С внедрением новых технологий и производительного оборудования появляется потребность тестирования производительности и сравнение с прошлыми. Сейчас расскажу как протестировать жесткий диск на Mac OS.
Принцип тестирования просто. Необходим большой файл и попробовать его прочитать. Как писал ранее тестирование жестких дисков под Linux систем в Мак нет тех утилит и при продаже также не дадут поставить, а пощупать хочется.
Нам необходим программа "Терминал", эта системная утилита, что то напоминает командную строку, только с большим функционалом. Первый шаг необходимо найти большой файл. Это можно сделать через Finder или через консоль переходя по каталогам командой cd и просмотром списка файлов ls. В моем случае есть видео с размером 300M в папке документов.
MacBook-Pro-Aleksey:~ aleksey$ ls -lh ~/Documents/
-r--r--r-- 1 aleksey admin 301M 16 апр 11:31 Time.avi
drwxr-xr-x 2 aleksey staff 68B 19 окт 2010 My Music
drwxr-xr-x 2 aleksey staff 68B 19 окт 2010 My Pictures
drwxr-xr-x 2 aleksey staff 68B 19 окт 2010 My Videos
Чтобы посмотреть сколько дисков и какой будем тестировать воспользуемся классической командой df.
MacBook-Pro-Aleksey:~ aleksey$ df -hl
Filesystem Size Used Avail Capacity Mounted on
/dev/disk0s2 465Gi 433Gi 32Gi 94% /
Диск disk0s2 (он может быть и disk0s1) забит у меня под завязку и тест будет немного не точен, но мы его проконтролируем запустив во втором окне Терминала статистику ввода/вывода утилитой iostat.
Первое окно терминала. Запускаем имитацию копирование в никуда с помощью утилиты dd. По окончанию он выдаст скорость записи. В нашем случае чтения. Продолжительность зависит от скорости диска и размера файла не стоит использовать размер более 1G.
MacBook-Pro-Aleksey:~ aleksey$ dd if=~/Documents/Time.avi of=/dev/null bs=100m
3+1 records in
3+1 records out
315562925 bytes transferred in 29.149885 secs (10825529 bytes/sec)
Второе окно терминала. Запускаем сбор статистики работы диска в реальном времени для контроля, если в системе запущены еще какие то процессы которые используют диск.
MacBook-Pro-Aleksey:~ aleksey$ iostat 1
disk0 cpu load average
KB/t tps MB/s us sy id 1m 5m 15m
553.80 40 21.62 20 9 71 1.59 1.74 1.83
133.67 172 22.44 25 26 49 1.59 1.74 1.83
122.88 110 13.19 10 20 70 1.59 1.74 1.83
94.62 133 12.28 10 16 73 1.59 1.74 1.83
123.46 134 16.15 13 15 72 1.59 1.74 1.83
114.41 103 11.50 16 18 66 1.46 1.71 1.82
288.00 99 27.83 18 23 58 1.46 1.71 1.82
218.63 76 16.22 22 26 52 1.46 1.71 1.82
151.73 119 17.62 16 20 65 1.46 1.71 1.82
193.26 121 22.82 16 21 64 1.46 1.71 1.82
194.46 104 19.74 17 15 68 1.42 1.70 1.81
215.76 84 17.69 14 12 74 1.42 1.70 1.81
137.41 88 11.80 13 6 80 1.42 1.70 1.81
77.94 127 9.69 12 10 78 1.42 1.70 1.81
57.69 121 6.80 16 22 62 1.42 1.70 1.81
46.41 118 5.34 15 18 67 1.47 1.70 1.82
112.11 112 12.26 14 11 75 1.47 1.70 1.82
И получим такую картину. Через утилиту копирования мы получили среднюю производительность диска 10825529(bytes/sec)/1024/1024=10,34 MB/s, а собранной статистике максимум 27.83MB/s. Верить можно обоим. Первый показатель это средняя скорость чтения диска без учета внутренних программ, а вторая скорость максимальная скорость с которой может работать жесткий диск. В моем случае это ST9500420ASG, со скоростью вращения 7200, со скоростью связи 3 гигабит и диск забит под завязку.