Estou usando a RAM para armazenar algumas das minhas tabelas de banco de dados e as outras são armazenadas no disco rígido.
Hoje eu soube que meus processos estão usando memória de troca. Agora, o que é memória de troca e como posso detectar qual processo está usando memória de troca e como posso impedi-los de usá-la?
Respostas:
Se você ficar sem memória física, use a memória virtual, que armazena os dados na memória no disco. A leitura do disco é várias ordens de magnitude mais lenta que a leitura da memória; portanto, isso torna tudo mais lento. (A troca de dados entre a memória real e a memória virtual está "trocando". O espaço no disco é "espaço de troca".)
Se seu aplicativo estiver "usando swap", você precisará usar menos memória ou comprar mais RAM.
(A troca é útil porque os aplicativos que não estão sendo usados podem ser armazenados no disco até serem usados. Em seguida, eles podem ser "paginados" e executados normalmente novamente. Embora não esteja na memória, o sistema operacional pode usar essa memória para outra coisa, como cache de disco. Portanto, é um recurso muito útil, mas se você não possui memória física suficiente para executar seu programa, definitivamente precisa de mais memória. Felizmente, hoje em dia a memória é realmente muito barata.)
fonte
Um computador possui uma certa quantidade de memória física. Mas na maioria das vezes queremos mais. Então trocamos um pouco de memória no disco.
Cada vez que precisamos dessa memória, ela precisa ser trocada novamente (trocando outra peça). Existem algoritmos extremamente inteligentes para minimizar o atraso, mas ainda temos que esperar algumas vezes.
No Windows, se você olhar para o gerenciador de tarefas, poderá mostrar as falhas da página da coluna. Isso mostra o número de vezes que um aplicativo solicita uma parte da memória que estava no disco e precisa ser trocada. Muitas falhas de página = aplicação lenta.
Este processo é usado em vários níveis. Um resumo de rápido a lento:
fonte
Se você não quiser usar o swap, não use uma partição de swap (comente a entrada da linha
/etc/fstab
), mas isso impedirá o início de um novo processo e fará com que o malloc falhe se você ficar sem memória física. Essa não é uma boa idéia em geral ... não é muito segura e nem é muito útil, pois o sistema operacional manterá as páginas quentes na memória e trocará para o disco aquelas que não estão sendo usadas recentemente.Outra solução poderia ser invadir o banco de dados para bloquear as páginas na memória (eu sei que isso pode ser feito, mas agora não sei exatamente como), mas, de qualquer forma, é provável que seu banco de dados use sua própria troca e mecanismos de cache.
Para saber o que é a troca e como a memória virtual funciona ... Eu recomendo que você dê uma olhada em algumas palestras do sistema operacional, talvez o MIT Open Courseware possa ser útil.
fonte
Eu encontrei uma resposta em parte. Uma Memória de Troca é um espaço no Disco Rígido do seu computador que os Sistemas Operacionais usarão para colocar as informações que realmente estão na RAM para liberá-las para outro aplicativo. Isso deve ser feito quando o sistema precisar de memória para um novo processo e não houver, para que possamos ver que, se nosso sistema tiver bastante RAM, talvez não precise de memória SWAP.
ATUALIZAR
Para descobrir onde trocar espaço (ou memória virtual), você pode acessar o Gerenciador de tarefas (CTRL + ALT + DEL) e ativar a opção VIEW -> COLUMNS -> VIRTUAL MEMORY. Agora apenas calcule a diferença entre o uso da memória e a memória virtual. Também aqui está uma instrução de como vê-lo se você estiver executando o Vista: http://www.ehow.com/how_5067693_increase-swap-space.html
fonte
Swap é o espaço do disco rígido usado como RAM. É (relativamente falando) muito lento, mas impede que os computadores falhem quando estão tentando lidar com mais dados do que a RAM pode suportar.
Para impedir que os processos usem swap - instale mais RAM.
fonte
Se você não deseja que seus processos usem memória swap, desative completamente a memória swap. Infelizmente, se você ficar sem memória, o kernel do Linux matará alguns de seus processos em execução para liberar alguma memória para uso.
Se você possui RAM suficiente para o seu sistema, pode realmente ficar sem trocar memória.
Eu tenho um laptop com 768Mb de RAM que não usa memória de troca. É bom o suficiente para as minhas necessidades. Eu tenho um servidor com 256Mb de RAM e não usa memória de troca. Está executando 8 servidores virtuais usando a virtualização OpenVZ, sem problemas.
Portanto, depende de você se você precisar de memória de troca.
fonte