![]() |
Тестирование быстродействия файловых систем.
Есть статья сравнивающая быстродействие файловых систем http://www.posix.ru/system/test_free_vs_linux/ написана в 2004 году. Но ведь все течет, все изменяется. Какова ситуация сейчас?
Сваял скриптик. За ошибки - извиняйте :) Неопытен еще. Код:
#!/bin/sh Цитата:
И вот еще, что меня интересует. Чем может ограничиватся быстродействие компьютера, кроме как процессором и скоростью диска, измеряемой в мегабайтах. |
Цитата:
|
Для определения скорости чтения вполне подходит hdparm
PS Статья интересная, но "неправильная" - не пришло ещё время выбирать файловую систему по бысьродеёствию - гораздо болееее важна надежность, и тут ext2/ext3 нет равных :) |
kaEwituS
Про сеть пока речи нет. А вот насчет ОЗУ посмотрим. ruslandh Говорит - команда не найдена :) Если только dd Цитата:
Значит циферок я не дождусь :) |
Значит установить надо :)
Насчёт цифорок - они должны быть соизмеримы, а как этого достичь, если помимо файловой системы на скорость работы с диском влияет и скорость процессора и конкретный контроллер и жёсткий диск и драйвера (версия ядра и какой модуль используется) ? Плюс настройки безопасности (используется-ли SeLinux, а если используется, то в каком режимею. В частности, забиваются-ли нулями удаляемые файлы или просто удаляются с диска). |
Это все отмазки :)
Ну нет, так нет... А вот как узнать скорость работы ОЗУ - вопрос ... Как впрочем и частоту на которой она работает. |
|
Не буду :)
Более чем уверен, что во FreeBSD оно не заработает. Поскольку использует (наверняка) системные вызовы, /dev & etc. Нашел еще одну статейку http://linuxgazette.net/122/piszcz.html Действия для тестирования Цитата:
Но вот возникли вопросы по программированию. Как сделать split? |
man split вам в помощь :)
Цитата:
|
В шелле tcsh есть внутрення команда - time. Как изменить ее формат представление времени с умолчального на нужный?
|
Hardware
COMPUTER: Самосбор CPU: Thorton 2200+ (1500МГц) (machdep.tsc_freq: 1.503.416.373) RAM: 512MB SWAP: 800MB CONTROLLER: nForce2 DRIVES USED: 1] Samsung 1203N ATA/133 2MB CACHE 7200RPM OS: FreeBSD 6.2-STABLE |
Тестирование быстродействия
Объяснение команды time (это внутренняя команда tcsh) `%Uu %Ss %E %P %X+%Dk %I+%Oio %Fpf+%Ww' %U The time the process spent in user mode in cpu seconds. %S The time the process spent in kernel mode in cpu seconds. %E The elapsed (wall clock) time in seconds. %P The CPU percentage computed as (%U + %S) / %E. %X The average amount in (shared) text space used in Kbytes. %D The average amount in (unshared) data/stack space used in Kbytes. %I The number of input operations. %O The number of output operations. %F The number of major page faults (page needed to be brought from disk). %W Number of times the process was swapped. 001-1 Вначале протестируем скорость выполнения скрипта командным интерпретатором. Простой цикл изменяющий значение от 10000 до 20000. Скрипт исполняющий: PHP код:
PHP код:
Запускаем: time /tmp/test10000 Результат: 1) 7.179u 24.393s 0:37.95 83.1% 56+185k 0+0io 0pf+0w 4) 7.586u 23.898s 0:34.77 90.5% 54+184k 0+0io 0pf+0w 5) 7.348u 24.172s 0:34.81 90.5% 54+185k 0+0io 0pf+0w Запускаем: /tmp/testfs Результат: 2) 7.202u 24.354s 0:34.88 90.4% 55+184k 0+0io 0pf+0w 3) 7.270u 24.384s 0:34.95 90.5% 56+185k 0+0io 0pf+0w 6) 7.330u 24.240s 0:36.15 87.3% 55+183k 0+0io 0pf+0w 001-2 Добавляем команду есно, выводящую значение переменной на экран. PHP код:
Результат: 1) 7.893u 25.120s 0:39.75 83.0% 57+187k 0+0io 0pf+0w 3) 7.448u 25.555s 0:41.01 80.4% 57+186k 0+0io 0pf+0w 5) 7.710u 25.326s 0:42.94 76.9% 60+188k 0+0io 0pf+0w Запускаем: /tmp/testfs Результат: 2) 7.340u 24.591s 0:36.84 86.6% 56+187k 0+0io 0pf+0w 4) 7.652u 24.271s 0:36.84 86.6% 56+187k 0+0io 0pf+0w 6) 7.402u 24.504s 0:36.83 86.6% 56+186k 0+0io 0pf+0w 001-3 Просто создание файла нулевой длины PHP код:
Результат: 1) 12.111u 43.326s 1:04.79 85.5% 54+180k 157+0io 0pf+0w 3) 12.007u 43.196s 1:05.69 84.0% 56+182k 158+0io 0pf+0w 5) 12.030u 43.177s 1:02.33 88.5% 55+182k 0+0io 0pf+0w Запускаем: /tmp/testfs Результат: 2) 12.405u 42.744s 1:02.26 88.5% 54+181k 9+0io 0pf+0w 4) 12.402u 42.678s 1:02.07 88.7% 54+182k 0+0io 0pf+0w 6) 12.049u 42.993s 1:03.47 86.7% 55+182k 0+0io 0pf+0w 001-4 Запись некоторого текста в файл, если его не существует - он создается. PHP код:
Результат: 1) 14.642u 48.725s 1:12.49 87.4% 55+184k 0+0io 0pf+0w 3) 14.953u 48.294s 1:13.42 86.1% 55+183k 0+0io 0pf+0w 5) 14.465u 48.775s 1:12.24 87.5% 54+184k 0+0io 0pf+0w Запускаем: /tmp/testfs Результат: 2) 14.954u 48.323s 1:15.24 84.0% 55+184k 0+0io 0pf+0w 4) 14.932u 48.448s 1:12.51 87.3% 55+184k 0+0io 0pf+0w 6) 14.736u 48.387s 1:12.24 87.3% 55+184k 0+0io 0pf+0w 001-4 Запись два раза некоторого текста в файл, если его не существует - он создается. PHP код:
Результат: 1) 21.137u 68.812s 1:42.95 87.3% 58+184k 0+0io 2pf+0w 3) 21.057u 68.592s 1:43.86 86.3% 56+184k 0+0io 0pf+0w 5) 21.176u 68.506s 1:41.04 88.7% 56+183k 0+0io 0pf+0w Запускаем: /tmp/testfs Результат: 2) 20.695u 68.710s 1:42.00 87.6% 56+184k 0+0io 0pf+0w 4) 21.164u 68.392s 1:40.73 88.9% 57+184k 0+0io 0pf+0w 6) 20.559u 69.249s 1:42.35 87.7% 57+184k 0+0io 0pf+0w 001-5 Сначала создаем файл, потом в него пишем информацию. PHP код:
Результат: 1) 25.683u 86.701s 2:08.34 87.5% 56+183k 0+0io 0pf+0w 3) 25.445u 87.655s 2:08.24 88.1% 57+183k 0+0io 0pf+0w 5) 25.141u 87.789s 2:09.79 87.0% 56+183k 0+0io 0pf+0w Запускаем: /tmp/testfs Результат: 2) 25.946u 86.947s 2:09.46 87.1% 56+183k 0+0io 0pf+0w 4) 25.513u 87.211s 2:08.09 88.0% 57+183k 0+0io 0pf+0w 6) 25.594u 87.748s 2:10.48 86.8% 57+183k 0+0io 0pf+0w Отлично? Отлично! А теперь Perl :) Простой цикл. PHP код:
Цикл выводящий информацию на экран PHP код:
Цикл записывающий в файл PHP код:
Цикл записывающий в файл два раза. PHP код:
|
Слово reboot в скобках означает попытку сделанную сразу после перезагрузки.
002-1 Поиск файла /tmp/find PHP код:
0.028u 0.038s 0:00.06 83.3% 50+2300k 0+0io 0pf+0w (reboot) Поиск строки в файле 002-2 /tmp/findstring PHP код:
-------------------------------------------------------------------------- 003-1 Удаление файлов # time rm -r /tmp/test/test1 0.014u 0.237s 0:00.26 92.3% 17+3187k 0+0io 0pf+0w 0.039u 0.180s 0:00.23 91.3% 16+3093k 1+0io 0pf+0w (reboot) |
004-1
Создание 10.000 директорий /tmp/mkdir PHP код:
11.556u 40.468s 0:56.87 91.4% 54+181k 160+10io 0pf+0w (reboot) Создание 10.000 директорий /tmp/perlmkdir PHP код:
Создание 100.000 директорий 0.375u 3.428s 0:24.80 15.2% 10+336k 108+11505io 0pf+0w Вот здесь то и работает диск на всю. А процессор простаивает. ------------------------------------------- 005 Поиск директории PHP код:
0.072u 0.493s 0:00.59 94.9% 45+1685k 0+0io 0pf+0w (????) # time find /tmp/test/test1 -name 19950 -print 0.096u 0.792s 0:55.92 1.5% 49+1882k 10000+0io 0pf+0w (первый запуск после reboot) # time find /tmp/test/test1 -name 19650 -print 0.083u 0.464s 0:00.61 88.5% 48+1800k 10+0io 0pf+0w (второй запуск, спустя минуту) ------------------------------------- 006 Удаление директорий # time rm -r /tmp/test/test1 0.347u 9.961s 0:16.26 63.3% 14+3289k 6702+0io 0pf+0w 0.130u 1.450s 0:56.98 2.7% 15+3397k 10000+0io 0pf+0w (reboot) |
009
Распаковка архива на этот же диск # time tar xzf /tmp/ports.tar.gz 4.737u 12.657s 1:41.15 17.1% 59+427k 24842+303io 0pf+0w 4.987u 16.189s 1:46.95 19.7% 60+2034k 13907+629io 0pf+0w (reboot) ----------------- Создание архива # time tar -czf ports2.tar.gz /tmp/ports 26.322u 11.424s 3:26.16 18.3% 59+661k 117542+284io 7pf+0w 25.188u 9.738s 1:34.12 37.0% 60+683k 113663+284io 2pf+0w (reboot) (перепроверить) --------------------- 011 Удаление распакованного архива # time rm -r /tmp/ports 0.485u 5.302s 0:45.61 12.6% 14+439k 15221+9io 0pf+0w 0.468u 5.150s 0:41.57 13.4% 15+452k 12698+12io 0pf+0w (reboot) ------------------------- |
013
Создание 1 Gb файла из /dev/zero # time dd if=/dev/zero of=/tmp/test/test1gb bs=1024 count=1024024 1048600576 bytes transferred in 24.572345 secs (42674013 bytes/sec) 0.231u 11.386s 0:24.70 47.0% 25+185k 15+8006io 0pf+0w 1048600576 bytes transferred in 24.291338 secs (43167675 bytes/sec) 0.341u 11.259s 0:24.31 47.6% 25+190k 17+8002io 0pf+0w (reboot) Model Family: Seagate Barracuda 7200.8 family Device Model: ST3250823A Serial Number: 5ND26VCP Firmware Version: 3.06 User Capacity: 250 059 350 016 bytes ATA Version is: 7 1048600576 bytes transferred in 20.434582 secs (51315000 bytes/sec) 0.483u 11.367s 0:20.45 57.8% 25+189k 24+8000io 0pf+0w ------------------ 014 Копирование 1 Гб файла на другой диск (ad0 > ad3) # time cp /tmp/test/test1gb /mnt/Umor/test 0.062u 9.185s 0:29.41 31.4% 20+272k 8067+8000io 1pf+0w 0.055u 8.629s 0:27.91 31.0% 20+268k 8074+8000io 0pf+0w (reboot) ---------------- 017 Копирование 1 Гб файла в /dev/null # time cp /tmp/test/test1gb /dev/null 0.024u 3.711s 0:25.27 14.7% 20+269k 8034+0io 0pf+0w # time cat /tmp/test/test1gb > /dev/null 0.047u 3.748s 0:25.05 15.0% 10+189k 8040+0io 0pf+0w 0.033u 3.682s 0:24.99 14.8% 9+179k 8040+0io 0pf+0w (reboot) Model Family: Seagate Barracuda 7200.8 family Device Model: ST3250823A Serial Number: 5ND26VCP Firmware Version: 3.06 User Capacity: 250 059 350 016 bytes ATA Version is: 7 0.046u 3.658s 0:20.36 18.1% 10+194k 8051+0io 0pf+0w |
015
Разбиение 10 Мб файла на части по 1000/1024/2048/4096/8192 байт # time split -a 6 -b 1000 /tmp/test/test10mb 0.032u 1.006s 0:02.35 43.8% 10+275k 0+1io 0pf+0w # time split -a 6 -b 1024 /tmp/test/test10mb 0.033u 0.954s 0:02.16 45.3% 9+264k 1+18io 0pf+0w # time split -a 6 -b 2048 /tmp/test/test10mb 0.016u 0.482s 0:01.00 49.0% 9+268k 0+8io 0pf+0w # time split -a 6 -b 4096 /tmp/test/test10mb 0.000u 0.271s 0:00.44 61.3% 10+285k 0+8io 0pf+0w # time split -a 6 -b 8192 /tmp/test/test10mb 0.000u 0.155s 0:00.36 41.6% 10+278k 0+9io 0pf+0w Ну вот и что мы померяли? Не знаю. В одном случае - быстродействие шелла, в другом - скорость винчестера. А где же быстродействие файловой системы? Если только при работе с архивами. Да поиск. Продолжение следует .... |
В качестве продолжения взят другой винчестер
=== START OF INFORMATION SECTION === Model Family: Western Digital Caviar SE family Device Model: WDC WD2500JB-00GVC0 Serial Number: WD-WCAL76603272 Firmware Version: 08.02D08 User Capacity: 250 059 350 016 bytes ATA Version is: 6 ATA Standard is: Exact ATA specification draft version not indicated ******* Working on device /dev/ad4 ******* parameters extracted from in-core disklabel are: cylinders=7752336 heads=1 sectors/track=63 (63 blks/cyl) Figures below won't work with BIOS for partitions not in cyl 1 parameters to be used for BIOS calculations are: cylinders=7752336 heads=1 sectors/track=63 (63 blks/cyl) Media sector size is 512 Warning: BIOS sector numbering starts with sector 1 Information from DOS bootblock is: The data for partition 1 is: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 63, size 20972385 (10240 Meg), flag 80 (active) beg: cyl 1/ head 0/ sector 1; end: cyl 95/ head 0/ sector 63 The data for partition 2 is: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 20972448, size 446274864 (217907 Meg), flag 0 beg: cyl 96/ head 0/ sector 1; end: cyl 815/ head 0/ sector 63 The data for partition 3 is: sysid 165 (0xa5),(FreeBSD/NetBSD/386BSD) start 467247312, size 21149856 (10327 Meg), flag 0 beg: cyl 816/ head 0/ sector 1; end: cyl 655/ head 0/ sector 63 то есть разбит на 10(ad4s1a)+217(ad4s2a)+10(ad4s3a) 1) скорость на запись time dd if=/dev/zero of=/mnt/ad41/test/file bs=16384 count=65000 1064960000 bytes transferred in 18.790220 secs (56676292 bytes/sec) 0.031u 4.332s 0:18.81 23.1% 25+228k 23+8160io 0pf+0w time dd if=/dev/zero of=/mnt/ad42/test/file bs=16384 count=65000 1064960000 bytes transferred in 19.721640 secs (53999566 bytes/sec) 0.039u 4.649s 0:19.74 23.6% 25+226k 35+8160io 0pf+0w time dd if=/dev/zero of=/mnt/ad43/test/file bs=16384 count=65000 1064960000 bytes transferred in 31.197468 secs (34136104 bytes/sec) 0.066u 4.589s 0:31.25 14.8% 27+245k 36+8165io 0pf+0w тут еще за бортом остаются такие параметры как "килобайт на транзакцию" и "количество транзакций в секунду". Тоже весьма любопытный параметр |
Примерно с какими параметрами надо монтировать разделы в Линуксе - ext3, reiserFS
Может подскажете. |
Igor_I
1 Напишите-к Вы статью на Wiki - будет какая-то польза остальным :) 2 вопрос задан некорректно :) Не понятно что значит надо - параметры могут быть любыми :) man mount man fstab |
ruslandh
Так не со всеми параметрами сразу. Вот у тебя лично, как смонтированны разделы? |
UUID=c845af3e-51ed-4b08-b342-f91fa348609c / ext3 defaults 1 1
UUID=7a485083-3512-47f9-ba61-f75122a8c2bb /boot ext3 defaults 1 2 UUID=a1bacb74-b1eb-4da8-88ba-bfb1fe63f613 /home ext3 defaults 1 2 /dev/sda2 /mnt/win_c1 vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0 /dev/sda3 /mnt/win_c2 vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0 /dev/sda5 /mnt/win_d vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0 /dev/sda6 /mnt/win_e vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0 /dev/sda7 /mnt/win_f vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0 /dev/sda9 /mnt/win_g vfat iocharset=cp1251,quiet,codepage=866,umask=0 0 0 /dev/sdb5 /mnt/win_h ntfs defaults,quiet,umask=0,nls=cp1251 0 0 UUID=6d77db04-154b-442b-be08-336f0952c1a1 swap swap defaults 0 0 UUID=2acf0afc-14f4-42f6-a222-4f492b2e4e4b /arhiv ext3 defaults 1 UUID=b34fdc30-ded1-45b2-80fd-8c197b40cbf9 /mnt/arhiv ext3 defaults 0 |
спасибо
:) |
Вопрос, как можно нагрузить диск на чтение, если создается 20 директорий по 200 файлов.
Если все - много, да и последовательное чтение быстрее проходит, чем случайное. |
Обрати внимание на
apt-cache search Bonnie++ bonnie++ - Программа для определения скорости работы жестких дисков и файловых систем bonnie - Unix filesystem performance benchmark http://www.rpmfind.net/linux/rpm2htm...p?query=bonnie |
это наверно синтетика
хотя у меня тоже надуманный тест, но все же, потом посмотрим из чего состоит тест создание 20 директорий, в каждой директории по 200 файлов одного размера размер файлов от 2 до 1024 кб чтение - тут еще не определился, есть подозрение что system в Perl медленный, только как проверить. |
Вложений: 1
вот результат некоторой работы. критика приветствуется
PHP код:
|
Цитата:
|
Цитата:
И потом вывод команд разве одинаковый? iostat -x -d ad4 -I 2 iostat -d ad4 -I 2 time - это внутреняя команда tcsh |
Цитата:
|
да нет, всё последующее
как выглядят нужные команды я не знаю, да и тестировать не на чем. пока фри, тем более там оказывается нужно бы потестировать 10 параметров при создании системы и еще при монтировании, наверно столько же |
ruslandh
еще вопрос, как в Linux создаются файловые системы, с какими параметрами. Интересуют размеры блоков, фрагментов и размер inoda. |
Igor_I
Честно сказать - теорию не читал. На практике можно посмотреть на конкретных машинах. Как создаются - через parted или fdisk. Обычно при создании "система" сама выбирает параметры, но возможно есть какие-то ключи. |
В ufs размер блока от 4096 до 65384, при этом размер фрагмента равен 1/8-1/2 от блока, mke2fs создает ext2 с блоками 1024-4096, размер фрагмента равен размеру блока, не густо :). Правда по запросу может создать файловую систему и с большими блоками. Но фрагмент останется равным блоку.
|
Размер фрагмента блока - это вроде особенность FreeBSD файловых систем (в смысле не Linux), хотя могу ошибаться.
|
Сравнение производительности файловых систем или Reiser4 наносит ответный удар.
Некто John Robert Banks провел серию тестов популярных файловых систем, поддерживаемых Linux (ext2/3/4, reiser3/4/4 with compression, xfs, jfs, fat32, ntfs-3g) на нескольких ядрах (2.6.13 - suse 10 default и 2.6.20-mm1) на AMD Socket AM2 Athlon 64 3500+ system with a Seagate 250 Gig SATA drive and 512 MB RAM. Представленные результаты весьма интересны апологетам Reiser4 - несмотря на то, что автор утверждает о абсолютном превосходстве Reiser4 над всеми остальными системами, таблицы показывают что далеко не все тесты настолько оптимистичны, а Reiser4 без компрессии практически всегда медленее ext4. О корректности предоставленных результатов, конечно же, необходимо судить в контексте решаемой задачи. (c)linux.org.ru |
[mzd]
Этот сайт имеет ограничение траффика в 40 мб. Так что, посмотреть наверно только в понедельник. |
Вложений: 1
У меня сейчас изменились приоритеты на автомобильную тему, а значит на компьютеры время не остается. И довести до ума графики не могу уже месяца два.
Выкладываю, что есть. Тестировалась UFS2. C разными блоками/фрагментами. Тесты все, за исключением одного, FreeBSD зависала при нем. |
Время: 19:20. |
Время: 19:20.
© OSzone.net 2001-