Tomas Ögren wrote:
On 13 November, 2006 - Sanjeev Bagewadi sent me these 7,1K bytes:


Tomas,

comments inline...



arc::print struct arc

{
 anon = ARC_anon
 mru = ARC_mru
 mru_ghost = ARC_mru_ghost
 mfu = ARC_mfu
 mfu_ghost = ARC_mfu_ghost
 size = 0x6f7a400
 p = 0x5d9bd5a
 c = 0x5f6375a
 c_min = 0x4000000
 c_max = 0x2e82a000
 hits = 0x40e0a15
 misses = 0x1cec4a4
 deleted = 0x1b0ba0d
 skipped = 0x24ea64e13
 hash_elements = 0x179d
 hash_elements_max = 0x60bb
 hash_collisions = 0x8dca3a
 hash_chains = 0x391
 hash_chain_max = 0x8
 no_grow = 0x1
}

So, about 100MB and a memory crunch..



Interesting ! So, it is not the ARC which is consuming too much memory....
It is some other piece (not sure if it belongs to ZFS) which is causing the crunch...

Or the other possibility is that ARC ate up too much and caused a near crunch situation and the kmem hit back and caused ARC to free up it's buffers (hence the no_grow flag enabled). So, it (ARC) could be osscillating between large caching and then purging the caches.

You might want to keep track of these values (ARC size and no_grow flag) and see how they
change over a period of time. This would help us understand the pattern.


I would guess it grows after boot until it hits some max and then stays
there.. but I can check it out..


And if we know it ARC which is causing the crunch we could manually change the values of c_max to a comfortable value and that would limit the size of ARC.


But in the ZFS world, DNLC is part of the ARC, right?
My original question was how to get rid of "data cache", but keep
"metadata cache" (such as DNLC)...


However, I would suggest
that you try it out on a non-production machine first.

By, default the c_max is set to 75% of physmem and that is the hard limit. "c" is the soft limit and ARC would try and grow upto 'c". The value of "c" is adjusted when there is a need to cache more
but, it will never exceed "c_max".

Regarding the huge number of reads, I am sure you have already tried disabling the VDEV prefetch.
If not, it is worth a try.


That was part of my original question, how? :)

/Tomas

On recent bits, you can set 'zfs_vdev_cache_max' to 1 to disable the vdev cache.

eric

_______________________________________________
zfs-discuss mailing list
zfs-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/zfs-discuss

Reply via email to