comando de rmss

Propósito

Simula um sistema com vários tamanhos de memória para teste de desempenho de aplicativos.

Sintaxe

rmss -c MemSize

rmss -r

rmss -p

rmss [ -d MemSize ] [ -f MemSize ] [ -n NumIterations ] [ -o OutputFile ] [ -s MemSize ] Comando

Descrição

O comando rmss simula um sistema com vários tamanhos de memória real, sem ter que extrair e substituir placas de memória. Ao executar um aplicativo em vários tamanhos de memória e coletar estatísticas de desempenho, é possível determinar a memória necessária para executar um aplicativo com desempenho aceitável. O comando rmss pode ser invocado para qualquer um dos dois propósitos:

  • Para alterar o tamanho da memória e depois sair, utilizando as bandeiras -c , -p e -r . Isso permite experimentar livremente com um dado tamanho de memória.
  • Para funcionar como um programa de driver, utilizando as bandeiras -s , -f , -d , -n e -o . Neste modo, o comando rmss executa um comando especificado várias vezes sobre uma gama de tamanhos de memória, e exibe estatísticas importantes descrevendo o desempenho do comando em cada tamanho de memória. O comando pode ser um arquivo de script executável ou shell, com ou sem argumentos de linha de comandos.

O comando rmss é incompatível com o subsistema DR. Se um evento DR ocorrer durante a execução do comando rmss , o sistema pode ser pendurado. Uma vez que a função de remoção de memória do comando rmss pode ser substituída por remoção de memória DR com o comando drmgr , o texto de informações do comando rmss deve ser alterado com este aviso:

Atenção: O comando rmss é incompatível com o componente AIX DLPAR, e seu uso pode resultar em um sistema pendurado. O comando drmgr fornece uma função de remoção de memória segura em um ambiente DLPAR.
Atenção: Quando rmss é usado em um sistema de pool de memória múltipla, ele pode falhar com:
Failure: VMM unable to free enough frames for stealing.
Choose a larger memory size or retry with less system activity.

Ou uma mensagem similar. Essa falha pode ocorrer quando rmss tem roubado todos os quadros de um conjunto de memória, e não consegue roubar quadros de outras piscinas. Um workaround é para diminuir a memória por incrementos.

O número e o tamanho de conjuntos de memória em um sistema podem ser recuperados com o comando:

echo "mempool *" | kdb

As bandeiras -c, -pe -r são mutuamente exclusivas. A sinalização -c altera o tamanho da memória; a sinalização -p exibe o tamanho da memória atual; e a sinalização -r reconfigura o tamanho da memória para o tamanho real da memória da máquina.

As bandeiras -s, -f, -d, -ne -o são usadas em combinação quando o comando rmss é invocado como um programa de driver para executar e medir o desempenho de um comando (onde um comando é um executável ou um arquivo shell script) sobre uma gama de tamanhos de memória. Quando chamado desta forma, o comando rmss exibe estatísticas de desempenho, como o tempo de resposta do comando e o número de page-ins que ocorreram enquanto o comando executou, para cada tamanho de memória. Essas estatísticas, que também são gravadas em um arquivo, estão descritas neste exemplo.

As bandeiras -s e -f especificam os pontos de partida e de final do intervalo, enquanto que a sinalização -d especifica o incremento ou a decretação entre tamanhos de memória dentro do intervalo. O sinalizador -n é usado para especificar o número de vezes para executar o comando em cada tamanho de memória, e o flag -o é usado para especificar o nome de um arquivo de saída no qual escrever o relatório rmss . O parâmetro Comando especifica o comando a ser executado e medido a cada tamanho de memória.

Observação:
  1. O comando rmss relata "utilizável" memória real. Em máquinas onde há memória ruim ou onde o sistema está usando a memória, rmss relata a quantidade de memória real como a quantidade de memória real física menos a memória que é ruim ou em uso pelo sistema. Por exemplo, o uso do sinalizador rmss -r pode informar:
    Simulated Memory Size changed to 79.9062MB
    Isso pode ser um resultado de algumas páginas sendo marcadas como ruins ou um resultado de um dispositivo que está reservando algumas páginas para uso próprio (e, portanto, não disponível para o usuário).
  2. O comando rmss pode subestimar o número de page-ins que são necessários para executar um aplicativo se o aplicativo, combinado com processos de background como daemons, acessa um monte de arquivos diferentes (incluindo arquivos de diretórios). O número de arquivos diferentes que devem ser acessados para causar tais resultados é de aproximadamente 250 arquivos por 8MB de tamanho de memória simulada. A tabela a seguir dá o número aproximado de diferentes arquivos que, quando acessados no tamanho da memória simulada dada, podem resultar no comando rmss subestimando a página-em requisitos.
    Tamanho da Memória Simpada (MB) Acesso a Arquivos Diferentes
    8 250
    16 500
    24 750
    32 1000
    48 1.500
    64 US$ 2.000
    128 4
    256 8000

Você pode usar o comando filão para determinar o número de arquivos acessados enquanto o seu comando é executado, se você suspeita que ele pode estar acessando muitos arquivos diferentes.

Sinalizações

Item Descrição
-c MemSize Altera o tamanho da memória simulada para o valor MemSize , que é um número inteiro ou fração decimal em unidades de megabytes. A variável MemSize deve estar entre 8MB e o tamanho de memória real da máquina. Não há padrão para a sinalização -c .
Nota: É difícil alterar o tamanho da memória simulada para menos de 8MB, por causa do tamanho de estruturas inerentes do sistema, como o kernel.
-d MemSize Especifica o incremento ou a decretação entre tamanhos de memória a serem simulados. O valor MemSize é um número inteiro ou fração decimal em unidades de megabytes. Se a sinalização -d for omitida, o incremento ou decremento será 8MB.
-f MemSize Especifica o tamanho final da memória. É necessário concluir o teste do sistema simulado executando o comando que está sendo testado em um tamanho de memória simulado fornecido pela variável MemSize , que é um número inteiro ou fração decimal em unidades de megabytes. A variável MemSize deve estar entre 4MB e o tamanho da memória real da máquina.. Se o sinalizador -f for omitido, o tamanho da memória final será 8MB.
Nota: É difícil terminar em um tamanho de memória simulado de menos de 8MB por causa do tamanho de estruturas inerentes do sistema como o kernel.
-n NumIterations Especifica o número de vezes para executar e medir o comando, em cada tamanho de memória. Não há padrão para a sinalização -n . Se a sinalização -n for omitida, durante a inicialização do comando rmss , o comando rmss determinará quantas iterações do comando sendo testadas são necessárias para acumular um tempo total de execução de 10 seconds e, em seguida, executar o comando que muitas vezes em cada tamanho de memória.
Nota: O comando rmss sempre executa o comando uma vez a cada tamanho de memória antes das execuções que são medidas. Isso prepara a simulação para o teste real.
-o OutputFile Especifica o arquivo para o qual escrever o relatório rmss . Se o sinalizador -o for omitido, o relatório rmss será gravado no arquivo rmss.out. Além disso, o relatório rmss é sempre gravado na saída padrão.
-P Exibe o tamanho da memória simulada atual.
-r Reconfigura o tamanho da memória simulada para o tamanho real da memória da máquina.
-s MemSize Especifica o tamanho de memória inicial. Comece executando o comando em um tamanho de memória simulado especificado pela variável MemSize , que é um número inteiro ou fração decimal em unidades de megabytes. A variável MemSize deve estar entre 4MB e o tamanho da memória real da máquina.. Se a sinalização -s for omitida, o tamanho da memória inicial será o tamanho real da memória da máquina.
Nota: É difícil começar em um tamanho de memória simulado de menos de 8MB, por causa do tamanho de estruturas inerentes do sistema como o kernel.
Comando Especifica o comando a ser executado e medido a cada tamanho de memória. O parâmetro Comando pode ser um arquivo de script executável ou shell, com ou sem argumentos de linha de comandos. Não há comando padrão.

Status de saída

Esse comando retorna os valores de saída a seguir:

Item Descrição
0 Conclusão bem-sucedida.
>0 Ocorreu um erro.

Segurança

Controle de Acesso: Você deve ter autoridade de root para executar este comando.

Atenção usuários RBAC: Este comando pode realizar operações privilegiadas. Somente usuários privilegiados podem executar essas operações. Para obter mais informações sobre autorizações e privilégios, consulte Banco de Dados de Comandos Privilegiados em Segurança. Para obter uma lista de privilégios e as autorizações associadas a esse comando, consulte o comando lssecattr ou o subcomando getcmdattr.

Exemplos

  1. Para alterar o tamanho da memória para 13.5MB, digite:
    rmss -c 13.5
  2. Para imprimir o tamanho da memória atual, digite:
    rmss -p
  3. Para redefinir o tamanho da memória para o tamanho real da memória da máquina, digite:
    rmss -r
  4. Para investigar o desempenho do comandocc -O foo.cnos tamanhos de memória 32, 24, 16 e 8MB; executem e medem o comando uma vez em cada tamanho de memória; e, em seguida, escreva o relatório para occ.rmss.outarquivo, digite:
    rmss -s 32 -f 8 -d 8 -n 1 -o cc.rmss.out cc -O foo.c
  5. Para investigar o desempenho da sequência de comandos nofoo.sharquivo shell script em tamanhos de memória iniciando no tamanho real da memória da máquina e finalizando em 8MB, por incrementos de 8MB; deixe o comando rmss determinar o número de iterações para executar e medir ofoo.shno arquivo cada tamanho de memória; e, em seguida, escreva o relatório rmss para ormss.outarquivo (com todos os padrões usados nesta chamada do comando rmss ), digite o seguinte:
    rmss foo.sh
  6. Para investigar o desempenho do executávelbarem tamanhos de memória de 8MB a 16MB, por incrementos de 0.5MB; execução e medidabarduas vezes a cada tamanho de memória; e escreva o relatório para obar.rmss.outarquivo, digite:
    rmss -s 8 -f 16 -d .5 -n 2 -o bar.rmss.out bar
  7. Quando qualquer combinação das bandeiras -s, -f, -d, -ne -o é usada, o comando rmss é executado como um programa de driver, que executa um comando várias vezes sobre uma gama de tamanhos de memória, e exibe estatísticas descrevendo o desempenho do comando em cada tamanho de memória.

    Um exemplo do relatório impresso pelo comando rmss segue:

    Hostname:  xray.austin.ibm.com
    Real memory size:   48.00 Mb
    Time of day:  Wed Aug  8 13:07:33 1990
    Command:  cc -O foo.c
    Simulated memory size initialized to  24.00 Mb.
    Number of iterations per memory size = 1 warmup + 1 measured = 2.
    Memory size  Avg. Pageins  Avg. Response Time   Avg. Pagein Rate
    (megabytes)                       (sec.)           (pageins/sec.)
       -----------------------------------------------------------------
    24.00             0.0              113.7                0.0
    22.00             5.0              114.8                0.0
    20.00             0.0              113.7                0.0
    18.00             3.0              114.3                0.0
    16.00             0.0              114.6                0.0
    14.00             139.0            116.1                1.2
    12.00             816.0            126.9                6.4
    10.00             1246.0           135.7                9.2
    8.00              2218.0           162.9                13.6
    Este relatório foi gerado pelo seguinte comando:
    rmss -s 24 -f 8 -d 2 -n 1 cc -O foo.c
    A primeira parte do relatório dá informações gerais, incluindo a máquina em que o comando rmss estava rodando, o tamanho real da memória daquela máquina, o horário e a data e o comando que estava sendo medido. As próximas duas linhas dão mensagens informativas que descrevem a inicialização do comando rmss . Aqui, o comando rmss exibe que ele tenha inicializado o tamanho da memória simulada para 24MB, que foi o tamanho de memória inicial dado com a sinalização -s . Além disso, o comando rmss imprime o número de iterações que o comando será executado a cada tamanho de memória. O comando deve ser executado duas vezes a cada tamanho de memória: uma vez para warmup, e uma vez quando o seu desempenho é medido. O número de iterações foi especificado pela sinalização -n .

    A próxima parte do relatório fornece o seguinte para cada tamanho de memória o comando foi executado em:

    • O tamanho da memória, juntamente com o número médio de page-ins que ocorreu enquanto o comando foi executado
    • O tempo médio de resposta do comando
    • A taxa média-em taxa que ocorreu quando o comando foi executado.
      Nota: Os valores médios da página e da média página-em valores de taxa incluem todos os page-ins que ocorreram enquanto o comando foi executado, não apenas aqueles iniciados pelo comando.

Arquivos

Item Descrição
/usr/bin/rmss Contém o comando rmss .