Depuis la mise à niveau vers Solaris 11, ma taille ARC a toujours ciblé 119 Mo, malgré 30 Go de RAM. Quelle? Pourquoi?

9

J'ai exécuté un boîtier NAS / SAN sur Solaris 11 Express avant la sortie de Solaris 11. La boîte est un HP X1600 avec un D2700 attaché. En tout, 12 disques SATA de 1 To 7200, 12 disques SAS de 300 Go 10 000 dans des zpools séparés. La RAM totale est de 30 Go. Les services fournis sont CIFS, NFS et iSCSI.

Tout allait bien, et j'avais un graphique d'utilisation de la mémoire ZFS ressemblant à ceci:

Une taille d'arc assez saine d'environ 23 Go - en utilisant la mémoire disponible pour la mise en cache.

Cependant, j'ai ensuite mis à niveau vers Solaris 11 lorsque cela est sorti. Maintenant, mon graphique ressemble à ceci:

La sortie partielle de arc_summary.plest:

System Memory:
     Physical RAM:  30701 MB
     Free Memory :  26719 MB
     LotsFree:      479 MB

ZFS Tunables (/etc/system):

ARC Size:
     Current Size:             915 MB (arcsize)
     Target Size (Adaptive):   119 MB (c)
     Min Size (Hard Limit):    64 MB (zfs_arc_min)
     Max Size (Hard Limit):    29677 MB (zfs_arc_max)

Il cible 119 Mo alors qu'il est assis à 915 Mo. Il a 30 Go pour jouer. Pourquoi? Ont-ils changé quelque chose?

Éditer

Pour clarifier, arc_summary.plc'est Ben Rockwood, et les lignes pertinentes générant les statistiques ci-dessus sont:

my $mru_size = ${Kstat}->{zfs}->{0}->{arcstats}->{p};
my $target_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c};
my $arc_min_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c_min};
my $arc_max_size = ${Kstat}->{zfs}->{0}->{arcstats}->{c_max};
my $arc_size = ${Kstat}->{zfs}->{0}->{arcstats}->{size};

Les entrées de Kstat sont là, j'en tire juste des valeurs impaires.

Modifier 2

Je viens de re-mesurer la taille de l'arc avec arc_summary.pl- j'ai vérifié ces chiffres avec kstat:

System Memory:
     Physical RAM:  30701 MB
     Free Memory :  26697 MB
     LotsFree:      479 MB

ZFS Tunables (/etc/system):

ARC Size:
     Current Size:             744 MB (arcsize)
     Target Size (Adaptive):   119 MB (c)
     Min Size (Hard Limit):    64 MB (zfs_arc_min)
     Max Size (Hard Limit):    29677 MB (zfs_arc_max)

Ce qui me frappe, c'est que la taille cible est de 119 Mo. En regardant le graphique, il cible exactement la même valeur (124,91 millions selon les cactus, 119 millions selon arc_summary.pl- pensez que la différence n'est que des problèmes d'arrondi de 1024/1000) depuis l'installation de Solaris 11. Il semble que le noyau ne fasse aucun effort pour déplacer la taille cible vers quelque chose de différent. La taille actuelle fluctue au fur et à mesure que les besoins du système (grand) se battent avec la taille cible, et il semble que l'équilibre se situe entre 700 et 1000 Mo.

La question est donc maintenant un peu plus pointue - pourquoi Solaris 11 définit-il difficilement ma taille cible ARC à 119 Mo, et comment puis-je la modifier? Dois-je augmenter la taille minimale pour voir ce qui se passe?

J'ai bloqué la sortie de kstat -n arcstatsplus à http://pastebin.com/WHPimhfg

Modifier 3

Ok, bizarrerie maintenant. Je sais que flibflob a mentionné qu'il y avait un correctif pour résoudre ce problème. Je n'ai pas encore appliqué ce correctif (toujours en train de régler les problèmes de support interne) et je n'ai appliqué aucune autre mise à jour logicielle.

Jeudi dernier, la boîte s'est écrasée. Comme dans, complètement arrêté de répondre à tout. Lorsque je l'ai redémarré, cela s'est bien passé, mais voici à quoi ressemble mon graphique maintenant.

Il semble avoir résolu le problème.

C'est du vrai la la land maintenant. Je n'ai littéralement aucune idée de ce qui se passe. :(

grandir
la source

Réponses:

4

Malheureusement, je ne peux pas résoudre votre problème, mais voici quelques informations générales:

  • La taille cible ARC ne semble pas être une valeur fixe. Je rencontre le même problème sur une machine Solaris 11 et après chaque redémarrage, à un moment donné, la taille cible semble se bloquer à une valeur comprise entre ~ 100 et ~ 500 Mo.

  • Au moins 3 autres personnes sont confrontées au même problème, comme indiqué dans http://mail.opensolaris.org/pipermail/zfs-discuss/2012-January/050655.html

  • Il existe également un rapport de bogue ouvert (7111576) sur "My Oracle Support" ( https://support.oracle.com ). Si votre serveur est sous contrat de support valide, vous devez déposer une demande de service et vous référer à ce bogue. Pour l'instant, tout correctif semble toujours être en cours ...

En dehors de cela, vous ne pouvez pas faire grand-chose. Si vous n'avez pas encore mis à niveau vos versions zpool / zfs, vous pouvez essayer de démarrer dans votre ancien environnement de démarrage Solaris 11 Express et l'exécuter jusqu'à ce qu'Oracle décide finalement de publier une SRU qui résout le problème.

Edit: Puisque la question de la dégradation des performances a été discutée ci-dessus: Tout dépend de ce que vous faites. J'ai vu d'horribles latences sur mon partage NFS Solaris 11 depuis la mise à niveau vers Solaris 11 11/11. Par rapport à votre système, cependant, j'ai relativement peu de broches et je compte beaucoup sur la mise en cache ARC et L2ARC qui fonctionne comme prévu (veuillez noter que le problème empêche également L2ARC de croître à une taille raisonnable). Ce n'est certainement pas une question de statistiques mal interprétées.

Même si vous ne comptez pas trop sur ARC / L2ARC, vous pourrez probablement le reproduire en lisant plusieurs fois un fichier volumineux (qui rentrerait normalement dans votre RAM) avec dd . Vous remarquerez probablement que la première lecture du fichier sera en fait plus rapide que toute lecture consécutive du même fichier (en raison de la taille ridicule de l'ARC et des innombrables expulsions de cache).

Edit: j'ai maintenant réussi à recevoir un correctif IDR d'Oracle qui résout ce problème. Si votre système est pris en charge, vous devez demander le correctif IDR pour CR 7111576. Le correctif s'applique à Solaris 11 11/11 avec SRU3.

nlx-ck
la source
Je pense que je suis sous assistance, mais je travaille dans une entreprise massive, alors qui sait?
growse
1

Ils ont changé les kstats.

Oracle Solaris 11 a supprimé les statistiques suivantes de zfs: 0: arcstats:

  • evict_l2_cached
  • evict_l2_eligible
  • evict_l2_ineligible
  • evict_skip
  • hdr_size
  • l2_free_on_write
  • l2_size recycle_miss

et ajouté ce qui suit à zfs: 0: arcstats:

  • buf_size
  • meta_limit
  • meta_max
  • meta_used

Donc, cela pourrait simplement être un problème avec votre script.

juwi
la source
C'est un point intéressant, mais je ne pense pas utiliser l'une de ces mesures pour rapporter ces chiffres. Voir modifier.
growse
Ceux-ci sont en effet toujours là. Compte tenu de cela, cela semble très étrange. Voyez-vous une dégradation des performances?
juwi
Je ne peux pas dire que je l'ai fait. Je devrais probablement mesurer cela.
growse
Dans le cas où ce n'est pas une erreur dans ce que vous regardez et que vous avez vraiment une bizarrerie, veuillez noter que vous POUVEZ modifier ces valeurs à la volée sur un système en direct, ou en utilisant de façon permanente / etc / system.
Nex7