神刀安全网

Vmtouch – Portable file system cache diagnostics and control

vmtouch – the Virtual Memory Toucher

Portable file system cache diagnostics and control

vmtouchis a tool for learning about and controlling the file system cache of unix and unix-like systems. It is BSD licensed so you can basically do whatever you want with it.

Quick install guide:

$ git clone https://github.com/hoytech/vmtouch.git $ cd vmtouch $ make $ sudo make install 

What is it good for?

  • Discovering which files your OS is caching
  • Telling the OS to cache or evict certain files or regions of files
  • Locking files into memory so the OS won’t evict them
  • Preserving virtual memory profile when failing over servers
  • Keeping a "hot-standby" file-server
  • Plotting filesystem cache usage over time
  • Maintaining "soft quotas" of cache usage
  • Speeding up batch/cron jobs
  • And much more…

Examples

Example 1

How much of the /bin/ directory is currently in cache?

$ vmtouch /bin/            Files: 92      Directories: 1   Resident Pages: 348/1307  1M/5M  26.6%          Elapsed: 0.003426 seconds 

Example 2

How much of big-dataset.txt is currently in memory?

$ vmtouch -v big-dataset.txt big-dataset.txt [                                                            ] 0/42116             Files: 1      Directories: 0   Resident Pages: 0/42116  0/164M  0%          Elapsed: 0.005182 seconds 

None of it. Now let’s bring part of it into memory with tail :

$ tail -n 10000 big-dataset.txt > /dev/null 

Now how much?

$ vmtouch -v big-dataset.txt big-dataset.txt [                                                    oOOOOOOO] 4950/42116             Files: 1      Directories: 0   Resident Pages: 4950/42116  19M/164M  11.8%          Elapsed: 0.006706 seconds 

vmtouch tells us that 4950 pages at the end of the file are now resident in memory.

Example 3

Let’s touch the rest of /big-dataset.txt/ and bring it into memory (pressing enter a few times to illustrate the animated progress bar you will see on your terminal):

$ vmtouch -vt big-dataset.txt big-dataset.txt [OOo                                                 oOOOOOOO] 6887/42116 [OOOOOOOOo                                           oOOOOOOO] 10631/42116 [OOOOOOOOOOOOOOo                                     oOOOOOOO] 15351/42116 [OOOOOOOOOOOOOOOOOOOOOo                              oOOOOOOO] 19719/42116 [OOOOOOOOOOOOOOOOOOOOOOOOOOOo                        oOOOOOOO] 24183/42116 [OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo                  oOOOOOOO] 28615/42116 [OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo              oOOOOOOO] 31415/42116 [OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo      oOOOOOOO] 36775/42116 [OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOo  oOOOOOOO] 39431/42116 [OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO] 42116/42116             Files: 1      Directories: 0    Touched Pages: 42116 (164M)          Elapsed: 12.107 seconds 

Example 4

We have 3 big datasets, a.txt , b.txt , and c.txt but only 2 of them will fit in memory at once. If we have a.txt and b.txt in memory but would now like to work with b.txt and c.txt , we could just start loading up c.txt but then our system would evict pages from both a.txt (which we want) and b.txt (which we don’t want).

So let’s give the system a hint and evict a.txt from memory, making room for c.txt :

$ vmtouch -ve a.txt Evicting a.txt             Files: 1      Directories: 0    Evicted Pages: 42116 (164M)          Elapsed: 0.076824 seconds 

Example 5

Daemoniseand lock all files in a directory into physical memory:

vmtouch -dl /var/www/htdocs/critical/ 

What other people are saying

People have found lots of uses for vmtouch over the years. Here are a few links in no particular order:

Articles

Real-world sightings

Instagram

Discussion about instagram’s usage of vmtouch:

Stack-overflow and friends

OS packages/ports

Non-english

  • Spanish: 1
  • French: 1 2
  • Chinese: 1 2 3 4 5 6
  • Russian:1 2 3
  • Polish: 1

Misc

Other tools

There are also lots of mentions on twitter using the #vmtouch hash-tag

Have another link? Pleaselet me know!

Author

vmtouch is copyright (c) 2009-2016 Doug Hoyte and contributors.

Contributors are listed in CHANGES .

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Vmtouch – Portable file system cache diagnostics and control

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址