Linux VM Subsystem - File Cache Demonstration #1
I was at work today and came across a performance problem with an internal Java application. Long story short, someone suggested that because the filesystem cache was full we had run out of memory and should drop caches. I suggested that this was a bad idea and said that Linux handled this itself and we need not do that.
But rather than just take my word for it, or the word of people like Mel Gorman, here is a demonstration that I wrote up. I had to spin up a VM in AWS and install perl and CPAN and Linux::MemInfo. After that I wrote up the code which is available at https://github.com/ndietsch/linux-system-programming.
As you can see from the screencast, I created a perl program that creates a 10MB file of zeros and then reads this into a noop loop. With each iteration, you can see the free memory drop by 10MB and the active file cache increase by 10MB. Once the system hits about 9-10MB free, it starts moving the cache from active to inactive and then evicting as necessary. This proves that Linux can handle the cache ejections by itself.
The next installments of this will show how anonymous memory increasing will also shrink the cache. But for now, here is the screencast ... enjoy.
I have included the terminal session below, but also a tar file of scriptreplay files if you want the interactive experience
I have included the terminal session below, but also a tar file of scriptreplay files if you want the interactive experience
[ec2-user@ip-172-31-37-189 linux-systems-programming]$ cat intro; sleep 30 * This screencast is to demonstrate the cache eviction feature of the Linux Virtual Memory Management subsystem. * In this example, our Perl code creates a 10MB file with DD and then reads it into a loop. * The loop outputs three figures each time - MemFree - Active (File) which makes up the active part of the file cache - Inactive (File) which makes up the inactive part of the file cache * As you can see from the /proc/meminfo output, we start with a relatively high amount of free memory on our 1GB system and a low amount of filesystem cache * With each loop, the free memory decreases by about 10MB and the Active file cache increases by about 10MB. * Once we hit around 9-11MB free on the system, the VM subsystem automatically moves the cache from active to inactive where it is then evicted using the various algorithms * Please note that this is using Amazon Linux with Kernel 4.1.17-22.30.amzn1.x86_64 which will differ slightly from the internal Linux systems at ${work} but it demonstrates the point none the less. * The really cool bit is at the end when we delete all the files [ec2-user@ip-172-31-37-189 linux-systems-programming]$ cat /proc/meminfo MemTotal: 1019444 kB MemFree: 934832 kB MemAvailable: 969936 kB Buffers: 1024 kB Cached: 16828 kB SwapCached: 0 kB Active: 22168 kB Inactive: 9376 kB Active(anon): 13700 kB Inactive(anon): 52 kB Active(file): 8468 kB Inactive(file): 9324 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 0 kB Writeback: 0 kB AnonPages: 13696 kB Mapped: 5484 kB Shmem: 60 kB Slab: 41288 kB SReclaimable: 31880 kB SUnreclaim: 9408 kB KernelStack: 1408 kB PageTables: 2356 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 509720 kB Committed_AS: 62876 kB VmallocTotal: 34359738367 kB VmallocUsed: 2488 kB VmallocChunk: 34359731159 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 22528 kB DirectMap2M: 1026048 kB [ec2-user@ip-172-31-37-189 linux-systems-programming]$ cat ActiveFileCache.pl use strict; use Linux::MemInfo; my %mem; my $count; # Starting values %mem = get_mem_info; printf("%-20s\t%s\n","Active(file)",$mem{"Active(file)"}); printf("%-20s\t%s\n","Active(anon)",$mem{"Active(anon)"}); while() { sleep 1; $count++; # Create a 10MB file full of zeros and then read it to fill the Active(file) cache from /proc/meminfo my $retval=system("/bin/dd if=/dev/zero of=/tmp/file.${count} count=20480 > /dev/null 2>&1"); open(my $fh, "){} # Get memory statistics after creating and reading a 5MB file, watch Active(file) grow until it is 5MB %mem = get_mem_info; my $time = localtime; printf("%s\n",$time); printf("%-20s\t%s\n","Active(file)",$mem{"Active(file)"}); printf("%-20s\t%s\n","Inactive(file)",$mem{"Inactive(file)"}); printf("%-20s\t%s\n\n","MemFree",$mem{"MemFree"}); } [ec2-user@ip-172-31-37-189 linux-systems-programming]$ perl ActiveFileCache.pl Active(file) 8508 Active(anon) 14332 Wed Mar 2 06:07:54 2016 Active(file) 18780 Inactive(file) 9284 MemFree 923476 Wed Mar 2 06:07:55 2016 Active(file) 29000 Inactive(file) 9268 MemFree 913068 Wed Mar 2 06:07:56 2016 Active(file) 39276 Inactive(file) 9272 MemFree 902536 Wed Mar 2 06:07:57 2016 Active(file) 49504 Inactive(file) 9272 MemFree 891980 Wed Mar 2 06:07:58 2016 Active(file) 59720 Inactive(file) 9272 MemFree 881572 Wed Mar 2 06:07:59 2016 Active(file) 69984 Inactive(file) 9272 MemFree 871016 Wed Mar 2 06:08:00 2016 Active(file) 80244 Inactive(file) 9272 MemFree 860360 Wed Mar 2 06:08:01 2016 Active(file) 90448 Inactive(file) 9272 MemFree 849952 Wed Mar 2 06:08:02 2016 Active(file) 100712 Inactive(file) 9272 MemFree 839520 Wed Mar 2 06:08:03 2016 Active(file) 110964 Inactive(file) 9272 MemFree 828988 Wed Mar 2 06:08:04 2016 Active(file) 121208 Inactive(file) 9272 MemFree 818548 Wed Mar 2 06:08:05 2016 Active(file) 131428 Inactive(file) 9272 MemFree 808012 Wed Mar 2 06:08:06 2016 Active(file) 141692 Inactive(file) 9272 MemFree 797480 Wed Mar 2 06:08:07 2016 Active(file) 151932 Inactive(file) 9272 MemFree 787020 Wed Mar 2 06:08:08 2016 Active(file) 162160 Inactive(file) 9272 MemFree 776484 Wed Mar 2 06:08:09 2016 Active(file) 172400 Inactive(file) 9272 MemFree 765924 Wed Mar 2 06:08:10 2016 Active(file) 182624 Inactive(file) 9272 MemFree 755392 Wed Mar 2 06:08:12 2016 Active(file) 192888 Inactive(file) 9272 MemFree 744960 Wed Mar 2 06:08:13 2016 Active(file) 203128 Inactive(file) 9272 MemFree 734404 Wed Mar 2 06:08:14 2016 Active(file) 213380 Inactive(file) 9272 MemFree 723996 Wed Mar 2 06:08:15 2016 Active(file) 223620 Inactive(file) 9272 MemFree 713440 Wed Mar 2 06:08:16 2016 Active(file) 233880 Inactive(file) 9272 MemFree 702908 Wed Mar 2 06:08:17 2016 Active(file) 244108 Inactive(file) 9272 MemFree 692476 Wed Mar 2 06:08:18 2016 Active(file) 254360 Inactive(file) 9272 MemFree 681940 Wed Mar 2 06:08:19 2016 Active(file) 264576 Inactive(file) 9272 MemFree 671284 Wed Mar 2 06:08:20 2016 Active(file) 274840 Inactive(file) 9272 MemFree 660884 Wed Mar 2 06:08:21 2016 Active(file) 285052 Inactive(file) 9272 MemFree 650352 Wed Mar 2 06:08:22 2016 Active(file) 295316 Inactive(file) 9272 MemFree 639792 Wed Mar 2 06:08:23 2016 Active(file) 305532 Inactive(file) 9272 MemFree 629384 Wed Mar 2 06:08:24 2016 Active(file) 318796 Inactive(file) 7160 MemFree 617968 Wed Mar 2 06:08:25 2016 Active(file) 329052 Inactive(file) 7152 MemFree 607448 Wed Mar 2 06:08:26 2016 Active(file) 339288 Inactive(file) 7152 MemFree 597016 Wed Mar 2 06:08:27 2016 Active(file) 349528 Inactive(file) 7152 MemFree 586460 Wed Mar 2 06:08:28 2016 Active(file) 359780 Inactive(file) 7152 MemFree 576036 Wed Mar 2 06:08:29 2016 Active(file) 370020 Inactive(file) 7152 MemFree 565536 Wed Mar 2 06:08:30 2016 Active(file) 380272 Inactive(file) 7152 MemFree 555004 Wed Mar 2 06:08:31 2016 Active(file) 390508 Inactive(file) 7152 MemFree 544448 Wed Mar 2 06:08:32 2016 Active(file) 400724 Inactive(file) 7152 MemFree 533916 Wed Mar 2 06:08:33 2016 Active(file) 410988 Inactive(file) 7152 MemFree 523360 Wed Mar 2 06:08:34 2016 Active(file) 421228 Inactive(file) 7156 MemFree 512928 Wed Mar 2 06:08:35 2016 Active(file) 431480 Inactive(file) 7156 MemFree 502396 Wed Mar 2 06:08:36 2016 Active(file) 441716 Inactive(file) 7156 MemFree 491840 Wed Mar 2 06:08:37 2016 Active(file) 451932 Inactive(file) 7156 MemFree 481432 Wed Mar 2 06:08:38 2016 Active(file) 462200 Inactive(file) 7156 MemFree 470904 Wed Mar 2 06:08:39 2016 Active(file) 472424 Inactive(file) 7156 MemFree 460432 Wed Mar 2 06:08:40 2016 Active(file) 482688 Inactive(file) 7156 MemFree 449892 Wed Mar 2 06:08:41 2016 Active(file) 492936 Inactive(file) 7156 MemFree 439476 Wed Mar 2 06:08:42 2016 Active(file) 503176 Inactive(file) 7156 MemFree 428936 Wed Mar 2 06:08:43 2016 Active(file) 513416 Inactive(file) 7156 MemFree 418380 Wed Mar 2 06:08:44 2016 Active(file) 523656 Inactive(file) 7156 MemFree 407856 Wed Mar 2 06:08:46 2016 Active(file) 533896 Inactive(file) 7156 MemFree 397440 Wed Mar 2 06:08:47 2016 Active(file) 544144 Inactive(file) 7156 MemFree 386900 Wed Mar 2 06:08:48 2016 Active(file) 554384 Inactive(file) 7156 MemFree 376484 Wed Mar 2 06:08:49 2016 Active(file) 564624 Inactive(file) 7156 MemFree 365944 Wed Mar 2 06:08:50 2016 Active(file) 574864 Inactive(file) 7156 MemFree 355280 Wed Mar 2 06:08:51 2016 Active(file) 585108 Inactive(file) 7164 MemFree 344864 Wed Mar 2 06:08:52 2016 Active(file) 595356 Inactive(file) 7164 MemFree 334324 Wed Mar 2 06:08:53 2016 Active(file) 605596 Inactive(file) 7164 MemFree 323908 Wed Mar 2 06:08:54 2016 Active(file) 615836 Inactive(file) 7164 MemFree 313368 Wed Mar 2 06:08:55 2016 Active(file) 626076 Inactive(file) 7164 MemFree 302828 Wed Mar 2 06:08:56 2016 Active(file) 636324 Inactive(file) 7156 MemFree 292396 Wed Mar 2 06:08:57 2016 Active(file) 646572 Inactive(file) 7156 MemFree 281840 Wed Mar 2 06:08:58 2016 Active(file) 656812 Inactive(file) 7156 MemFree 271268 Wed Mar 2 06:08:59 2016 Active(file) 667052 Inactive(file) 7156 MemFree 260712 Wed Mar 2 06:09:00 2016 Active(file) 677292 Inactive(file) 7156 MemFree 250140 Wed Mar 2 06:09:01 2016 Active(file) 687532 Inactive(file) 7156 MemFree 239708 Wed Mar 2 06:09:02 2016 Active(file) 697780 Inactive(file) 7156 MemFree 229136 Wed Mar 2 06:09:03 2016 Active(file) 708020 Inactive(file) 7156 MemFree 218704 Wed Mar 2 06:09:04 2016 Active(file) 718260 Inactive(file) 7156 MemFree 208132 Wed Mar 2 06:09:05 2016 Active(file) 728500 Inactive(file) 7156 MemFree 197700 Wed Mar 2 06:09:06 2016 Active(file) 738752 Inactive(file) 7156 MemFree 187128 Wed Mar 2 06:09:07 2016 Active(file) 749000 Inactive(file) 7156 MemFree 176448 Wed Mar 2 06:09:08 2016 Active(file) 759240 Inactive(file) 7156 MemFree 166000 Wed Mar 2 06:09:09 2016 Active(file) 769480 Inactive(file) 7156 MemFree 155444 Wed Mar 2 06:09:10 2016 Active(file) 779720 Inactive(file) 7156 MemFree 145012 Wed Mar 2 06:09:11 2016 Active(file) 789952 Inactive(file) 7160 MemFree 134440 Wed Mar 2 06:09:12 2016 Active(file) 800208 Inactive(file) 7160 MemFree 123884 Wed Mar 2 06:09:13 2016 Active(file) 810448 Inactive(file) 7160 MemFree 113436 Wed Mar 2 06:09:14 2016 Active(file) 820688 Inactive(file) 7160 MemFree 102880 Wed Mar 2 06:09:15 2016 Active(file) 830928 Inactive(file) 7160 MemFree 92308 Wed Mar 2 06:09:16 2016 Active(file) 841180 Inactive(file) 7160 MemFree 81752 Wed Mar 2 06:09:17 2016 Active(file) 851428 Inactive(file) 7160 MemFree 71180 Wed Mar 2 06:09:18 2016 Active(file) 861668 Inactive(file) 7160 MemFree 60748 Wed Mar 2 06:09:20 2016 Active(file) 871908 Inactive(file) 7160 MemFree 50176 Wed Mar 2 06:09:21 2016 Active(file) 882148 Inactive(file) 7160 MemFree 39744 Wed Mar 2 06:09:22 2016 Active(file) 892388 Inactive(file) 7160 MemFree 29172 Wed Mar 2 06:09:23 2016 Active(file) 902636 Inactive(file) 7160 MemFree 18616 ^C [ec2-user@ip-172-31-37-189 linux-systems-programming]$ echo "Once we hit aboit 9MB free, the system will start moving the file data fromt he active cache to the inactive cache. From there it will evict the data, ensuring Linux always has enough free memory for OS and applications" Once we hit aboit 9MB free, the system will start moving the file data fromt he active cache to the inactive cache. From there it will evict the data, ensuring Linux always has enough free memory for OS and applications [ec2-user@ip-172-31-37-189 linux-systems-programming]$ perl ActiveFileCache.pl Active(file) 902680 Active(anon) 14344 Wed Mar 2 06:10:13 2016 Active(file) 902676 Inactive(file) 7164 MemFree 18476 Wed Mar 2 06:10:14 2016 Active(file) 902688 Inactive(file) 7164 MemFree 18480 Wed Mar 2 06:10:15 2016 Active(file) 902652 Inactive(file) 7164 MemFree 18480 Wed Mar 2 06:10:16 2016 Active(file) 902676 Inactive(file) 7164 MemFree 18480 Wed Mar 2 06:10:17 2016 Active(file) 902688 Inactive(file) 7164 MemFree 18480 Wed Mar 2 06:10:18 2016 Active(file) 902688 Inactive(file) 7164 MemFree 18504 Wed Mar 2 06:10:20 2016 Active(file) 902684 Inactive(file) 7164 MemFree 18500 Wed Mar 2 06:10:21 2016 Active(file) 902696 Inactive(file) 7164 MemFree 18500 Wed Mar 2 06:10:22 2016 Active(file) 902708 Inactive(file) 7164 MemFree 18500 Wed Mar 2 06:10:23 2016 Active(file) 902696 Inactive(file) 7164 MemFree 18476 Wed Mar 2 06:10:24 2016 Active(file) 902684 Inactive(file) 7164 MemFree 18500 Wed Mar 2 06:10:25 2016 Active(file) 902716 Inactive(file) 7164 MemFree 18476 Wed Mar 2 06:10:26 2016 Active(file) 902716 Inactive(file) 7164 MemFree 18488 Wed Mar 2 06:10:27 2016 Active(file) 902680 Inactive(file) 7168 MemFree 18484 Wed Mar 2 06:10:28 2016 Active(file) 902692 Inactive(file) 7168 MemFree 18480 Wed Mar 2 06:10:29 2016 Active(file) 902728 Inactive(file) 7168 MemFree 18380 Wed Mar 2 06:10:30 2016 Active(file) 902724 Inactive(file) 7168 MemFree 18480 Wed Mar 2 06:10:31 2016 Active(file) 902712 Inactive(file) 7168 MemFree 18380 Wed Mar 2 06:10:32 2016 Active(file) 902712 Inactive(file) 7168 MemFree 18516 Wed Mar 2 06:10:33 2016 Active(file) 902724 Inactive(file) 7168 MemFree 18376 Wed Mar 2 06:10:34 2016 Active(file) 902736 Inactive(file) 7168 MemFree 18400 Wed Mar 2 06:10:35 2016 Active(file) 902732 Inactive(file) 7168 MemFree 18500 Wed Mar 2 06:10:36 2016 Active(file) 902744 Inactive(file) 7168 MemFree 18376 Wed Mar 2 06:10:37 2016 Active(file) 902708 Inactive(file) 7168 MemFree 18488 Wed Mar 2 06:10:38 2016 Active(file) 902720 Inactive(file) 7168 MemFree 18360 Wed Mar 2 06:10:39 2016 Active(file) 902744 Inactive(file) 7168 MemFree 18484 Wed Mar 2 06:10:40 2016 Active(file) 902716 Inactive(file) 7168 MemFree 18484 ^C [ec2-user@ip-172-31-37-189 linux-systems-programming]$ df -h / Filesystem Size Used Avail Use% Mounted on /dev/xvda1 7.8G 2.2G 5.5G 29% / [ec2-user@ip-172-31-37-189 linux-systems-programming]$ rm /tmp/file* [ec2-user@ip-172-31-37-189 linux-systems-programming]$ perl ActiveFileCache.pl Active(file) 11884 Active(anon) 14368 Wed Mar 2 06:10:52 2016 Active(file) 22096 Inactive(file) 7260 MemFree 921944 Wed Mar 2 06:10:53 2016 Active(file) 32324 Inactive(file) 7260 MemFree 911552 Wed Mar 2 06:10:54 2016 Active(file) 42584 Inactive(file) 7260 MemFree 901100 Wed Mar 2 06:10:55 2016 Active(file) 52812 Inactive(file) 7260 MemFree 890580 Wed Mar 2 06:10:56 2016 Active(file) 63076 Inactive(file) 7260 MemFree 880032 Wed Mar 2 06:10:57 2016 Active(file) 73316 Inactive(file) 7260 MemFree 869600 Wed Mar 2 06:10:58 2016 Active(file) 83568 Inactive(file) 7260 MemFree 859068 Wed Mar 2 06:10:59 2016 Active(file) 93796 Inactive(file) 7260 MemFree 848512 Wed Mar 2 06:11:00 2016 Active(file) 104056 Inactive(file) 7260 MemFree 838052 Wed Mar 2 06:11:02 2016 Active(file) 114284 Inactive(file) 7260 MemFree 827452 Wed Mar 2 06:11:03 2016 Active(file) 124512 Inactive(file) 7260 MemFree 816908 Wed Mar 2 06:11:04 2016 Active(file) 134740 Inactive(file) 7260 MemFree 806500 Wed Mar 2 06:11:05 2016 Active(file) 145004 Inactive(file) 7260 MemFree 795944 Wed Mar 2 06:11:06 2016 Active(file) 155228 Inactive(file) 7260 MemFree 785412 Wed Mar 2 06:11:07 2016 Active(file) 165492 Inactive(file) 7260 MemFree 774980 Wed Mar 2 06:11:08 2016 Active(file) 175744 Inactive(file) 7260 MemFree 764424 Wed Mar 2 06:11:09 2016 Active(file) 185960 Inactive(file) 7260 MemFree 754016 Wed Mar 2 06:11:10 2016 Active(file) 196224 Inactive(file) 7264 MemFree 743464 Wed Mar 2 06:11:11 2016 Active(file) 206484 Inactive(file) 7264 MemFree 733044 Wed Mar 2 06:11:12 2016 Active(file) 216700 Inactive(file) 7264 MemFree 722484 Wed Mar 2 06:11:13 2016 Active(file) 226964 Inactive(file) 7264 MemFree 711960 Wed Mar 2 06:11:14 2016 Active(file) 237192 Inactive(file) 7264 MemFree 701528 Wed Mar 2 06:11:15 2016 Active(file) 247432 Inactive(file) 7264 MemFree 690972 Wed Mar 2 06:11:16 2016 Active(file) 257692 Inactive(file) 7264 MemFree 680440 Wed Mar 2 06:11:17 2016 Active(file) 267920 Inactive(file) 7264 MemFree 670008 Wed Mar 2 06:11:18 2016 Active(file) 278148 Inactive(file) 7264 MemFree 659352 Wed Mar 2 06:11:19 2016 Active(file) 288412 Inactive(file) 7264 MemFree 648920 Wed Mar 2 06:11:20 2016 Active(file) 298652 Inactive(file) 7264 MemFree 638364 Wed Mar 2 06:11:21 2016 Active(file) 308900 Inactive(file) 7264 MemFree 627840 Wed Mar 2 06:11:22 2016 Active(file) 319152 Inactive(file) 7264 MemFree 617424 Wed Mar 2 06:11:23 2016 Active(file) 329356 Inactive(file) 7264 MemFree 606888 Wed Mar 2 06:11:24 2016 Active(file) 339620 Inactive(file) 7264 MemFree 596452 Wed Mar 2 06:11:25 2016 Active(file) 349872 Inactive(file) 7264 MemFree 585920 Wed Mar 2 06:11:26 2016 Active(file) 360108 Inactive(file) 7264 MemFree 575364 Wed Mar 2 06:11:27 2016 Active(file) 370348 Inactive(file) 7264 MemFree 564932 Wed Mar 2 06:11:28 2016 Active(file) 380572 Inactive(file) 7264 MemFree 554400 Wed Mar 2 06:11:29 2016 Active(file) 390828 Inactive(file) 7264 MemFree 543956 Wed Mar 2 06:11:30 2016 Active(file) 401080 Inactive(file) 7264 MemFree 533432 Wed Mar 2 06:11:31 2016 Active(file) 411316 Inactive(file) 7264 MemFree 522900 Wed Mar 2 06:11:32 2016 Active(file) 421556 Inactive(file) 7264 MemFree 512316 Wed Mar 2 06:11:33 2016 Active(file) 431808 Inactive(file) 7264 MemFree 501760 Wed Mar 2 06:11:34 2016 Active(file) 442048 Inactive(file) 7264 MemFree 491328 Wed Mar 2 06:11:36 2016 Active(file) 452300 Inactive(file) 7264 MemFree 480796 Wed Mar 2 06:11:37 2016 Active(file) 462536 Inactive(file) 7264 MemFree 470364 Wed Mar 2 06:11:38 2016 Active(file) 472776 Inactive(file) 7264 MemFree 459792 Wed Mar 2 06:11:39 2016 Active(file) 483028 Inactive(file) 7264 MemFree 449364 Wed Mar 2 06:11:40 2016 Active(file) 493256 Inactive(file) 7264 MemFree 438824 Wed Mar 2 06:11:41 2016 Active(file) 503496 Inactive(file) 7264 MemFree 428284 Wed Mar 2 06:11:42 2016 Active(file) 513744 Inactive(file) 7264 MemFree 417868 Wed Mar 2 06:11:43 2016 Active(file) 523984 Inactive(file) 7264 MemFree 407328 Wed Mar 2 06:11:44 2016 Active(file) 534236 Inactive(file) 7264 MemFree 396788 Wed Mar 2 06:11:45 2016 Active(file) 544476 Inactive(file) 7264 MemFree 386248 Wed Mar 2 06:11:46 2016 Active(file) 554716 Inactive(file) 7264 MemFree 375708 Wed Mar 2 06:11:47 2016 Active(file) 564964 Inactive(file) 7268 MemFree 365292 Wed Mar 2 06:11:48 2016 Active(file) 575204 Inactive(file) 7268 MemFree 354752 Wed Mar 2 06:11:49 2016 Active(file) 585444 Inactive(file) 7268 MemFree 344336 Wed Mar 2 06:11:50 2016 Active(file) 595684 Inactive(file) 7268 MemFree 333796 Wed Mar 2 06:11:51 2016 Active(file) 605924 Inactive(file) 7268 MemFree 323256 Wed Mar 2 06:11:52 2016 Active(file) 616172 Inactive(file) 7268 MemFree 312840 Wed Mar 2 06:11:53 2016 Active(file) 626412 Inactive(file) 7268 MemFree 302176 Wed Mar 2 06:11:54 2016 Active(file) 636664 Inactive(file) 7268 MemFree 291636 Wed Mar 2 06:11:55 2016 Active(file) 646904 Inactive(file) 7268 MemFree 281204 Wed Mar 2 06:11:56 2016 Active(file) 657144 Inactive(file) 7268 MemFree 270680 Wed Mar 2 06:11:57 2016 Active(file) 667392 Inactive(file) 7268 MemFree 260264 Wed Mar 2 06:11:58 2016 Active(file) 677632 Inactive(file) 7268 MemFree 249600 Wed Mar 2 06:11:59 2016 Active(file) 687872 Inactive(file) 7268 MemFree 239168 Wed Mar 2 06:12:00 2016 Active(file) 698112 Inactive(file) 7268 MemFree 228768 Wed Mar 2 06:12:01 2016 Active(file) 708352 Inactive(file) 7268 MemFree 218212 Wed Mar 2 06:12:02 2016 Active(file) 718584 Inactive(file) 7268 MemFree 207640 Wed Mar 2 06:12:03 2016 Active(file) 728840 Inactive(file) 7268 MemFree 197208 Wed Mar 2 06:12:04 2016 Active(file) 739080 Inactive(file) 7268 MemFree 186512 Wed Mar 2 06:12:05 2016 Active(file) 749320 Inactive(file) 7268 MemFree 176080 Wed Mar 2 06:12:06 2016 Active(file) 759560 Inactive(file) 7268 MemFree 165508 Wed Mar 2 06:12:07 2016 Active(file) 769808 Inactive(file) 7268 MemFree 154952 Wed Mar 2 06:12:08 2016 Active(file) 780048 Inactive(file) 7268 MemFree 144504 Wed Mar 2 06:12:10 2016 Active(file) 790300 Inactive(file) 7268 MemFree 133948 Wed Mar 2 06:12:11 2016 Active(file) 800540 Inactive(file) 7268 MemFree 123500 Wed Mar 2 06:12:12 2016 Active(file) 810780 Inactive(file) 7268 MemFree 112944 Wed Mar 2 06:12:13 2016 Active(file) 821028 Inactive(file) 7268 MemFree 102264 Wed Mar 2 06:12:14 2016 Active(file) 831268 Inactive(file) 7268 MemFree 91816 Wed Mar 2 06:12:15 2016 Active(file) 841508 Inactive(file) 7268 MemFree 81260 Wed Mar 2 06:12:16 2016 Active(file) 851748 Inactive(file) 7268 MemFree 70812 Wed Mar 2 06:12:17 2016 Active(file) 861988 Inactive(file) 7268 MemFree 60256 Wed Mar 2 06:12:18 2016 Active(file) 872236 Inactive(file) 7268 MemFree 49684 Wed Mar 2 06:12:19 2016 Active(file) 882476 Inactive(file) 7268 MemFree 39252 Wed Mar 2 06:12:20 2016 Active(file) 892716 Inactive(file) 7268 MemFree 28680 Wed Mar 2 06:12:21 2016 Active(file) 902956 Inactive(file) 7268 MemFree 18248 Wed Mar 2 06:12:22 2016 Active(file) 809036 Inactive(file) 107020 MemFree 11916 Wed Mar 2 06:12:23 2016 Active(file) 771108 Inactive(file) 148232 MemFree 9036 Wed Mar 2 06:12:24 2016 Active(file) 729564 Inactive(file) 188620 MemFree 10492 Wed Mar 2 06:12:25 2016 Active(file) 706860 Inactive(file) 212456 MemFree 9736 Wed Mar 2 06:12:26 2016 Active(file) 685596 Inactive(file) 233960 MemFree 9868 Wed Mar 2 06:12:27 2016 Active(file) 670300 Inactive(file) 250432 MemFree 8976 Wed Mar 2 06:12:28 2016 Active(file) 653200 Inactive(file) 267188 MemFree 9580 Wed Mar 2 06:12:29 2016 Active(file) 639076 Inactive(file) 281304 MemFree 9920 Wed Mar 2 06:12:30 2016 Active(file) 625416 Inactive(file) 294404 MemFree 10756 Wed Mar 2 06:12:31 2016 Active(file) 616904 Inactive(file) 304192 MemFree 9872 Wed Mar 2 06:12:32 2016 Active(file) 608672 Inactive(file) 313408 MemFree 9124 Wed Mar 2 06:12:33 2016 Active(file) 599704 Inactive(file) 322564 MemFree 9344 Wed Mar 2 06:12:34 2016 Active(file) 591000 Inactive(file) 331176 MemFree 9680 Wed Mar 2 06:12:35 2016 Active(file) 583512 Inactive(file) 338832 MemFree 9792 Wed Mar 2 06:12:36 2016 Active(file) 576248 Inactive(file) 346064 MemFree 10104 Wed Mar 2 06:12:37 2016 Active(file) 569240 Inactive(file) 352844 MemFree 10492 Wed Mar 2 06:12:38 2016 Active(file) 564560 Inactive(file) 358484 MemFree 9840 Wed Mar 2 06:12:39 2016 Active(file) 557864 Inactive(file) 364604 MemFree 10688 Wed Mar 2 06:12:40 2016 Active(file) 555524 Inactive(file) 368920 MemFree 9044 Wed Mar 2 06:12:41 2016 Active(file) 551240 Inactive(file) 373692 MemFree 8808 Wed Mar 2 06:12:43 2016 Active(file) 542976 Inactive(file) 379496 MemFree 11272 Wed Mar 2 06:12:44 2016 Active(file) 540932 Inactive(file) 383164 MemFree 10048 Wed Mar 2 06:12:45 2016 Active(file) 537024 Inactive(file) 387208 MemFree 10144 Wed Mar 2 06:12:46 2016 Active(file) 535280 Inactive(file) 390520 MemFree 8856 Wed Mar 2 06:12:47 2016 Active(file) 531516 Inactive(file) 394240 MemFree 8960 Wed Mar 2 06:12:48 2016 Active(file) 524960 Inactive(file) 398484 MemFree 11532 Wed Mar 2 06:12:49 2016 Active(file) 523316 Inactive(file) 401304 MemFree 10668 Wed Mar 2 06:12:50 2016 Active(file) 521752 Inactive(file) 404024 MemFree 9624 Wed Mar 2 06:12:51 2016 Active(file) 518004 Inactive(file) 407112 MemFree 10488 Wed Mar 2 06:12:52 2016 Active(file) 514676 Inactive(file) 409964 MemFree 11120 Wed Mar 2 06:12:53 2016 Active(file) 511444 Inactive(file) 412676 MemFree 11672 Wed Mar 2 06:12:54 2016 Active(file) 512100 Inactive(file) 414544 MemFree 9564 Wed Mar 2 06:12:55 2016 Active(file) 510424 Inactive(file) 416732 MemFree 9240 Wed Mar 2 06:12:56 2016 Active(file) 508612 Inactive(file) 418876 MemFree 9128 Wed Mar 2 06:12:57 2016 Active(file) 506692 Inactive(file) 420960 MemFree 9116 Wed Mar 2 06:12:58 2016 Active(file) 504668 Inactive(file) 422952 MemFree 9196 Wed Mar 2 06:12:59 2016 Active(file) 500872 Inactive(file) 425144 MemFree 11028 Wed Mar 2 06:13:00 2016 Active(file) 499932 Inactive(file) 426840 MemFree 10512 Wed Mar 2 06:13:01 2016 Active(file) 499008 Inactive(file) 428456 MemFree 9884 Wed Mar 2 06:13:02 2016 Active(file) 498400 Inactive(file) 430000 MemFree 8980 Wed Mar 2 06:13:03 2016 Active(file) 494780 Inactive(file) 431852 MemFree 10976 Wed Mar 2 06:13:04 2016 Active(file) 495772 Inactive(file) 433004 MemFree 8948 Wed Mar 2 06:13:05 2016 Active(file) 493212 Inactive(file) 434544 MemFree 10160 Wed Mar 2 06:13:06 2016 Active(file) 492452 Inactive(file) 435816 MemFree 9900 Wed Mar 2 06:13:07 2016 Active(file) 491728 Inactive(file) 437040 MemFree 9624 Wed Mar 2 06:13:08 2016 Active(file) 490696 Inactive(file) 438264 MemFree 9360 ^C [ec2-user@ip-172-31-37-189 linux-systems-programming]$ echo "At this point the systems tabilises around 490MB Active and about 430MB inactive" At this point the systems tabilises around 490MB Active and about 430MB inactive [ec2-user@ip-172-31-37-189 linux-systems-programming]$ echo "Now have a look at /proc/meminfo before and after I delete the files that we just created" Now have a look at /proc/meminfo before and after I delete the files that we just created [ec2-user@ip-172-31-37-189 linux-systems-programming]$ cat /proc/meminfo MemTotal: 1019444 kB MemFree: 10420 kB MemAvailable: 969860 kB Buffers: 308 kB Cached: 928908 kB SwapCached: 0 kB Active: 504448 kB Inactive: 438452 kB Active(anon): 13708 kB Inactive(anon): 52 kB Active(file): 490740 kB Inactive(file): 438400 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 16 kB Writeback: 0 kB AnonPages: 13700 kB Mapped: 4392 kB Shmem: 60 kB Slab: 54276 kB SReclaimable: 44868 kB SUnreclaim: 9408 kB KernelStack: 1408 kB PageTables: 2356 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 509720 kB Committed_AS: 62876 kB VmallocTotal: 34359738367 kB VmallocUsed: 2488 kB VmallocChunk: 34359731159 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 22528 kB DirectMap2M: 1026048 kB [ec2-user@ip-172-31-37-189 linux-systems-programming]$ du -sh /tmp/file* 10M /tmp/file.1 10M /tmp/file.10 10M /tmp/file.100 10M /tmp/file.101 10M /tmp/file.102 10M /tmp/file.103 10M /tmp/file.104 10M /tmp/file.105 10M /tmp/file.106 10M /tmp/file.107 10M /tmp/file.108 10M /tmp/file.109 10M /tmp/file.11 10M /tmp/file.110 10M /tmp/file.111 10M /tmp/file.112 10M /tmp/file.113 10M /tmp/file.114 10M /tmp/file.115 10M /tmp/file.116 10M /tmp/file.117 10M /tmp/file.118 10M /tmp/file.119 10M /tmp/file.12 10M /tmp/file.120 10M /tmp/file.121 10M /tmp/file.122 10M /tmp/file.123 10M /tmp/file.124 10M /tmp/file.125 10M /tmp/file.126 10M /tmp/file.127 10M /tmp/file.128 10M /tmp/file.129 10M /tmp/file.13 10M /tmp/file.130 10M /tmp/file.131 10M /tmp/file.132 10M /tmp/file.133 10M /tmp/file.14 10M /tmp/file.15 10M /tmp/file.16 10M /tmp/file.17 10M /tmp/file.18 10M /tmp/file.19 10M /tmp/file.2 10M /tmp/file.20 10M /tmp/file.21 10M /tmp/file.22 10M /tmp/file.23 10M /tmp/file.24 10M /tmp/file.25 10M /tmp/file.26 10M /tmp/file.27 10M /tmp/file.28 10M /tmp/file.29 10M /tmp/file.3 10M /tmp/file.30 10M /tmp/file.31 10M /tmp/file.32 10M /tmp/file.33 10M /tmp/file.34 10M /tmp/file.35 10M /tmp/file.36 10M /tmp/file.37 10M /tmp/file.38 10M /tmp/file.39 10M /tmp/file.4 10M /tmp/file.40 10M /tmp/file.41 10M /tmp/file.42 10M /tmp/file.43 10M /tmp/file.44 10M /tmp/file.45 10M /tmp/file.46 10M /tmp/file.47 10M /tmp/file.48 10M /tmp/file.49 10M /tmp/file.5 10M /tmp/file.50 10M /tmp/file.51 10M /tmp/file.52 10M /tmp/file.53 10M /tmp/file.54 10M /tmp/file.55 10M /tmp/file.56 10M /tmp/file.57 10M /tmp/file.58 10M /tmp/file.59 10M /tmp/file.6 10M /tmp/file.60 10M /tmp/file.61 10M /tmp/file.62 10M /tmp/file.63 10M /tmp/file.64 10M /tmp/file.65 10M /tmp/file.66 10M /tmp/file.67 10M /tmp/file.68 10M /tmp/file.69 10M /tmp/file.7 10M /tmp/file.70 10M /tmp/file.71 10M /tmp/file.72 10M /tmp/file.73 10M /tmp/file.74 10M /tmp/file.75 10M /tmp/file.76 10M /tmp/file.77 10M /tmp/file.78 10M /tmp/file.79 10M /tmp/file.8 10M /tmp/file.80 10M /tmp/file.81 10M /tmp/file.82 10M /tmp/file.83 10M /tmp/file.84 10M /tmp/file.85 10M /tmp/file.86 10M /tmp/file.87 10M /tmp/file.88 10M /tmp/file.89 10M /tmp/file.9 10M /tmp/file.90 10M /tmp/file.91 10M /tmp/file.92 10M /tmp/file.93 10M /tmp/file.94 10M /tmp/file.95 10M /tmp/file.96 10M /tmp/file.97 10M /tmp/file.98 10M /tmp/file.99 [ec2-user@ip-172-31-37-189 linux-systems-programming]$ rm /tmp/file* [ec2-user@ip-172-31-37-189 linux-systems-programming]$ cat /proc/meminfo MemTotal: 1019444 kB MemFree: 957192 kB MemAvailable: 971072 kB Buffers: 448 kB Cached: 6792 kB SwapCached: 0 kB Active: 20508 kB Inactive: 424 kB Active(anon): 13708 kB Inactive(anon): 52 kB Active(file): 6800 kB Inactive(file): 372 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 0 kB SwapFree: 0 kB Dirty: 120 kB Writeback: 0 kB AnonPages: 13700 kB Mapped: 4392 kB Shmem: 60 kB Slab: 29412 kB SReclaimable: 20004 kB SUnreclaim: 9408 kB KernelStack: 1408 kB PageTables: 2356 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 509720 kB Committed_AS: 62876 kB VmallocTotal: 34359738367 kB VmallocUsed: 2488 kB VmallocChunk: 34359731159 kB AnonHugePages: 0 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 22528 kB DirectMap2M: 1026048 kB [ec2-user@ip-172-31-37-189 linux-systems-programming]$ echo "As you can see, the memory has freed up and the cache has disappeared" As you can see, the memory has freed up and the cache has disappeared [ec2-user@ip-172-31-37-189 linux-systems-programming]$ echo "This ladies and gentlemen has been the first installment in a series of Linux VM Subsystem experiments" This ladies and gentlemen has been the first installment in a series of Linux VM Subsystem experiments [ec2-user@ip-172-31-37-189 linux-systems-programming]$ echo "The next installment will involve the interaction of the filesystem cache and anonymous memory increases" The next installment will involve the interaction of the filesystem cache and anonymous memory increases [ec2-user@ip-172-31-37-189 linux-systems-programming]$ echo "Good night, back at work in 6 hours" Good night, back at work in 6 hours [ec2-user@ip-172-31-37-189 linux-systems-programming]$ exit