Eu executei uma caixa NAS / SAN no Solaris 11 Express antes do lançamento do Solaris 11. A caixa é um HP X1600 com um D2700 anexado. No total, discos 12x 1TB 7200 SATA, discos SAS de 300 GB e 10k em zpools separados. A RAM total é de 30 GB. Os serviços fornecidos são CIFS, NFS e iSCSI.
Tudo estava bem, e eu tinha um gráfico de uso de memória do ZFS assim:
Um tamanho de arco razoavelmente saudável de cerca de 23 GB - usando a memória disponível para armazenamento em cache.
No entanto, atualizei para o Solaris 11 quando ele foi lançado. Agora, meu gráfico fica assim:
A produção parcial de arc_summary.pl
é:
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)
Ele tem como alvo 119MB enquanto está sentado em 915MB. Tem 30 GB para jogar. Por quê? Eles mudaram alguma coisa?
Editar
Para esclarecer, arc_summary.pl
é de Ben Rockwood, e as linhas relevantes que geram as estatísticas acima são:
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};
As entradas do Kstat estão lá, só estou obtendo valores ímpares delas.
Editar 2
Acabei de medir novamente o tamanho do arco arc_summary.pl
- verifiquei esses números com 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)
O que me impressiona é que o tamanho do alvo é de 119 MB. Olhando para o gráfico, ele tem exatamente o mesmo valor (124,91M de acordo com cactos, 119M de acordo com arc_summary.pl
- pense que a diferença são apenas 1024/1000 de arredondamento) desde que o Solaris 11 foi instalado. Parece que o kernel não faz nenhum esforço para mudar o tamanho do alvo para algo diferente. O tamanho atual está flutuando à medida que as necessidades do sistema (grande) lutam com o tamanho desejado, e parece que o equilíbrio está entre 700 e 1000MB.
Portanto, a questão agora é um pouco mais clara - por que o Solaris 11 está definindo com dificuldade o tamanho do meu alvo do ARC para 119MB e como faço para alterá-lo? Devo aumentar o tamanho mínimo para ver o que acontece?
Coloquei a saída de kstat -n arcstats
mais em http://pastebin.com/WHPimhfg
Editar 3
Ok, estranheza agora. Eu sei que o flibflob mencionou que havia um patch para corrigir isso. Ainda não apliquei este patch (ainda resolvendo problemas de suporte interno) e não apliquei outras atualizações de software.
Na quinta-feira passada, a caixa bateu. Como, parou completamente de responder a tudo. Quando eu o reiniciei, ele voltou a funcionar bem, mas eis como está agora o meu gráfico.
Parece ter resolvido o problema.
Este é o material apropriado para a terra agora. Eu literalmente não tenho ideia do que está acontecendo. :(