Como utilizar totalmente a RAM para aumentar o desempenho geral do sistema

18

Eu tenho uma máquina de baixo perfil, mas com muita RAM rápida, 4 Gb, o que é realmente uma quantidade de memória que eu provavelmente nunca usarei, nem mesmo uma metade, já que eu apenas uso essa máquina para codificar e navegar na web.

O disco rígido é realmente lento e, portanto, o desempenho geral é ruim ao inicializar, armazenar em cache ou iniciar um novo programa. Gostaria de saber se o Ubuntu pode fornecer alguma configuração ou utilitário para resolver essa situação e deixar meu sistema confiar mais no uso da RAM.

user1717079
fonte
11
A RAM livre já deve ser usada para armazenamento em cache, que é o comportamento padrão. No entanto, os dados ainda precisam ser lidos do disco rígido relativamente lento primeiro, e a única maneira de acelerar isso é usar um disco ou SSD mais rápido. Desculpe, não há mágica hoje. PS: O Ubuntu usa ureadaheadpara criar um perfil do processo de inicialização e torná-lo o mais rápido possível.
Mikewhatever 10/10/12
2
Além disso, 4 GB não é muito em uma máquina moderna. Os sites modernos estão cheios de javascript complexo e possuem muitos dados, o que pode fazer com que o navegador consuma memória rapidamente. Eu já vi muitas vezes apenas o Firefox se aproximando de vários GB de uso de memória residente.
Dobey 10/10
@dobey na minha experiência javascript requer mais CPU que RAM.
user1717079

Respostas:

11

Você deve instalar o Preload, que pré-carregará o software que você mais usa na RAM (ele aprenderá qual software pré-carregar sozinho). É muito fácil de configurar:

sudo apt-get install preload

Você provavelmente não precisa tocá-lo, mas se quiser, pode editar as opções em /etc/preload.conf

Ugo
fonte
Também notei a existência desse utilitário de pré-ligação, vou tentar isso, obrigado.
user1717079
2
@ user1717079 - Lembre-se de que o Preload não acelerará o tempo de inicialização e a maioria dos caches já deve ser feita na RAM.
Shauna
11
O pré-carregamento não acelera nem os processos de inicialização nem de armazenamento em cache, porque eles dependem muito da velocidade do disco rígido.
Mikewhatever 10/10/12
enquanto nós estamos sobre o tema da prelink, prelinking não dá qualquer aumento de desempenho perceptível, consulte smackerelofopinion.blogspot.co.uk/2009/06/...
Colin Ian rei
@ColinIanKing Eu ficarei feliz se isso me der uma pequena vantagem em termos de desempenho, os tempos de inicialização não são tão ruins, o problema é que geralmente é lento ou leva muito tempo para carregar um novo programa. Eu estou indo para uso pré-carga e prelink por alguns dias, vamos ver se as coisas vão mudar
user1717079
10

Você pode adicionar a seguinte linha /etc/fstabpara montar seu /tmpdiretório na RAM.

padrões tmpfs / tmp tmpfs, noatime, nodiratime, mode = 1777 0 0

Isso pode ser feito com outros diretórios também. Por exemplo, ao compilar seu código, você pode colocar a pasta onde os arquivos de objetos são colocados e vinculados à RAM.

Mas preste atenção. Os dados nas pastas montadas dessa maneira serão perdidos em qualquer caso de desligamento. Tenha isso em mente.

Além do meu conhecimento, existem muitos outros recursos úteis disponíveis sobre esse tópico. Por exemplo, esta discussão .

cauon
fonte
obrigado, mas um ramdisk é uma coisa ligeiramente diferente, mas eu aprecio sua dica, pois será útil mais tarde. Meu grande problema agora é como executar meus aplicativos mais rapidamente, não como tornar meu sistema de arquivos mais rápido.
user1717079
Sim, mas achei interessante mencionar, porque você tem 4 GB de RAM e o uso de pastas RAM melhoraria sua experiência de navegação se você disser ao Firefox para usá-los em cache e outras coisas.
cauon
6

O que é RAM?

RAM, ou memória de acesso aleatório, é um tipo de sistema de armazenamento conhecido como armazenamento volátil . Ou seja, ele apenas armazena dados enquanto possui energia. Em outras palavras, quaisquer alterações feitas nele, se você não o gravar em um dispositivo de armazenamento persistente, serão perdidas a qualquer momento que a RAM perder energia.

O que é um disco rígido?

Discos rígidos ou unidades de disco (ou unidades de disco rígido) são um tipo diferente de sistema de armazenamento conhecido como armazenamento persistente . Isso significa que os dados permanecem mesmo quando privados de energia. CDs, DVDs, disquetes e pen drives USB também se enquadram nessa categoria.

O que acontece quando eu inicializo, escrevo no cache ou inicio novos programas?

Para manter seu sistema entre as reinicializações, o sistema operacional precisa gravar o que tem na RAM em um dispositivo de armazenamento persistente, geralmente o disco rígido principal. Por outro lado, para restaurar essas informações ou iniciar aplicativos, ele precisa carregar esses dados na RAM do dispositivo de armazenamento. Isso acontece mesmo com os CDs ao vivo, mesmo que tudo esteja em execução na memória, ele precisa primeiro ler tudo do CD (ou unidade USB). Isso também acontece mesmo com as ferramentas / idéias que o cauon e o Ugo sugeriram, porque em algum momento ou outro, os dados precisam ser lidos ou gravados em um disco para persistir entre as inicializações (especificamente o Pré-carregamento não melhora o tempo de inicialização ).

Se você tiver RAM rápida, seu gargalo estará em algum lugar no processo de leitura / gravação no disco, geralmente na velocidade da conexão de dados ou na velocidade da unidade.

O que posso fazer para melhorar a velocidade dessas operações?

Para melhorar a velocidade das três operações mencionadas, você precisará fazer algumas atualizações de hardware.

Obtenha uma conexão mais rápida. As conexões ATA paralelas (PATA, a fita cinza em máquinas mais antigas) serão mais lentas que as conexões SATA (Serial ATA, os cabos menores e mais novos). Se você pode e ainda não o fez, atualize para uma unidade SATA. Se você seguir a rota da unidade USB (descrita abaixo), verifique se está usando uma unidade e porta USB 2.0 (ou, melhor ainda, em termos de velocidade, 3.0) . As portas e dispositivos USB diminuirão a velocidade da coisa mais lenta, portanto, mesmo se você tiver uma porta 3.0, se o dispositivo for 2.0, você obterá apenas velocidades 2.0.

Obtenha um dispositivo de armazenamento mais rápido. Os discos rígidos baseados em prato são medidos em RPMs e geralmente vêm em três velocidades - 5400 rpm, 7200 rpm e 10k rpm. Se você possui uma unidade de 5400 rpm, atualize para pelo menos uma 7200. Além disso, as unidades de estado sólido (incluindo pen drives USB) são mais rápidas que as unidades baseadas em prato. Se você puder pagar, atualize para uma unidade de estado sólido. Como alternativa, você pode instalar o Ubuntu em uma unidade USB e executá-lo a partir daí (lembre-se, porém, de que essa configuração será limitada à velocidade da sua porta USB, portanto, use pelo menos uma porta USB 2.0 e dirigir).

Shauna
fonte
1

tente o zram (uma vez chamado compcache), é uma troca compactada na memória!

o pacote para o ubuntu 12.10 é zram-config, não é necessário inicializar.

O swapon -s mostrará algo como:

Filename                                Type            Size    Used    Priority
/dev/sda2                               partition       1023860 0       -1
/dev/sdc4                               partition       976892  0       -2
/dev/zram0                              partition       761876  0       5
/dev/zram1                              partition       761876  0       5
/dev/zram2                              partition       761876  0       5
/dev/zram3                              partition       761876  0       5

Eu tenho 6GB de RAM e 4 núcleos, então uma troca para cada núcleo usando metade no total, do ram! (por uma boa razão)

Leia o que as pessoas estão dizendo sobre compcache e zram!

bem, se não estiver usando zram, inicialize ou tente, IYKWYAD (se você sabe o que está fazendo), troque-os, para ver os zram serem preenchidos e melhorar o desempenho geral.

Aquarius Power
fonte
Aliás, minha configuração atual tem cada um dos meus swaps de zram (para cada núcleo) com 250 MB, totalizando 1 GB para 4 núcleos. Eu achei que ele funcionava melhor do que permitir que o zram usasse metade (3GB) da minha memória total, acho que é porque ele trocará menos pelos discos rígidos / ssd se eu permitir que alguns aplicativos com fome de memória usem mais memória real. Também fecho muitos outros aplicativos com fome de memória que não são realmente necessários para estar em execução o tempo todo.
Poder de Aquário