Pentru testare am nevoie ca cache-ul zfs să fie rece.
Pot elimina stocarea cache din pool eliminând discurile cache, exportând și importând pool-ul. Asta dă efectul pe care mi-l doresc. Dar chiar mi-ar plăcea să nu exportăm piscina.
Există o modalitate mai puțin drastică de a obține același efect?
Ceea ce caut este echivalentul cu:
echo 3 > /proc/sys/vm/drop_caches
care face ce vreau eu pentru ext4.
fundal
Îmi pot rula algoritmul în diferite moduri. Nu îmi pasă de performanța în cel mai bun caz. eu do pasă de performanța în cel mai rău caz. Cel mai rău caz ar fi pe datele reci (date atinse atât de mult timp în urmă încât nu mai sunt în ARC/L2ARC).
Pentru a alege modalitatea optimă de a rula algoritmul, trebuie să pot rula pe același set de testare. Și acest set de testare trebuie să fie rece. Acest lucru este complet împotriva strategiei de stocare în cache a ZFS: dacă rulez pe același set de testare din nou și din nou, va pune datele în ARC - ceea ce are perfect sens în circumstanțe normale, dar nu aici.
Pot exporta/import pe mașina mea de dezvoltator, dar nu pot face acest lucru în producție. Cu toate acestea, golirea memoriei cache voi să fie acceptabil în producție.
Voi prefera dacă ARC funcționează în continuare, deci datele reci sunt stocate în cache după ce au fost citite (din nou similar cu ext4), dar pot trăi cu ARC complet dezactivat în timpul testului.