performance evaluation of the ext4 file system a...
TRANSCRIPT
Performance Evaluation of the EXT4 File System
A Comparative Study Against EXT3, ReiserFS and JFS
Alireza Ghobadi1, Amir Hesam Yaribakht
1, Sanam Maham
2, Mohammad Hossein Ghods
2
1Faculty of Information Technology Multimedia University Cyberjaya 63000 Selangor, Malaysia
2SOHA Sdn. Bhd.,AB1 MSC Center, Cyberjaya, Selangor, Malaysia
Abstract— Base on several definition of File System, File
System is a system which is responsible to handle files and
managing data in any operating system [1]. According to
these definitions, choose a File System to managing data on
your system, is one of the consideration for anybody who use
a computer. Anybody can fill this problem when you have a
lot of files with a large portion. File System types can be
classified into disk File Systems, network File Systems and
special purpose File Systems[2][3][4.] The purpose of this
Paper is “comparison Performance evaluation among four
File Systems”. According to above goals, there are several
file systems on Linux operation system. These file system are
EXT2, EXT3, EXT4, ReiserFS, JFS, and etc. In this paper, we
are neither define several file systems on Linux nor compare
them and tested by IOzone and Postmark benchmark tools
[5][6]. The performance result has shown base on read, re-
read, write and re-write of file for IOzone benchmark tool
and create, read, append, delete for Postmark benchmark
tool. We have chosen IOzone bench mark for our experiments
as it is preferred for operating system evaluation [7].
Keywords- Performance Evaluation, File System, EXT4,
EXT3, ReiserFS
1 Introduction
Base on several definition of file system, File system is a
system which is responsible to handle files and managing data
in any operating system [1]. According to these definitions,
choose a good file system with the best performance is one of
the considerations [1].
File system types can be classified into disk, network
and special purpose. A disk file system designed for the file
storage on a data storage device. Normally disk drive, directly
or indirectly connected to the computer or any computer
device.
The principal aims of file system are to address
scalability, performance, reliability, capabilities and
robustness. On the other hand, the most popular Linux file
system due to its reliability, rich feature set, relatively good
performance, and strong compatibility between versions of
file system.
According to above goals, there is several file system on
Linux operating system. These file system are EXT2, EXT3,
EXT4, ReiserFS, JFS, and etc [7][8][9][10][11][12].
In this paper, we are neither define several operating
systems on Linux nor compare them and tested by IOzone
and Postmark benchmark tools. We will be showing
performance of them based on read, re-read, write and re-
write of file.
We have chosen IOzone and Postmark benchmark tools for
our experiments as it is preferred for operating system
evaluation [13][14].
1.1 Instructions for authors
This paper, compares and evaluates EXT4 against EXT3
and ReiserFS, JFS file systems on Linux. The paper studies on
these four file system in section 2, 3, 4. Related work in
section 5. Then, it focuses on performance evaluation tools in
section 6. Implementation of benchmark tools in section 7.
Results and discussion in section 8, and finally, conclusion
and future work in section 9.
2 Extent file systems
Extent file system was earlier file system that developed
on Linux by Rmy Card, Laboratoire. Until now Extended has
four generations and implement on several version of Linux
[10].
EXT2 designed by Wayne Davidson and Stephen
Tweedie and Theodore. They extended from EXT file system
which designed byRemy Card and implement on the standard
Linux file system [15][16].
EXT3 is one of the traditional Unix-derived file systems.
it used a indirect block mapping scheme to keep track of each
block. It the same data structures and supports journaling.
EXT3, which just added some features to EXT2 while
keeping the on-line format and approach of EXT2 [9].
EXT4 was developed by Theodore Ts’o, who was, at the
time In 2006. The uber Linux developer, which developed the
EXT3 maintainer, began work on EXT4., EXT4 changed a
deep code change and the data structures. These changes used
to make a better file system, faster, reliable, more features,
and better code. The most important and hard working on
EXT4, added new features such as, Extents, journaling check
summing, block allocation, delayed allocation, faster fsck, on-
line defragmentation, and larger directory sizes (up to 64,000
files) [12].
3 ReiserFS
ReiserFS was developed as a part of the standard Linux
kernel by Hans Reiser. [2] It is available on the most version
of Linux operating system. ReiserFS supports metadata
journaling. The ReiserFS has excellent performance for small-
files. ReiserFS Developed based on B* Balanced Trees to
organize directories, files, and data. B* provides fast directory
lookups and fast deletes operations. Other performance
features include support for sparse files and dynamic disk
inode allocation [2].
4 Journalin File Systems (JFS)
JFS introduced by IBM as UNIX file system with the initial
release of AIX Version 3.1. It has now introduced a second
file system that is to run on AIX systems called Enhanced
Journal File System (JFS2). JFS2 is available in AIX Version
5.0. The JFS Open Source code on originated [17].
JFS is modified primarily for the high throughput and
reliability requirements of servers. JFS uses extent-based
addressing structures, along with clustered block allocation
policies. It is make compact, efficient, and scalable structures
for mapping logical offsets within files to physical addresses
on disk. An extent is a sequence of contiguous blocks
allocated to a file as a unit. The addressing structure is a
B+Tree populated with extent descriptors, rooted in I-node
and keyed by logical offset within the file [17].
JFS supports block sizes of 512, 1024, 2048, and 4096
bytes on a per-file system basis. Smaller block sizes reduce the
amount of internal fragmentation. However, small blocks can
increase path length since block allocation activities may
occur more often than if a large block size was used. The
default block size is 4096 bytes [18].
JFS supports both sparse (which allow data to be written to
random locations within a file without instantiating others
unwritten file blocks.) and dense files, on a per-file system
basis. [18]
5 Related Work
Some researcher studied on Extents file
systems.[12][13][14] Avantika Mathur have worked on EXT3.
The purpose of their research was to provide branch of EXT4
from EXT3.[4] They compared EXT3, EXT4; XFS file
systems with three tools as FFSB, IOzone and Postmark. With
FFSB tool they test these file systems base on throughput
(MB/Sec) and CPU percent usage. [13] [14]
This test has shown that XFS has higher throughput
(MB/Sec) than EXT3 and EXT4, but it has lower CPU percent
usage than EXT3 and EXT4. EXT4 has higher throughput
(MB/Sec) performance than EXT3, but it has lower CPU
percent usage than EXT3 [9]. By IOzone tool they test these
file systems base of six operations as write, re-write, read, re-
read, random write and random read [11]. In this test shows
that in Write, re-write, random write and random read, EXT4
has higher throughput (KB/Sec) performance than XFS and in
general EXT4 has higher throughput (KB/Sec) performance in
all six operations than EXT3[9].
The test also shows that in read and re-read operations XFS
has higher throughput (KB/Sec) performance than EXT3 and
EXT4. Also observe that in re-write, random write, random
read, XFS has higher throughput (KB/Sec) performance than
EXT3. In write operation EXT3 has higher throughput
(KB/Sec) performance than XFS. With Postmark tool they test
these file systems based on two operations as read and write.
The test result not only shows that EXT4 has higher
throughput (MB/Sec) performance than EXT3 and XFS, but
also EXT3 has higher throughput (MB/Sec) performance than
XFS. In their comparison they find that EXT4 has a good
improvement of EXT3 and has become an enterprise-ready
solution, with a good balance of scalability, reliability,
performance and stability. [2]
Other researcher named, Ricardo Galli works on journal file
systems available for Linux as EXT3, ReiserFS, XFS and JFS
and they introduce to the basic concepts of file systems,
buffer-cache, and page-cache carried out in the Linux kernel.
[17]Their performance result shows that XFS, ReiserFS and
EXT3 have demonstrated that they are excellent and reliable
file systems. In this research, they achieved (i) EXT3 is going
to be the standard file system for Linux operating system,
specially Red Hat, (ii) JFS is a valid alternative for migrating
AIX and OS/2 installation to Linux.
(iii) In all journal file systems, ReiserFS is the only file
system which has standard Linux tree since 2.4.1 which SuSE
supports it. (iv) XFS is being used in large servers (especially
in the Hollywood industry). It is due mainly to the influence of
SGI market. (v) JFS has gotten the worst results (when tested
by any benchmarks) not only on performance, but also for
stability issue in the Linux port.
Dr. Oliver Diedrich has a well done study on EXT3 and
EXT4 file systems. He compares the structure of EXT3 and
EXT4 file systems base on large volumes, huge files and
extent trees. He evaluates a performance of these two file
systems based on creation (based on time and write speed) and
deletion (based on time) of eight 1 GB files and 10000
random read and write operations in 8 GB. He did not mention
what tools he used in his test, the performance with large files
between EXT3 and EXT4. The tests shows that in creation of
eight 1 GB files, time in EXT4 improved 6.9% and write
speed also improved 7.0% than EXT3. In deletion of eight 1
GB files, time improved 97.2% than EXT3. And among
10000 random read and write operations in 8 GB, EXT4
improved 10.9% than EXT3[11].
6 Performance Evaluation Tools
Benchmark is a tool for performance evaluation. There are
several benchmarks for file system available [13]
IOzone is one of the famous benchmark tools on file
system to generate and measures a selection of file operations.
It has been runs for test many operating systems. The IOzone
tests file I/O performance. I/O performance tests based on
Read, re-read, read backwards, read strided, write, re-write,
fread, fwrite, random read/write, pread/pwrite variants,
aio_read, aio_write, mmap.It is useful for file system analysis
of a vendor’s computer platform. [13]
Another famous benchmark is The Postmark. It is
responsible to creating a massive bulk of alternatively
modifying files and calculating the transaction rates for a
workload approximating a large Internet electronic mail server
[14]. Postmark operation, produces random text files. The text
files size categorizes from low bound to high bound. The size
is configurable between low and high bound The text file pool
is of configurable size and can be located on any accessible
file system.[14] Once the bulk has been created consists of a
pair of smaller transactions (i) Create file or Delete file and
(ii) Read file or Append file operation.
According to comparison of these benchmark tools, the
achievement the IOzone performance shows that, this tool is
more suitable for experimental result due to the performance
of IOzone is higher than Postmark tool.
7 Implementation
File system benchmarking requires careful setup. An issue
one must often contend with is how to defeat the effects of the
file system buffer cache. Without careful experimental design,
all of the file system requests could be satisfied in the cache
and no disk activity would occur. A usual way to avoid this
problem is to use a total file size that exceeds the amount of
main memory available on the system.
Another approach is to use a file-access mode that bypasses
the file system buffer cache, such as O_DIRECT. We chose to
not use O_DIRECT for this paper
The second issue that one must address is estimating the
accuracy of the results of the test. In our experience, file
system benchmarks are notorious for being non repeatable,
bimodal, and full of hysteresis effects, making it a challenge to
get consistent results.
In this paper we have IOzone and Postmark benchmarks
using below system:
The small system that is Intel(R) processor Core(TM)
Duo 2.20 GHz with 4GB of memory and a 320 GB SATA
disk. For the experiments of this paper, this machine was
booted with 4 GB of RAM.
Nowadays, mentioned machine provides a sampling used
to run Linux.
For using IOzone and Postmark benchmarks firstly we
should install them in the system.
Now searching is in process and gives the latest model of
the searched benchmark.
8 Results and Discussion
This section is a description of test result. Each graph defines
system’s structure.
8.1 IOzone result
Read graph shows that EXT4 has not good performance in
those file size less that 100 MB. EXT4 is Extent base
allocation. It is block allocation and it use contiguous
allocation to allocate the file in blocks of disk. Because of this
type of allocation, EXT4 has overhead and performance is not
good on small file. In other hand, small file size because it is
contiguous when file finish there are some space in the
contiguous file that still empty. The other reason is the
overhead for read the file system should refer to directory that
has file name. Address of file and length of the file and if the
file be small, this cause overhead happened. [13]
Allocation features use for large file size. Figure 4 shows
that the performance of EXT4 is higher than other file
systems. For the large file, EXT4’s performance is higher than
other file systems because of block allocation that fill the
contiguous block in disk.
EXT3 allocates blocks for a file one at a time (typically
using 4KB blocks). For very large files, the associated
function that doses the allocation will have to be called
thousands of times. EXT4 uses ―multi-block allocation‖. It
allows multiple blocks (hence the name) to be allocated during
one function call. This can greatly improve the performance of
EXT4 relative to EXT3, particularly for large files. [12]
JFS dynamically allocate space for disk I-nodes as
required, freeing the space when it is no longer needed. Two
different directory organizations are provided. (i) The first
organization is used for small directories and stores the
directory contents within the directory’s I-node. This
eliminates need for separate directory block I/O as well as
need to allocate separate storage. [18] By using directory’s I-
node can eliminate separate directory block I/O and allocate
separate storage. (ii) Organization is used for larger directories
and represents each directory as a B+Tree keyed on name. It
provides faster directory lookup, insertion, and deletion
capabilities.
Because of these reasons JFS in small file has better
performance than EXT4 but for file size from 100MB and
above JFS has lower performance than EXT4. [12]
ReiserFS uses B* Balanced Trees to organize directories,
files, and data. This provides fast directory lookups. [2] So it
has better performance on read operation in small file size
generally less and equal than 20MB file size.
First graph shows result base on read feature. Figure1
shows that experience by IOzone benchmark.
Figure 1: IOzone test for Read feature
According to above explanation, Figure1 shows that EXT4
has weakness in small file. Also this graph shows that
ReiserFS and EXT3 have a good performance with small file.
But with increasing file size, EXT4 performance increase as
well. Also this graph shows that JFS more stable than other
file system.
Figure 2: IOzone test for Re-Read feature
Figure2 shows that EXT3, ReiserFS, and JFS has a good
performance when file size is small. But with increasing file
size, JFS and EXT3 performance decrease slowly and EXT4
performance increase. Figure2 Shows with large file size JFS
has higher performance.
Figure3: IOzone test for Write feature
Figure3 shows write performance in these four file
system. Figure3 shows that EXT4 and JFS has a good
performance with small file size. ReiserFS has the lowest
performance. But with increasing file size the EXT4
performance is not change too much, but JFS performance
decreasing too much. In large file size JSF has the worst
performance.
Figure 4: IOzone test for Re-Write feature
Figure4 shows Re-write feature that tested by four file
system. For this feature, JFS has the best performance base on
small file size and large file size. This graph shows that EXT4
performance slowly increase and JFS performance deeply
decrease.
Figure5: All feature performance for small file size (1MB).
Figure6: All feature performance for large file size (100MB).
Figure 5 and Figure 6 shows other perspective of
performance of these four file system. With comparison four
feature performance in small file size; JFS has a good
performance in Re-Write, and Re-Read. Also the worth
performance in small file size belong to EXT4. Comparison
between EXT3 and EXT4 which are using extent, EXT3 is
much better than EXT4.
Also according to large file size, EXT4 mostly has a better
performance than others. Specially, on their write file. JFS
also has a good performance on read file.
Postmark result
According to postmark description, run postmark on four
file systems. (EXT4, JFS, EXT3, and ReiserFS) Postmark
used maximum create, read, append, and delete files base on
Table 1.
Table1: Four file systems comparison table with postmark.
Figure7 shows result of postmark testing. This graph shows
that EXT4 is the fastest file system in all of the execution part.
Also ReiserFS are in the second level.
Figure7: Postmark test result base on creation, append,
deletion, and read.
1. CONCLUSION AND FUTURE WORK
Choose a file system to managing data on your system, is
one of the consideration for anybody who use a computer.
Anybody can fill this problem when you have a lot of files
with a large portion [20].
This project define base on famous file system comparison
on Linux. Project starts which a research on file system on
Linux and then find some research on these file systems.
There is some evaluator tools look like FFSB, IOzone, and
Postmark. Benchmark which using IOZONE and
POSTMORK which is more famous. These tools are choosing
to check which one is more reliable for evaluation for my
project. Some of the Research objectives in this project are
carrying out as follow (i) Assess different type of FS on Linux
Assess different type of file system performance evaluator
tools (ii) Categorizes file system base in performance.
The result shows that EXT4 which is using extend have a
performance on large file size but it is not suitable for small
file size. In other word, with increase file size, the EXT4
performance increase. Other file systems (which is JFS and
using journaling) also has a good performance (especially in
write and Re-write file). But JFS is not update any more
during 2 years. EXT3 also has a reliable performance on small
file size.
9 Reference
[1] Bryant, R., Forester, R., & Hawkes, J. (n.d.). File system
Performance and Scalability in Linux 2.4.17. Proceedings of
the FREENIX Track:2002 USENIX Annual Technical
Conference. USENIX.
[2] Sun Microsystems (2004). File System Performance:
The Solaris™ OS, UFS, Linux EXT3, and ReiserFS. Aug.
[3] How to Find the Block Size. (2005, Aug 18). Retrieved
Oct 17, 2009, from LINFO:
http://www.linfo.org/get_block_size.html
[4] Terminal Window Definition. (2005, May 1). Retrieved
Nov 9, 2009, from The Linux Information Project:
http://www.linfo.org/terminal_window.html
[5] Inode Definition. (2006, Sep 15). Retrieved Jan 5, 2010,
from The Linux Information Project:
http://www.linfo.org/inode.html
[6] Boyne, J. (2005). Disc and Volume Size Limits.
[7] Diedrich, O. (2009, May 29). The Ext4 Linux File
System. Retrieved Dec20,2009,from the Open:http://www.h-
online.com/open/features/The-Ext4-Linux-file-system-
746579.html
[8] Henson, V., Brown, Z., Ts’o, T., & van de Ven, A.
(2006). Reducing fsck time for EXT2 file systems. Linux
Symposium, p. 395.
[9] Ts'o, T. (2002). Planned extensions to the Linux
EXT2/EXT3 File system. USENIX 2002 Annual Technical
Conference, Freenix Track , pp. 235–244 .
[10] Tweedie, S. (98). Journaling the Linux EXT2fs File
system. LinuxExpo.
[11] Y. Ts'o , T., & Stephen, T. (2002, June 10). Planned
extensions to the Linux EXT2/EXT3 File system . USENIX
Association.
[12] Layton, J. (2009, March 28). EXT4 File System:
Introduction and Benchmarks. Retrieved Dec 29, 2009, from
Linux mag: http://www.linux-mag.com/id/7271/1
[13] Norcott., W. (98). IOzone File system Benchmark.
Retrieved Sep 15, 2009,from IOzone:
ttp://www.IOzone.org/docs/IOzone_msword_98.pdf
[14] Katcher, J. (97, 10 8). Postmark: A New File System
Benchmark. Retrieved Dec 1, 2009, from
http://www.netapp.com/technology/level3/3022.html:
http://communities.netapp.com/servlet/JiveServlet/download/
2609-1551/Katcher97-postmark-netapp-
[15] Y. Ts'o , T., & Stephen, T. (2002, June 10). Planned
Extensions to the Linux Ext2/Ext3 Filesystem . USENIX
Association.
[16] Tweedie, S. (98). Journaling the Linux ext2fs
Filesystem. LinuxExpo.
[17] Galli Granada, P. (2002, Jan 1). Journal File Systems in
Linux. p. 6.
[18] Steve. (2000, Jan 1). JFS overview . Best works in the
Software Solutions & Strategy Division of IBM in Austin.
[19] Norcott., W. (98). Iozone Filesystem Benchmark.
Retrieved Sep 15, 2009, from iozone:
http://www.iozone.org/docs/IOzone_msword_98.pdf
[20] Stepohen, S. (2010). Novell makes file storage software
shift. Retrieved Dec 23, 2009, from