Re: [RPC][PATCH 2.6.20-rc5] limit total vfs page cache

From: Vaidyanathan Srinivasan
Date: Fri Jan 19 2007 - 09:46:33 EST



Aubrey Li wrote:
> Here is the newest patch against 2.6.20-rc5.
> ======================================================
> From ad9ca9a32bdcaddce9988afbf0187bfd04685a0c Mon Sep 17 00:00:00 2001
> From: Aubrey.Li <aubreylee@xxxxxxxxx>
> Date: Thu, 18 Jan 2007 11:08:31 +0800
> Subject: [PATCH] Add an interface to limit total vfs page cache.
> The default percent is using 90% memory for page cache.

Hi Aubrey,

I used your patch on my PPC64 box and I do not get expected
behavior. As you had requested, I am attaching zoneinfo and meminfo
dumps:

# cat /proc/sys/vm/pagecache_ratio
50
# cat /proc/meminfo
MemTotal: 1014600 kB << 1GB Ram
MemFree: 960336 kB << Expect to see around 500MB free after
Buffers: 8348 kB issue of DD command
Cached: 8624 kB
SwapCached: 8 kB
Active: 20908 kB
Inactive: 5680 kB
SwapTotal: 1526164 kB
SwapFree: 1526088 kB
Dirty: 116 kB
Writeback: 0 kB
AnonPages: 9544 kB
Mapped: 7736 kB
Slab: 18920 kB
SReclaimable: 5792 kB
SUnreclaim: 13128 kB
PageTables: 972 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 2033464 kB
Committed_AS: 46652 kB
VmallocTotal: 8589934592 kB
VmallocUsed: 2440 kB
VmallocChunk: 8589932152 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 16384 kB

# cat /proc/zoneinfo
Node 0, zone DMA
pages free 130474
min 571
low 713
high 856
active 5010
inactive 775
scanned 0 (a: 24 i: 0)
spanned 147456
present 145440
nr_anon_pages 2383
nr_mapped 1932
nr_file_pages 3389
nr_slab_reclaimable 1094
nr_slab_unreclaimable 1819
nr_page_table_pages 243
nr_dirty 4
nr_writeback 0
nr_unstable 0
nr_bounce 0
nr_vmscan_write 34
numa_hit 1428389
numa_miss 0
numa_foreign 1048457
numa_interleave 1511
numa_local 1428389
numa_other 0
protection: (0, 0)
pagesets
cpu: 0 pcp: 0
count: 77
high: 186
batch: 31
cpu: 0 pcp: 1
count: 3
high: 62
batch: 15
vm stats threshold: 16
cpu: 1 pcp: 0
count: 171
high: 186
batch: 31
cpu: 1 pcp: 1
count: 11
high: 62
batch: 15
vm stats threshold: 16
all_unreclaimable: 0
prev_priority: 12
start_pfn: 0
Node 1, zone DMA
pages free 109610
min 444
low 555
high 666
active 217
inactive 655
scanned 0 (a: 21 i: 0)
spanned 114688
present 113120
nr_anon_pages 3
nr_mapped 2
nr_file_pages 869
nr_slab_reclaimable 354
nr_slab_unreclaimable 1454
nr_page_table_pages 0
nr_dirty 0
nr_writeback 0
nr_unstable 0
nr_bounce 0
nr_vmscan_write 0
numa_hit 2220
numa_miss 1048457
numa_foreign 0
numa_interleave 1519
numa_local 0
numa_other 1050677
protection: (0, 0)
pagesets
all_unreclaimable: 0
prev_priority: 12
start_pfn: 147456

The test: Write 1GB file in /tmp

# dd if=/dev/zero of=/tmp/foo bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 15.2301 seconds, 70.5 MB/s

Expect around 500MB to be retained as free after the run?

# cat /proc/meminfo
MemTotal: 1014600 kB
MemFree: 14080 kB <<<
Buffers: 11164 kB
Cached: 924536 kB <<< Almost all memory is consumed by
SwapCached: 8 kB pagecache
Active: 27500 kB
Inactive: 917740 kB
SwapTotal: 1526164 kB
SwapFree: 1526088 kB
Dirty: 100528 kB
Writeback: 0 kB
AnonPages: 9544 kB
Mapped: 7736 kB
Slab: 45264 kB
SReclaimable: 29652 kB
SUnreclaim: 15612 kB
PageTables: 972 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
CommitLimit: 2033464 kB
Committed_AS: 47732 kB
VmallocTotal: 8589934592 kB
VmallocUsed: 2440 kB
VmallocChunk: 8589932152 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
Hugepagesize: 16384 kB

# cat /proc/zoneinfo
Node 0, zone DMA
pages free 2063
min 571
low 713
high 856
active 6028
inactive 124552
scanned 0 (a: 5 i: 0)
spanned 147456
present 145440
nr_anon_pages 2384
nr_mapped 1932
nr_file_pages 128191
nr_slab_reclaimable 4312
nr_slab_unreclaimable 2102
nr_page_table_pages 243
nr_dirty 13724
nr_writeback 0
nr_unstable 0
nr_bounce 0
nr_vmscan_write 34
numa_hit 1577905
numa_miss 0
numa_foreign 1173147
numa_interleave 1511
numa_local 1577905
numa_other 0
protection: (0, 0)
pagesets
cpu: 0 pcp: 0
count: 147
high: 186
batch: 31
cpu: 0 pcp: 1
count: 7
high: 62
batch: 15
vm stats threshold: 16
cpu: 1 pcp: 0
count: 160
high: 186
batch: 31
cpu: 1 pcp: 1
count: 52
high: 62
batch: 15
vm stats threshold: 16
all_unreclaimable: 0
prev_priority: 12
start_pfn: 0
Node 1, zone DMA
pages free 1766
min 444
low 555
high 666
active 847
inactive 104893
scanned 0 (a: 27 i: 0)
spanned 114688
present 113120
nr_anon_pages 2
nr_mapped 2
nr_file_pages 105739
nr_slab_reclaimable 3082
nr_slab_unreclaimable 1658
nr_page_table_pages 0
nr_dirty 11419
nr_writeback 0
nr_unstable 0
nr_bounce 0
nr_vmscan_write 0
numa_hit 2220
numa_miss 1173147
numa_foreign 0
numa_interleave 1519
numa_local 0
numa_other 1175367
protection: (0, 0)
pagesets
cpu: 0 pcp: 0
count: 1
high: 186
batch: 31
cpu: 0 pcp: 1
count: 0
high: 62
batch: 15
vm stats threshold: 12
cpu: 1 pcp: 0
count: 35
high: 186
batch: 31
cpu: 1 pcp: 1
count: 0
high: 62
batch: 15
vm stats threshold: 12
all_unreclaimable: 0
prev_priority: 12
start_pfn: 147456



[snip]

Please let me know if you need any further data to help me out with
the test/experiment.

--Vaidy

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/