Тесты в FAT и NTFS. Документы будут храниться по-новому.



Posted by Аркадий Водяник on June 21, 1999 at 05:40:55:

In Reply to: ФБП: Сеpвеp 3.02. Первые впечатления posted by Анатолий Анимица on June 20, 1999 at 08:20:14:

Анатолий Антонович пишет:

6. Резюме. Работать можно уже сейчас. Ничего не разваливается. Но я бы посоветовал
пока воздержаться.

И он прав (только в отношении версии Сервера 3.02), так как скорость работы
файловой системы при большом количестве файлов в каталоге (в данном случае в TXA)
неудовлетворительна.

Я написал на Паскале следующий тест. Его первая часть создает N файлов в каталоге:


var f : text; fn: string; i,N : longint;
begin
readln(N)
for i:=1 to N
do begin str(i,fn); assign(f, '.\TXA\' + fn); rewrite(f); write(f,i); close(f); end;
end.

А вторая часть теста имитирует открытие и закрытие дескрипторов всех первичных
документoв:

var f : text; fn: string; i,N : longint;
begin
readln(N)
for i:=1 to N
do begin str(i,fn); assign(f, '.\TXA\' + fn); reset(f); close(f); end;
end.

Эта вторая часть была сконвертирована нашим конвертером в С и скомпилирована Watcom C 10.5
в 32-разрядную программу для 95/NT. Затем я выполнил эту программу для разных значений N.
To есть сначала каталог ТXA очищался, затем выполнялась первая часть теста, затем вторая
с тем же значением N. Измерялось время работы только второй части. Опыты проводились на
машине P233, 64Mb в Windows NT 4.0. Объем раздела диска был 2Гб. Сначала этот раздел был
сформатирован для FAT, а затем для NTFS. Результаты показаны в таблице:

----------------------------------------------------------------
Количество файлов | Время открытия/закрытия всех файлов каталога
в каталоге (N) |---------------------------------------------
| FAT | NTFS
|---------------------------------------------
| общее,с на один | общее,с на один
| файл, мс | файл, мс
----------------------------------------------------------------
100 | 0.03 0.3 | 0.03 0.3
1000 | 0.30 0.3 | 0.30 0.3
5000 | 7.2 1.4 | 4.4 0.9
10000 | 19 1.9 | 10 1.0
20000 | 128 6.4 | 20 1.0
50000 | 1114 22.3 | 72 1.4
----------------------------------------------------------------

Выводы:
a) По-видимому, при работе с FAT система ищет файлы в каталоге простым сканированием.

б) При большом количестве первичных документов версия 3.02 будет работать неприемлемо
медленно в Windows 95/98 (где нет NTFS). Успешно работать можно только в Windows NT
с NTFS.

Что я введу в версии ФБП:Сервере 3.03:

В каталоге для хранения первичных документов и их дескрипторов (TXA) Сервер будет создавать
подкаталоги: TXA\A (для января), TXA\B (для февраля) и т.д. И документы с дескрипторами
будут храниться в этих подкаталогах, в зависимости от того, к каким месяцам они относятся.
Таким образом, количество файлов в одном каталоге будет уменьшено в среднем в 12 раз.
И в подавляющем большинстве случаев переход от Windows 95/98 к Windows NT с NTFS
не потребуется.

Ну и конечно же, файлы первичных документов с нулевой длиной (и дескрипторы к ним)
создаваться не будут.

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



Пpишедшие ответы: