nfs_inode_cache megeszi a RAM-ot

Fórumok

Sziasztok!

Az alábbi problémával szembesülök:
Van egy alkalmazás ami kb. 10 NFS csatolásról olvas fel fájl attribútumokat (igazából mappák méretét számolgatja), majd tárolja el egy külső SQL adatbázisba.

Ami az én igazi problémám, az az, hogy az NFS Inode Cache megeszi az összes RAM-ot, és így teljesen belassul az egész szolgáltatás/VM.Slabtop kimenet részlet:

Active / Total Objects (% used) : 2973900 / 2984566 (99.6%)
Active / Total Slabs (% used) : 258792 / 258792 (100.0%)
Active / Total Caches (% used) : 102 / 176 (58.0%)
Active / Total Size (% used) : 838260.06K / 840276.16K (99.8%)
Minimum / Average / Maximum Object : 0.02K / 0.28K / 4096.00K

OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME
1075599 1075596 99% 0.06K 17073 63 68292K kmalloc-64
596988 596988 100% 0.19K 28428 21 113712K dentry
589482 589482 100% 1.01K 196494 3 785976K nfs_inode_cache <-- szépen kúszik fel a végtelenbe és tovább

NFS csatoláskor használt paraméterek:
nfs4 rw,hard,ac,actimeo=3,lookupcache=none,rdirplus,fsc,proto=tcp,cto

Próbáltam már a nocto-t is, nem segített a dolgon.

Azt pedig elég kellemetlen és "sumák" megoldásnak tartom, hogy ezt fél percenként futtatgassam:
echo 2 > /proc/sys/vm/drop_caches

A kérdésem az lenne, hogy nem lehetne-e ezt valahogy szabályozni, esetlegesen teljesen kikapcsolni?

Hozzászólások

elég régi kernel

https://bugzilla.redhat.com/show_bug.cgi?id=1044666#c5

itt találtam egy hasonló problémát amit az NSS libre vezettek vissza, amit a curl hívott meg

meg kellene nézni, hogy az alkalmazásotok hasonló hibát produkál-e

illetve esetleg frissebb kernellel tesztelni

az x86 vs amd64 kérdést azért tettem fel, mert nekem x86-os rendszerrel produkált hasonlóan iorw lassulást fizikai gép inode cache "túlcsordulás" miatt