Bonjour à tous,
Personnellement, j'utilise zpool iostat - v 1 et je m'attarde sur le read, plus le read est utilisé sur le cache et moins il sera utilisé sur le pool et mieux c'est.
Il y a 3 possibilité qui peuvent être réglé avec zfs get secondarycache monpool, c'est:
secondarycache=all (ZFS mets le plus possible de chose en cache)
secondarycache=metadata (ZFS ne mets que les méta-données dans le cache)
secondarycache=none (ZFS utilise le cache mais au minimum, attention "none", ne veut pas dire qu'il ne l'utilise pas ! il doit l'utiliser juste pour le minimum)
J'aurais tendance à dire que si on a un SSD:
- si on n'utilise peu sa machine, on met "none" et on use moins les cellules du SSD (c'est moins vrai avec le TRIM, mais l'usure existe toujours)
- si on utilise moyennement sa machine, on met metadata et on aura un compromis entre usure moindre du SSD et efficacité du cache
- si on veut tartiner, on met ALL, mais là, on écrit beaucoup de chose dessus.
A savoir, pour une raison voulue, le cache et perdu à chaque démarrage ou importation du pool, dans ton cas Velivole, tes 7,48Go de cache seront perdus lors de l'arrêt de ta machine.
Normalement, un NAS est fait pour fonctionner H24, mais les "normalement" ... sont une norme, pas forcément la réalité, certains arrêtent leurs NAS pour avoir moins de bruit ou pour consommer moins de courant..
Les réglages du secondarycache s'applique aussi au primarycache, qui lui est le cache RAM:
- si on met none, ZFS chargera en RAM le minimum qu'il a besoin
- si on met metadata, ZFS aura sous la main "des choses"
- si on met all, on aura le maxi "des choses" en cacheRAM, mais la quantité de RAM diminue aussi
Au vu des statistiques que tu as mis, je dirais que tes disques sont relativement lents et que l'utilisation d'un SSD est plus que nécessaire !
Pour affiner mes réglages, je ne mets pas de cache, j'utilise que le pool et je regarde avec: zpool import -v 1 (on arrête avec CTRL-C):
Si le read est à 2 digits, c'est que ça peine
Si le read est à 3 digits, c'est que ça marche bien
Si le read est à 4 digits, c'est que ça "tartine" bien
(Je suis d'accord que 1000 et 9999 est un peu différent, donc, on va dire que 1000 sur une config "faible" est bien)
Ensuite,
J'active le cache en secondary=none
là j'essaie d'avoir des read égaux ou superieurs au pool
Si c'est pas bon,
Je mets secondarycache=metadata
et je regarde de nouveau les stats
Idem pour all
Le but, n'est pas forcément d'avoir un gros cache, car plus il est gros, plus il faudra que ZFS se ballade dedans, c'est bien si le cache est en SSD, mais dans le cas d'un cache en disque dur, là ça peut être un soucis.
Le but (mon avis), est d'avoir un système ZFS "réactif", c'est à dire qu'en cas d'utilisation, ZFS puisse trouver ses infos rapidement.
Après il est évident que si tout est en cache dans un SSD, c'est mieux, de plus, cela sollicite moins les disques durs, ZFS a été conçu pour une utilisation SSD
Dans ton cas, Velivole, soit le cache est plus que nécessaire, soit il est réglé trop fort (il faudrait voir a quelle vitesse augment la taille du cache).
Si le NAS est H24, c'est bien (ne change rien).
Si le NAS est allumé tous les jours, alors, le SSD sera usé (plus) rapidement (essaie metadata et regarde si les perfomances te suffisent)
Pour l'analyse:
Pour le 934, c'est une lecture de 934 octets sur le SSD
Pour le 431K, c'est une écriture des 431Ko sur le SSD
On voit qu'il y a 7 opérations en écritures sur chaque disques (strip), donc 2 x 7, soit 14 opérations en cours. La totalisation est de 20, car l'écriture du SSD n'est pas comptabilisée car elle ne fait pas partie du pool
les écritures sur le SSD sont normales, car toutes écritures sur le pool, sont répercutées aussi sur le SSD (je serais quand même curieux de connaître la valeur du secondarycache)
on voit également, qu'il y a eu une lecture sur chaque branches du mirroir, mais ceci ne doit concerner que des cheksum sur la structure du mirroir, car il n'y a pas de valeurs dans les dev.
Mais il faudrait voir ce tableau avec un rafraîchissement de 1 sec sur une période plus longue, pour mieux voir, car là, c'est comme analyser une image sur une vidéo.
Surtout, en cas de doute ou de non réponse du pool, il faut venir voir ceci, car quand on efface de grosses données, le travail de ZFS peut durer "un certain temps".
Quelles sont tes valeurs maxi en read ? en write ? ceci pour une branche du mirroir et pour le SSD
N'hésite pas a regarder aussi lors d'un scrub. D'ailleurs a ce propos, un scrub permet indirectement de charger son cache

... pas très pratique, je suis d'accord !
Pour finir, je dirais que tu as une bonne optimisation de ton système ... en lecture, pour l'écriture ... là c'est pas pareil
