This article is devoted to
file systems, used in Windows95/98/ME and WindowsNT/2000. There are no
any graphs as they are mostly depend on the definite system used. We will
just describe the general tendency of the file systems performance. And
then, you are to judge what is better for you. We will take a look at
three systems - FAT (further FAT16), FAT32 and NTFS.
The article consists of many parts, each describes a definite
issue connected with performance. At the end I will collect everything
together and evaluate what would be said above.
1. Theory
The most fundamental feature
influencing the performance of any file system is the structure of data
organization and storage. So, in this part we will analyze the aspect
of physical working with structures and data of the file systems.
Any file system stores data in sectors (it's the smallest
part of the useful information of the disc). The sector's size is 512
bytes. All the file systems read and transfer the information without
any data treatment to applications. Of cause, if the file is encoded,
the system, first, has to decode data (it can be i.e. in NTFS).
In other cases data reading and recording is implemented with the equal
speed.
Now let's take a close look at the major processes for file
access:
File data search
The search of the information on the data storage differs
in different file systems (notice, that it does not mean the file data
access).
What this parameter influences: access speed to the
required fragment in the file. Any kind of work with huge files and documents
in case their size is more then a megabyte. The parameter shows how the
fragmentation influences the system performance.
- NTFS is capable to find the fragment quite fast, since the whole
information is kept in several compact records. If a file is fragmented
quite strongly, then, the HDD head has to implement many movements.
It slows the process down.
- FAT32, since it is itself big enough, will have difficulty, if the
fragments of the file are spread out on the disc. The matter is that
the FAT (File Allocation Table) represents some kind of a mini disc,
where each its cluster is located. To access the fragment of the file
in the system of FAT16 and FAT32 it's necessary to apply to the corresponding
part of the FAT. If the file consists of 3 parts which are located in
the beginning of the disc, in the middle and in the end, then in the
FAT it's necessary to apply to the beginning, to the middle and to the
end as well. In FAT16 with the maximum size of 128 KBytes it won't cause
any problems - the whole FAT is stored in the memory, or read at one
time and buffered. FAT32 has much bigger size. And the HDD head must
commit as many movements as there are fragments groups in the different
parts of the disk. It tremendously slows the process.
Conclusion: The absolute leader is FAT16, it won't
make the system execute extra operations for this purpose. Then goes NTFS
- the system doesn't require reading of the unnecessary information, at
least if the file has not so many fragments. FAT32 works much slower,
if the file is spread out on the disc. The operation with large files
is quite complicated in FAT32. It should be noted that, if the file is
fragmented, but all the fragments are close to each other, FAT32 doesn't
have so much difficulty, since the physical access to the FAT would be
compact and buffered as well.
Free space search
This operation is executed in case of file creating or copying
on another disk. Space search for physical file data depends on how the
information on the recorded disc parts is stored.
What this parameter influences: file creation speed
(especially for big files). Creation or saving of the big multimedia files
(i.e., .wav) in the real time mode, copying of huge amount of information
etc. The parameter shows how fast the system is able to find the place
for new data and what operation it must implement.
- To determine whether the cluster is free or not, the FAT systems
must check the FAT recording that corresponds to this cluster. The size
of one recording is 16 and 32 bits for FAT16 and FAT32 correspondingly.
Sometimes, to find free place it might be necessary to look through
the whole FAT. So, the system has to resort to various tricks to prevent
it.
- In NTFS one cluster corresponds to 1 bit. So, the system has to spend
much less time to find free space, than in FAT and FAT32.
Conclusion: NTFS has the most effective searching
system. We have noticed, that there are different optimization methods
for FAT16 and FAT32 to reach the higher speed. Though in DOS you won't
get it.
Operations with folders and files
The speed of these operations depends on the principles
of organization of data on different files, and on the directory structure.
What this parameter influences: speed of operations
with files (including the access speed).
- FAT16 and FAT32 have quite compact directories. The structure of
long names storage in the FAT is not so effective, but it's efficient.
The operations with directories are not so slow, since they are not
fragmented. Although this speed can be lower because of a large number
of files in the directories. The system of data storage is designed
as a line array. And to find the required file, it's necessary to look
through the half of the all files in this folder.
- NTFS uses a more effective addressing method, that is a binary tree.
This organization allows working effectively with directories of any
size. However, the NTFS directories are less compact than that of FAT.
It's connected with the size of one directory recording. This causes
a fragmentation of the directories in NTFS. If in FAT the typical directory
takes only one cluster, in NTFS it takes much more, and this leads to
the fragmentation.
Conclusion: In theory, the structure of directories
in NTFS is more effective. NTFS performance is higher if one directory
contains thousands files. In this case the operating speed in NTFS is
tens times higher than that of FAT and FAT32.
2. Practice
Unfortunately, the practice
is not accord with the theory. In practice, NTFS doesn't have such an
advantage. What else influences the FS performance? Below we will consider
these factors.
2.1. RAM size (caching)
A lot of data in the modern
FS are cached and buffered in PC's RAM, this allows to avoid unnecessary
physical operations of data reading from the disc. The following kinds
of information are to be kept in the cache for high system performance:
- The data on the physical location of all open files. It allows to
apply to system files and libraries without reading service information
from the disc. It concerns also the files being executed at that moment
(.exe, .dll), as well as a registry, virtual memory, .ini and the files
of documents and applications.
- The directories that used most of all. For example, start menu.
- The data on the free disc space.
In case these data are not in the RAM, it might take a lot
of time to achieve them. What must be the size of the RAM to work effectively
with the FAT or NTFS?
- FAT16 contains a few data charged with the organization of the file
system. The service space of FAT16 takes only 128 KBytes! It is charged
with file fragments search and free space search on the disc. The directories
of the FAT are also very compact. The memory size for effective work
with FAT can constitute up to megabytes.
- FAT 32 differs from FAT16 in size. On the discs of 5-10 GBytes the
FAT can take up to several megabytes. And it's difficult to cache so
much space. The parts of the FAT with information on working files location
are cached.
- NTFS has more strict requirements for the memory. The caching
is difficult to implement in the following case: the big size of directories
(up to 20-30 MBytes), the map of the free disc space (hundreds KBytes),
MFT records for the executed files (1 KBytes per file). Fortunately,
in NTFS with the disc size increasing, the fixed areas remain the same.
The amount of data do not depends on the disc size; the directories
influence the amount of data to cache. Nevertheless, it's quite enough
for the minimum amount of data for caching to reach 5-8 MBytes.
Unfortunately, NTFS loses its theoretical operating speed
due to the insufficient caching. On the systems with less than 64 MBytes
of the memory, NTFS is not able to be faster than FAT16 or FAT32.
The typical memory size of 64 MBytes does not leave a chance
to organize effective work in NTFS. On the discs up to 10 GBytes FAT32
works faster. However, there are implemented much more fragmentation with
FAT32 than with NTFS. But if you make a disc fragmentation sometimes,
it's still better to use FAT32. However, many prefers NTFS thanks to its
other advantages.
The systems with more than 64 MBytes memory will cache absolutely
everything, what is necessary for system working. And for these systems
NTFS is more efficient.
2.2. HDD performance
Do the physical parameters
of HDD influence the FS performance? Yes, a little. We can define the
following physical parameters:
- Random seek time. To access the system areas the HDD heads have to
make more movements in NTFS than in FAT16 and FAT32. NTFS has much more
fragmentation of directories. That's why we won't recommend you to use
it on the old discs, since the long time of the track search makes the
performance worse.
- Bus Mastering. It is a special mode of driver and controller work,
when the data exchange with a disc is implemented without a processor.
NTFS works quite effectively here.
- Caching of reading and writing in the HDD (HDD buffer size is up
to 2 MBytes). This factor is used for the systems based on FAT.
Conclusion: NTFS suffers from slow discs much more than
FAT.
2.3. Cluster's size
In FAT32 and NTFS when formatting
you can set this parameter arbitrarily. The more the size is, the better
is the performance (especially for FAT32).
- The typical cluster's size for NTFS constitutes 4 KBytes. But
with the cluster of a big size, there isn't any more an opportunity
of compression of separate files. So, the optimal size is 16 KBytes.
The further increase is not effective. If you want to increase the performance
of NTFS (though you will lose possibility of compression), make your
disc formatted with the cluster's size more than 4 KBytes.
- FAT32 performance may increase by making the cluster's size bigger.
For example, when the cluster is enlarged 2 times, the FAT gets 2 times
smaller. This causes the performance increase, since the amount of system
data get smaller, and therefore, it will take less time to find the
data on the location of files. Besides, the RAM size for buffering will
get smaller. So, the cluster's size increase to 16 KBytes (especially
for HDDs more than 10 GBytes) is a rational way.
2.4. Other considerations
NTFS is a quite complicated system. That's why there are
other factors influencing its performance:
- The NTFS disc was achieved by a conversion of FAT16/FAT32 partition.
(the command convert). This procedure will
lead to high fragmentation of the NTFS system area. You should avoid
conversion of other system in NTFS.
- The active work with the disc of 80% - 90% occupied space worsens
the performance of NTFS. In this case the fragmentation of files and
service areas will be rising too quickly. There you should use FAT32.
3. Conclusions
FAT highs:
- The effective work requires few of RAM.
- Fast work with small and average directories.
- The disc implements less movements of the heads (as compared with
NTFS).
- The effective work on slow discs.
FAT lows:
- Quick performance decrease with the fragmentation going up (only
for FAT32).
- Difficulty in access to big files (more than 10% of the disc space).
- Very slow work with directories containing huge amount of files.
NTFS highs:
- Fragmentation does not influence the system performance (the work
might became worse as far as data access is concerned).
- Complicity of the structure of directories and the number of files
do not affect the performance.
- Quick access to the required file fragment (i.e. editing of big .wav
files).
- Very quick access to small files (several hundreds bytes) - the whole
file is located in the same place as the system data (MFT recording).
NTFS lows:
- The memory size mustn't be less than 64 MBytes.
- Slow discs and controllers without Bus Mastering slows the system
performance down tremendously.
- The work with average-size directories is quite difficult, since
they are fragmented.
- The disc working for a long time with 80% - 90% of its space occupied
shows low performance.
Remember, that the RAM size is the chief factor influencing
the system performance. In case of 64-96 MBytes both NTFS and FAT are
equal. If you are using only an OS and simplest applications, FAT32 might
turn to be better on the PCs with bigger size of memory.
NTFS is still a system for future. On the typical game system
it won't show the brilliant operating speed. The main advantage is that
the complicity of directory structure, disc size, fragmentation do not
have an influence on the system performance. In FAT, on the contrary,
all these factors slow the operating speed down.
FAT 32 is the better choice for simple users' systems. As
for graphics workstations, office computers with thousands of documents
and moreover file-servers, NTFS shows higher performance.
Write a comment below. No registration needed!