Tuesday, March 1, 2016

Adventures in the Linux VM Subsystem - File Cache Demonstration #1

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

[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