Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
map files into memory and lock them there
Fetching latest commit…
Cannot retrieve the latest commit at this time.
|Type||Name||Latest commit message||Commit time|
|Failed to load latest commit information.|
== 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.