https://github.com/buzz/e4rat
Improving Startup Times by Physical Block Reallocation
https://github.com/buzz/e4rat
Last synced: 12 months ago
JSON representation
Improving Startup Times by Physical Block Reallocation
- Host: GitHub
- URL: https://github.com/buzz/e4rat
- Owner: buzz
- License: gpl-3.0
- Created: 2013-09-20T13:06:03.000Z (over 12 years ago)
- Default Branch: master
- Last Pushed: 2013-09-20T13:06:23.000Z (over 12 years ago)
- Last Synced: 2025-03-24T23:27:32.649Z (about 1 year ago)
- Language: C++
- Size: 320 KB
- Stars: 8
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
- License: LICENSE
Awesome Lists containing this project
README
INTRODUCTION
------------
e4rat reduces disk access times through physical file reallocation. It is based
on the online defragmentation ioctl EXT4_IOC_MOVE_EXT from the ext4 filesystem,
which was introduced in Linux Kernel 2.6.31. Therefore, other filesystem types
or earlier versions of extended filesystems are not supported.
e4rat consists of three binaries. The first is e4rat-collect. Its purpose is to
gather relevant files by monitoring file accesses during an application startup.
The generated file list is the fundament of the second step. With the second
step, e4rat-realloc, files are placed physically in a row on disk.
The reallocation of the files' content yields a higher disk transfer rate which
accelerates program start processes.
Third, you can also read-ahead files to gain a higher cache hit rate.
e4rat-preload transfers files into memory in parallel to program startup.
Because a file consists of file content and its I-Node information the
preloading process is divided into two steps. First, it reads the I-Nodes'
information which are still spread over the entire filesystem. In the second
step, the files' content is read without causing any disk seeks.
For more information see: e4rat-collect(8), e4rat-realloc(8), e4rat-preload(8)
and e4rat.conf(5).
SAMPLE USAGE: Accelerate the boot process
-------------
Run e4rat-collect as init process through adding following line to Kernel
parameters:
init=/sbin/e4rat-collect
After e4rat-collect has terminated the generated file list is stored at:
/var/lib/e4rat/startup.log
Before reallocating boot files it is recommaned to switch to runlevel 1 to
stop most of all running proceses to gain write access to the process binary
file:
init 1
Reallocating boot files:
e4rat-realloc /var/lib/e4rat/startup.log
To start e4rat-preload as initial process append following to kernel your
parameters:
init=/sbin/e4rat-preload
DEPENDENIES
-----------
The e4rat toolset has the following external dependencies:
- Linux Kernel (>= 2.6.31)
- CMake (>= 2.6)
- pod2man
- Boost Library (>=1.41): You need the following components installed:
system, filesytem, regex, signals2
- Linux Audit Library (libaudit >=0.1.7)
- Ext2 File System Utilities (e2fsprogs)
BUILDING
--------
The build system is based on CMake, which will generate a Makefile.
To build the release version of e4rat run the following command:
cmake . -DCMAKE_BUILD_TYPE=release
make
Additianal cmake options:
CMAKE_INSTALL_PREFIX=
Once you have successfully built the source code install e4rat as root:
make install
If you are running a Debian based Linux you can also install e4rat by
generating a Debian package:
make package
dpkg -i e4rat__.deb
ADDITIONAL CMAKE OPTIONS:
-------------------------
CMAKE_INSTALL_PREFIX=
install files in . When you run make install, libraries will
be placed in /lib, executables in /bin, and so on.
The default is / if this argument is not passed to cmake.
BUILD_CORE_LIBRARY_STATIC=
set to 'true' to build libe4rat-core library statically. Please not
that linking statically increase the file size.
On 64-bit systems the default is set to 'true' otherwise 'false'.
CMAKE_BUILD_TYPE=
specify build type. Choose either 'debug' or 'release'. The debug
version is build with debug info.
The default is 'debug' if this argument is not passed to cmake.
AUTHORS
-------
e4rat has been developed by Andreas Rid under the
guidance of Gundolf Kiefer at
the University of Applied Sciences, Augsburg.