Low Memory Tests

Objectives and configuration:


Test ext3 + patches in a low memory configuration. Kernel: 2.6.11 with Alex Tomas' patches
RAM: 2 GB
Partition size: 68 GB (sdc1)
boot option: mem=64M
processor      : 2
model name      : Intel(R) Xeon(TM) CPU 2.80GHz

Scripts


Regarding to the free memory in /proc/meminfo, the memory is charged using this program.
Then the test are started with this script. Using the time command, the elapsed time is mesured while creating a tree structure of directories with files in it; and then while deleting each of the files and directories previously created.
Direcory creation is done using mkdir command, file creation uses the write command with just one open/close and deletion uses rm command.
Two sequences have been done:
- First one is a creation/deletion of 14 directories with 10 files of 100MB
- The second one is a creation/deletion of 14 directories with 1000 files of 10MB

This sequence is made for each filesystem we want to test. The partition to use is formated with
mkfs and mounted with appropriate options before copying tarball to it.

Filesystems and options are:

filesystems mount options
1 ext3 data=writeback
2 ext3 data=ordered
3 ext3 data=ordered,extents
4 ext3 data=ordered,mballoc,delalloc,extents
5 ext3 data=ordered,mballoc,extents
6 ext3 data=writeback,extents
7 ext3 data=writeback,mballoc,delalloc,extents
8 ext3 data=writeback,mballoc,extents

Results


Here are the measurement of elapsed real time (and time spent in kernel mode) for the different sequence
filesystems and mount optionsWrite large files Delete large files Write large number of files Delete large number of files
ext3_data=ordered 2429.67 (2270.02 )8.88 (0.67 )24889.96 (22710.93 )115.60 (20.38 )
ext3_data=ordered,extents 2441.64 (2288.70 )1.29 (0.64 )24879.78 (22820.73 )29.43 (19.40 )
ext3_data=ordered,mballoc,delalloc,extents 907.83 (759.48 )1.57 (0.65 )9678.19 (7568.22 )30.68 (19.95 )
ext3_data=ordered,mballoc,extents 2450.55 (2287.64 )1.59 (0.67 )25031.41 (22964.23 )31.71 (19.82 )
ext3_data=writeback 2169.37 (2010.60 )8.03 (0.65 )22292.43 (20205.17 )115.08 (20.32 )
ext3_data=writeback,extents 2172.32 (2009.85 )1.27 (0.62 )22361.16 (20299.03 )29.91 (19.16 )
ext3_data=writeback,mballoc,delalloc,extents 900.93 (754.33 )1.68 (0.74 )9680.90 (7564.19 )31.06 (19.99 )
ext3_data=writeback,mballoc,extents 2186.34 (2021.97 )1.58 (0.67 )22429.16 (20369.31 )31.22 (20.08 )

During all the test, the amount of free memory was about 1 300KB.
In both writing sequence, the impact of the delayed allocation patch is really significant. It takes about 60% less time to write datas with the delayed allocation than with a classic ext3 filesystem. However, the extents and the multiple block allocation patches don't make any improvement inthis test.

Writing large files (100MB)

Writing large number of files

In the deletion sequence, the extents patch improve the elapsed time. The other patches don't improve it as the extents patch does. The improvement with extents patch is about 85% with large files and 75% with large number of files, with the 2 other patches the improvement is about 3% fewer.

Deleting large files

Deleting large number of files