Desde la actualización a Solaris 11, el tamaño de mi ARC se ha enfocado consistentemente en 119 MB, a pesar de tener 30 GB de RAM. ¿Qué? ¿Por qué?

9

Ejecuté una caja NAS / SAN en Solaris 11 Express antes de que se lanzara Solaris 11. La caja es una HP X1600 con una D2700 adjunta. En total, 12x 1TB 7200 discos SATA, 12x 300GB 10k discos SAS en zpools separados. La RAM total es de 30 GB. Los servicios prestados son CIFS, NFS e iSCSI.

Todo estaba bien, y tenía un gráfico de uso de memoria ZFS que se veía así:

Un tamaño de arco bastante saludable de alrededor de 23 GB, haciendo uso de la memoria disponible para el almacenamiento en caché.

Sin embargo, luego actualicé a Solaris 11 cuando salió eso. Ahora, mi gráfico se ve así:

La salida parcial de arc_summary.ples:

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)

Está apuntando a 119MB mientras está sentado a 915MB. Tiene 30 GB para jugar. ¿Por qué? ¿Cambiaron algo?

Editar

Para aclarar, arc_summary.ples de Ben Rockwood, y las líneas relevantes que generan las estadísticas anteriores son:

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};

Las entradas de Kstat están ahí, solo obtengo valores extraños de ellas.

Editar 2

Acabo de volver a medir el tamaño del arco con arc_summary.pl- He verificado estos números con 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)

Lo que me llama la atención es que el tamaño objetivo es 119MB. Mirando el gráfico, está dirigido al mismo valor exacto (124,91 millones según los cactus, 119 millones según arc_summary.pl, creo que la diferencia es solo 1024/1000 problemas de redondeo) desde que se instaló Solaris 11. Parece que el núcleo está haciendo un esfuerzo cero para cambiar el tamaño del objetivo a algo diferente. El tamaño actual fluctúa a medida que las necesidades del sistema (grande) luchan con el tamaño objetivo, y parece que el equilibrio está entre 700 y 1000 MB.

Entonces, la pregunta ahora es un poco más puntiaguda: ¿por qué Solaris 11 establece de manera difícil el tamaño de mi objetivo ARC en 119 MB y cómo lo cambio? ¿Debo aumentar el tamaño mínimo para ver qué sucede?

He pegado la salida de kstat -n arcstatsmás en http://pastebin.com/WHPimhfg

Editar 3

Ok, rareza ahora. Sé que flibflob mencionó que había un parche para arreglar esto. Todavía no he aplicado este parche (todavía resuelvo problemas de soporte interno) y no he aplicado ninguna otra actualización de software.

El jueves pasado, la caja se estrelló. Como en, dejó de responder por completo a todo. Cuando lo reinicié, volvió a funcionar bien, pero así es como se ve ahora mi gráfico.

Parece haber solucionado el problema.

Esto es lo correcto de la tierra ahora. Literalmente no tengo idea de lo que está pasando. :(

crecer
fuente

Respuestas:

4

Lamentablemente, no puedo resolver su problema, pero aquí hay información de fondo:

  • El tamaño del objetivo ARC no parece ser un valor fijo. Experimento el mismo problema en una máquina Solaris 11 y después de cada reinicio, en algún momento el tamaño objetivo parece bloquearse en un valor entre ~ 100 y ~ 500 MB.

  • Al menos otras 3 personas enfrentan el mismo problema, como se discutió en http://mail.opensolaris.org/pipermail/zfs-discuss/2012-January/050655.html

  • También hay un informe de error abierto (7111576) en "My Oracle Support" ( https://support.oracle.com ). Si su servidor está bajo un contrato de soporte válido, debe presentar una solicitud de servicio y hacer referencia a ese error. A partir de ahora, cualquier corrección de errores todavía parece estar en progreso ...

Aparte de eso, no hay mucho que puedas hacer. Si aún no ha actualizado sus versiones de zpool / zfs, puede intentar arrancar en su antiguo entorno de arranque Solaris 11 Express y ejecutarlo hasta que Oracle finalmente decida lanzar una SRU que solucione el problema.

Editar: dado que la cuestión de la degradación del rendimiento se ha discutido anteriormente: todo depende de lo que esté haciendo. He visto latencias horribles en mi recurso compartido Solaris 11 NFS desde que actualicé a Solaris 11 11/11. Sin embargo, en comparación con su sistema, tengo relativamente pocos husos y confío mucho en que el almacenamiento en caché ARC y L2ARC funcione como se esperaba (tenga en cuenta que el problema también hace que L2ARC no crezca a un tamaño razonable). Esto ciertamente no es un problema de estadísticas mal interpretadas.

Aunque es posible que no confíe demasiado en ARC / L2ARC, probablemente podrá reproducirlo leyendo un archivo grande (que normalmente cabría en su RAM) varias veces con dd . Probablemente notará que la primera vez que lea el archivo en realidad será más rápido que cualquier lectura consecutiva del mismo archivo (debido al ridículo tamaño de ARC y a los innumerables desalojos de caché).

Editar: ahora he logrado recibir un parche IDR de Oracle que resuelve este problema. Si su sistema es compatible, debe solicitar el parche IDR para CR 7111576. El parche se aplica a Solaris 11 11/11 con SRU3.

nlx-ck
fuente
Yo creo que estoy bajo el apoyo, pero trabajo en una gran empresa, por lo que sabe?
Growse
1

Cambiaron los kstats.

Oracle Solaris 11 ha eliminado las siguientes estadísticas 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

y agregó lo siguiente a zfs: 0: arcstats:

  • buf_size
  • meta_limit
  • meta_max
  • meta_used

Entonces, esto podría ser básicamente un problema con su script.

juwi
fuente
Es un punto interesante, pero no creo que esté usando ninguna de esas métricas para informar estos números. Ver editar.
Growse
De hecho, todavía están aquí. Considerando eso, esto se ve muy extraño. ¿Ves algún tipo de degradación del rendimiento?
juwi
No puedo decir que tengo. Probablemente debería medir esto.
Growse
En el caso de que esto no sea un error en lo que está viendo y realmente tiene una rareza allí, tenga en cuenta que PUEDE modificar estos valores sobre la marcha en un sistema en vivo, o usando permanentemente / etc / system.
Nex7