aboutsummaryrefslogtreecommitdiff
path: root/README
diff options
context:
space:
mode:
Diffstat (limited to 'README')
-rw-r--r--README21
1 files changed, 21 insertions, 0 deletions
diff --git a/README b/README
new file mode 100644
index 0000000..f93fa50
--- /dev/null
+++ b/README
@@ -0,0 +1,21 @@
+== fmlock -- map files into memory and lock them to RAM ==
+
+fmlock is a small tool intended to load file into the block I/O cache and lock
+them there. This is done by mmap-ing the whole file and calling mlock on the
+address space occupied by the file. In addition the whole file is read to heat
+the cache; this should not be necessary, but some systems may require this, for
+this tool to be effective.
+
+Once the files are locked into memory and the cache is hot the program puts
+itself to sleep until a signal arrives. Once the program is sleeping that's it.
+Any changes to the files that'd require to remap the files are not caught by
+fmlock and the cache on any changed or grown pages may become cold over time.
+
+Please note, that memory locking is subject to process limits. See prlimit(2)
+and your system's limits configuration. The information found in pam_limits(8)
+is applicable to most systems.
+
+The purpose of this is that (large) files can be preloaded into RAM, namely the
+block I/O cache for other processes to read from. This is for example required
+to measure the RAM bandwidth and CPU limited throughput of data processing code,
+working on real data without getting effected by I/O bottlenecks.