Списки управления доступом
Рефераты >> Программирование и компьютеры >> Списки управления доступом

3.2.5 Производительность EA и ACL

Так как ACL предоставляют более продуманный и проработанный механизм управления доступом, они используются всегда, когда необходимо принятие решения о правах доступа к объектам файловой системы. Интересно сравнить время, которое необходимо потратить на принятие такого решения с ACL и без него.

Измерения были проведены на ПК с операционной системой SuSE Linux 8.2 с ядром SuSE 2.4.20. В ПК установлены процессор AMD Athlon с тактовой частотой 1.1 ГГц и оперативная память, объемом 512 Мб. Тестирование проводилось на жестком диске IBM Ultra ATA 100 объемом 30 Гб со скоростью вращения цилиндров 7200 об/м, среднее время посиска 9.8 мс, размер дискового кэша 2 Мб. Файловые системы Ext2, Ext3, ReiserFS и JFS создавались на разделе размером 8 Гб с параметрами по-умолчанию. В случае XFS для сравнения EAs, которые хранятся в inode, и EAs, которые хранятся вне inode, были созданы файловые системы XFS с размерами inode 512 байта и 256 байт. Эти файловые системы названы XFS-512 и XFS-256 соответственно.

Таблица 5 показывает результаты тестирования времени, затраченного на начальную проверку прав доступа к файлу с ACL и без ACL после перезагрузки системы. Для того, чтобы исключить время, потраченное на загрузку файлового inode в кэш, вызывался системный вызов stat перед каждой проверкой прав доступа. Время, потраченное на этот вызов не показано. Первое использование ACL доступа файла может потребовать одного или более прямых доступов к диску, которые во много раз медленнее доступа к диску через кэш. Настоящее время этих доступов к диску довольно широко зависит от скорости вращения цилиндров и относительного расположения блоков, к которым предоставляется доступ. Функция, используемая для измерения времени имеет порядок аппроксимации в микросекунду. В случае ACL файл, к которому проверялись права доступа, имел ACL с пятью ACE.

Таблица 5: Производительность ACL в SuSE 8.2

 

Без ACL, мкс

С ACL, мкс

Ext2

9

1743

Ext3

10

3804

ReiserFS

9

6165

XFS-256

14

7531

XFS-512

14

14

JFS

13

13

XFS с размером inode 512 байт (или больше) и JFS хранят ACL прямо в inode. Поэтому в этом случае нет необходимости в дополнительных доступах к диску для получения ACL.

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

Команда ls –l показывает в своем выводе имеет ли файл расширенный ACL. Внутренне она использует функцию acl_extended_file библиотеки libacl. Эта функция почти так же быстра, как и системный вызов stat, который команда ls –l также вызывает для каждого файла, так что итоговые временные расходы малы.

Таблицы 6 и 7 показывают включенные временные расходы на копирование файлов из одной файловой системы в другую. Все копируемые файлы имеют ACL, но не имеют дополнительных EAs. Тесты показывают время, потраченное на операции, начиная с команды cp и заканчивая командой sync, которая запускалась сразу же после команды cp. Команда sync гарантирует, что файлы будут немедленно записаны. В первом случае использовалась версия cp, которая не имеет поддержки EAs и ACL. Во втором случае использовалась версия cp, которая поддерживала и EAs и ACL. В обоих тестах файловая система-источник оставалась неизменной, в то время как файловая система-приемник менялась.

В примере для теста в таблице 6 размеры достаточно мал для всех файлов, чтобы уместить их в главную память. Время, потраченное на первое чтение файлов в память, не учитывалось. Эти тесты повторялись 5 раз. Результаты содержат среднее и стандартное распределение. В примере для теста, показанного в таблице 7, размеры файлов больше чем размер главной памяти и размер системного файлового журнала. Эти тесты проводились единожды.

Таблица 6: Копирование файлов из памяти в файловую систему (11351 файлов, 608 каталогов, итоговый размер файлов = 137 Мб)

Файловая система

Без

С

Накладные расходы,%

EAs, с

ACLs, с

EAs, с

ACLs, с

Ext2

18.3

0.2

18.8

0.2

3

Ext3

22.0

2.4

22.7

0.5

3

ReiserFS

9.0

0.1

12.8

0.1

42

XFS-256

19.0

0.2

34.1

0.2

80

XFS-512

20.1

0.4

21.4

0.2

7

JFS

38.2

0.6

36.5

0.2

4

Таблица 7: Копирование файлов между файловыми системами (96183 файлов, 6323 каталогов, итоговый размер файлов = 2.8 Гб)

Файловая система

Без EAs и ACL, с

С ACL, с

Накладные расходы, %

Ext2

595

578

3

Ext3

613

623

2

ReiserFS

518

538

4

XFS-256

547

641

17

XFS-512

549

566

3

JFS

654

590

11


Страница: