O WebSphere eXtreme Scale pode estimar precisamente o uso de memória do heap Java de um determinado BackingMap em bytes. Use esse recurso para ajudar a dimensionar corretamente as configurações de heap do Java virtual machine e as políticas de desocupação. O comportamento deste recurso varia com a complexidade dos Objects que estão sendo colocados no mapa de retorno e com a forma como o mapa é configurado. Atualmente, este recurso é suportado apenas para grades de dados distribuídas. As instâncias de grade de dados local não suportam o dimensionamento de bytes usados.
O número de bytes usados que são relatados pelas estatísticas de dimensionamento é a soma desses quatro componentes. Esses valores são calculados por entrada nas operações de inserção, atualização e remoção de mapa, significando que o mapa eXtreme Scale tem um valor atual para o número de bytes que um determinado mapa de apoio consume.
Quando grades são particionadas, cada partição contém uma parte do mapa de apoio. Como as estatísticas de dimensionamento são calculadas no nível mais baixo do código do eXtreme Scale, cada partição de um mapa de apoio rastreia seu próprio tamanho. É possível usar as APIs de Estatísticas do eXtreme Scale para rastrear o tamanho acumulativo do mapa e também o tamanho de suas partições individuais.
Em geral, use o dimensionamento de dados como uma medida das tendências de dados ao longo do tempo, e não como uma medida exata do espaço de heap usado pelo mapa. Por exemplo, se o tamanho relatado de um mapa dobra de 5 MB para 10 MB, visualize o consumo de memória do mapa como tendo dobrado. A medida real de 10 MB pode ser exata por vários motivos. Se você levar em conta os motivos e seguir as boas práticas, a exatidão das medidas de tamanho se aproximará daquelas do pós-processamento de um dump de heap Java.
Esta ambiguidade se deve porque essas medidas devem ser consideradas como dados de tendência, a não ser que você tenha removido a ambiguidade por meio das opções de design, melhores práticas e do entendimento das opções de implementação que podem fornecer estatísticas mais precisas.
O eXtreme Scale supõe que um determinado mapa retém a única referência de vida longa para os Objects de chave e de valor que ele contém. Se o mesmo objeto de 5 KB for posicionado em três mapas, o tamanho de cada mapa será aumentado em 5 KB. O aumento, geralmente, não é um problema, pois o recurso é suportado apenas para grades de dados distribuídas. Se você inserir o mesmo Object em três mapas diferentes em um cliente remoto, cada mapa recebe sua própria cópia do Object. As configurações COPY MODE transacionais padrão também geralmente garantem que cada mapa tenha sua própria cópia de um determinado Object.
public class ShippingOrder implements Serializeable,Cloneable{
public static final STATE_NEW = “new”;
public static final STATE_PROCESSING = “processing”;
public static final STATE_SHIPPED = “shipped”;
private String state;
private int orderNumber;
private int customerNumber;
public Object clone(){
ShippingOrder toReturn = new ShippingOrder();
toReturn.state = this.state;
toReturn.orderNumber = this.orderNumber;
toReturn.customerNumber = this.customerNumber;
return toReturn;
}
private void readResolve(){
if (this.state.equalsIgnoreCase(“new”)
this.state = STATE_NEW;
else if (this.state.equalsIgnoreCase(“processing”)
this.state = STATE_PROCESSING;
else if (this.state.equalsIgnoreCase(“shipped”)
this.state = STATE_SHIPPED:
}
}
Use o método MapStatsModule.getUsedBytes() que fornece estatísticas para um único mapa, incluindo o número de entradas e a taxa de ocorrências.
Para obter detalhes, consulte Módulos Estatísticos.
Use a estatística MBean gerenciada pelo MapUsedBytes. É possível usar vários tipos diferentes de Java Management Extensions (JMX) MBeans para administrar e monitorar as implementações. Cada MBean faz referência a uma entidade específica, como um mapa, um eXtreme Scale, um servidor, um grupo de replicação ou um membro do grupo de replicação.
Para obter detalhes, consulte Administrando com Beans Gerenciados (MBeans).
É possível monitorar o desempenho de seus aplicativos com os módulos PMI. Especificamente, use o módulo PMI de mapa para contêineres integrados no WebSphere Application Server.
Para obter detalhes, consulte Módulos PMI.
Com o console, é possível visualizar as estatísticas de consumo de memória. Consulte o Monitorando com o Console da Web.
Todos esses métodos acessam a mesma medida subjacente do consumo de memória de uma determinada instância BaseMap. O tempo de execução do WebSphere eXtreme Scale tenta, com o melhor esforço, calcular o número de bytes de memória de heap consumidos pelos objetos de chave e de valor que são armazenados no mapa e também a sobrecarga do próprio mapa. É possível ver quanta memória de heap cada mapa consume entre todas as grades de dados distribuídas.
Na maioria dos casos, o valor relatado por WebSphere eXtreme Scale para um determinado mapa é muito próximo do valor relatado pela análise de dump do heap. O WebSphere eXtreme Scale dimensiona exatamente sua própria sobrecarga, mas não pode considerar cada objeto possível que pode ser posicionado em um mapa. Seguir as melhores práticas descritas no Ajustando o Agente de Dimensionamento de Cache para Estimativas Exatas de Consumo de Memória pode melhorar a exatidão do tamanho em medidas de bytes fornecidas pelo WebSphere eXtreme Scale.