Existe uma maneira de forçar um único processo a trocar a maior parte / toda a sua memória para o disco (NON-ROOT)?

2

No momento, estamos analisando o desempenho de algumas de nossas caixas no trabalho e descobrimos que temos caixas que estão trocando muito e as coisas começam a rastrear quando isso começa a acontecer, pois estamos usando discos giratórios.

Eu tinha uma teoria de que poderia ser mais rápido iniciar um processo de marca e fazer toda a inicialização que normalmente teríamos que fazer para esperar que o processo tivesse sua memória carregada do disco.

Para testar esta teoria, eu quero forçar um processo a trocar para o disco e eu quero ver quanto tempo demora para responder depois que ele foi trocado e comparar isso com um novo processo de inicialização, existe uma maneira de Forçando um processo para trocar sem modificar as configurações de swappiness ou executando a caixa de memória?

Eu não tenho root nestas caixas, então basicamente eu preciso de uma maneira não-preparada de fazer / dica para o kernel fazer isso.

    
por csteifel 02.11.2018 / 21:35

2 respostas

1

Colete dados de tempo de resposta de seus aplicativos reais, faça o que fizer. Registre o tempo de resposta do usuário, os horários de início do processo e qualquer outra métrica de desempenho importante para você.

No Linux, os cgroups podem ter um limite de memória além do qual os processos dessa página de grupo são eliminados. Um serviço systemd pode definir tal limite com a diretiva MemoryLimit , veja a página man ou Guia de gerenciamento de recursos do RHEL . Lembre-se de que as unidades systemd podem ser por usuário, o privilégio de raiz não é necessário.

Não gaste muito tempo tentando simular uma condição de pouca memória, é improvável que ela execute como a carga de trabalho da produção. Se você puder alterar o aplicativo para processos de início ou carregamento lento, faça isso no teste e depois na produção. E meça os resultados.

    
por 05.11.2018 / 13:50
0

Supondo que isso seja o Linux, você pode querer definir a variável swappiness como seu valor MAX. Isso basicamente diz ao gerenciamento de memória para trocar todo o possível que não esteja em uso no momento.

Para definir permanentemente:

 1.  Edit '/etc/sysconfig.conf'

 2.  add the following line to the file
      'vm.swappiness=100'

 3.  Reboot

Ou para definir temporariamente até a próxima reinicialização:

 1. Enter the command
    'sudo sysctl vm.swappiness=10'

Isso permitirá que você teste suas suposições em seu mix de tarefas.

    
por 02.11.2018 / 23:42

Tags