This project is sponsored by the Innovative Software AG!



Definitions and Objectives

Introduction


Definition of Terms
  • internal-fragmentation
  • external-fragmentation
  • standard formulation
  • fragmentationX
  • fragmented path


  • Link to my old page


    Copyright and Contact



    Tool: Fibmap

    Description
  • download



  • Tool: Read

    Description
  • download



  • Tool: Agesystem

    Description
  • download


  • Gauge Measurements

  • Test System

  • 500 MB Partition

  • file size distribution
  • results for Ext2FS
  • results for ReiserFS
  • results for JFS
  • results for XFS


  • 1GB Partition
  • file size distribution
  • all results


  • 4 GB Partition
  • file size distribution
  • all results


  • Gauge Verifications

  • Test System

  • 500 MB Partition

  • 1 GB Partition

  • 4 GB Partition


  • TODO



    Gauge Performance

    Description
  • download


  • Measurements on 2.4.5

  • Test System

  • Output Explanation

  • variable file size
  • create fixed size
  • append variable size


  • Measurements on 2.4.8

  • Test System

  • Output Explanation

  • variable file size



  • Append Tests

    Description
  • download


  • Measurements on 2.4.8

  • Test System

  • Output Explanation

  • fixed append size
  • variable append size
  • low statistics


  • With Preallocation

  • Output Explanation

  • fixed append size


  • Measurements on 2.4.10
  • Test System

  • Output Explanation

  • fixed append size


  • With Preallocation

  • Output Explanation

  • fixed append size


  • Tool: Agesystem3

    Description
  • download



  • Aging Tests

    Description
  • download


  • Measurements on 2.4.8

  • Test System

  • Explanation of Terms

  • generic file size dist


  • Measurements on 2.4.10
  • Test System

  • Explanation of Terms

  • generic file size dist



  • External Links

    Filesystem Homepages
  • ReiserFS
  • Ext2FS
  • Ext3FS
  • XFS
  • JFS


  • Benchmarks & Results
  • ReiserFS benchs
  • Denis'+Kresimir's site
  • Randy's tests
  • Yves' YAFB tests


  • Literature
  • Smith's site
  • My master thesis




  • Additional Notes

    Copyright 2001 by
    Constantin Loizides,
    loizides AT informatik DOT uni-frankfurt DOT de

    Last changes:
    Do Feb  5 09:40:01 CET 2004
    

    Journaling-Filesystem Fragmentation Project

    Tool: Agesystem3




    Description

    This tool is an updated version of the
    agesystem tool, which I never seriously used for real aging (the name of it came up because of ''historical reasons''). agesystem3 randomly creates and delete files, thereby aging a given partition.
    In order to keep track of files being on the partition it provides a structure ''partition info'' which can be saved and restored via the -s and -r option. It can simulate not only static file size distributions (-l 6:a:b:c:d:e:f option) and distribution of files per directories (-c outerdirs:innerdirs_times_outerdirs) but also measured distributions (-m 3 and -l 2:fhist:dhist options).
    Depending on the operation mode (option -m) it furthermore is more powerful than the old ''agesystem'' tool:
  • Using mode zero (-m 0) together with the directory option -d it recursively scans the given directory which one can save for later simulation. Use -p to set the maximum number of files and directories which can be stored in memory:
    agesystem3 -d /givendir -s /tmp/saveinfofile -m 0
  • To calculate the distribution of files per directories and the distribution of the file sizes use mode three (-m 3). Use the -l option to store the histograms for later usage:
    agesystem3 -r /tmp/saveinfofile -l 2:/tmp/dhist:/tmp/fhist -m 3
  • To gauge a partition given with -d up to a percentage of 50 percent use mode one with the -u option. Use also -l to simulate according to the measured distributions, use -s to save the content of the gauged partition:
    agesystem3 -d /mnt/part_to_test -s /tmp/saveinfofile -m 1 -l 2:/tmp/dhist:/tmp/fhist -u 0:50
  • To age a partition between 50 and 60 % use mode two, restrict the overall created files with the -n option to 10000, use -r and -s to load and save the contents of the info structure:
    agesystem3 -d /mnt/part_to_test -r /tmp/saveinfofile -s /tmp/saveinfofile_after -m 2 -l 2:/tmp/dhist:/tmp/fhist -u 50:60

    agesystem3 chooses in the following way whether to create a new file or to delete a given previously created file:
    1. It calculates the percentage of used blocks fsb, which is the number of used blocks in the file system divided by the number of blocks the partition has.
    2. It calculates the percentage p given in the range between umin and umax values of the -u option according to p=(fsb-umin)/(umax-umin)*100.
    3. It determines the probability X that it creates (or with probability of 1-X deletes) a file. The creation probability tableX is given by for the creation cycle (going from umin to umax)

      X p
      1.00 0-5 %
      0.80 5-75 %
      0.70 75-95 %
      0 95-100 %

      and for the deletion cycle (going from umax to umin)

      X p
      1.00 0-5 %
      0.20 5-25 %
      0.30 25-95 %
      0 95-100 %

      The program measures the write performance given in KB per second per (approximately) every five percent of usage (see also the old agesystem tool section).

      Download

      You may
      download agesystem3 and try it yourself. After downloading the package create a directory where to untargz it. In the Makefile you probably want to change some paths. Then type ''make agesystem3'' followed by ''agesystem3 -h'' to get additional help.
      Usage of agesystem3 v0.3
       -b blksize                     blocksize to use for buffered i/o
       -c dir_base:dir_counter        number of subdirectories to create
       -d dirname                     change to directory "dirname"
       -f                             use fixed length of bytes, given in blocksize
       -h,-?                          this text
       -l string                      set file size creation options coded in "string"
                                      string is a) 6:a:b:c:d:e:f ->
                                       a,b,c min_sizes; d,e,f max_sizes for distribution
                                                b) 1:histfilename ->
                                       use distribution of measured histogram and use -c for dirs
                                                c) 2:histdirname:histfilename ->
                                       use measured distribution for files and dirs
       -n number_of_files             maximum number of files to create
       -m mode                        set working mode to "mode"
                                      0 -> get info struct
                                      1 -> gauge only; use with -c and -l option 
                                      2 -> age fs system; use with -c and -l option
                                      3 -> calc histograms; use with -l option
                                      4 -> create only directories given with -l oder -c option
       -o access_mode                 set access mode to  "access_mode" 
                  (eg. cw=65, cws=4161, cwa=1089,cwas=5185, cwt=577,cwts=4673)
       -p dirno:fileno                store maximum "dirno" dirs and "fileno" files in info struct
       -r file                        load partition info from "file"
       -s file                        save partition info to "file"
       -t                             simply test input and exit without any action
       -u min:max                     min and max filesystem usage to work at
       -v                             be verbose
       -y seed                        set random generator seed
       -z                             sync with unmount (don't use or check/edit /root/bin/agesync.sh)