Como posso ajustar minha área de trabalho do Linux para ser mais responsivo?

30

Tenho a experiência de que o Linux funciona bem até que a memória física se esgote. Assim que o espaço de troca é usado, o desempenho é severamente degradado e a GUI fica sem resposta.

Esse problema não se limita a uma distribuição ou área de trabalho específica, porque eu tentei algumas (e o problema permanece).

O que é que eu posso fazer sobre isto?

txwikinger
fonte
Este é um problema conhecido com o kernel do Linux ... acredito que li que recentemente um patch foi comprometido para corrigi-lo. Procurando por uma referência a esse ...
xenoterracide
11
Este artigo e este sobre phoronix é o que eu estava pensando ... eu acho.
Xenoterracide
basicamente aqueles artigos falar sobre patches que estão entrando em 2.6.36 então quando que sai get que (a menos que você se atreve a executar um RC ou do master)
xenoterracide
Quanta RAM você tem? Quais programas você executa com tanta fome? VMs? JVM?
tshepang
Eu tenho 8 GB de RAM e os culpados são os aplicativos usuais (webbrowsers como o Firefox eo Chrome, clientes de email como o Thunderbird, e clientes de IRC.
txwikinger

Respostas:

15

Sugiro a leitura de SwapFAQ , em particular o parâmetro swapiness .

bitek
fonte
3
+1, swap é um band-aid que esperamos não usar ...
Avery Payne
11
Eu experimentei extensivamente configurações diferentes para troca sem sucesso. Também notei que as opiniões sobre o valor da troca não são de todo unificadas. Para desktops, alguns recomendam 10, outros 100, o que significa que sugerem o efeito total oposto.
txwikinger
11
Após mais testes, recomendo não usar a permutabilidade 100 nem 0. Ambos criaram situações nas quais a área de trabalho entrou em uma mania de troca, que até fez o relógio do painel parar por mais de 20 minutos.
txwikinger
11

Alguns indicadores:

  1. Não execute tantos programas GUI ao mesmo tempo.
  2. Verifique se todos os programas em execução em segundo plano que você não precisa, por exemplo, o Apache, estão parados.
  3. Use uma distribuição destinada a situações com pouca memória (por exemplo, para um netbook)
  4. Compre mais memória.
  5. Compre um HD (ou SSD) mais rápido para sua partição de troca. :)
Frozenskys
fonte
2
com os SSDs modernos, é provável que todo o sistema esteja obsoleto e esteja pronto para substituição muito antes do SSD morrer. realmente não vale a pena se preocupar com esses dias. é claro, os backups ainda são necessários porque um disco - SSD ou mecânico - pode morrer a qualquer momento.
cas
4

Compre mais memória? :)

Se você estiver executando aplicativos que estão usando mais memória do que o presente no sistema, não há nada que qualquer sistema operacional possa fazer sobre esse outro para trocar para a partição de troca. Se essa é uma situação em que você se encontra frequentemente, pare de executar alguns dos programas que você não precisa ou, na verdade, adquira mais memória, hoje em dia é muito barato.

Greg KH
fonte
3
Eu já tenho RAM máxima. Eu gostaria de saber alguns ajustes que tornam a troca mais eficiente do que é.
precisa saber é o seguinte
11
Descobri que desativar a troca por completo tende a fazer o sistema responder mais rapidamente. Os aplicativos são notificados pelo kernel de que não têm memória e respondem de acordo.
cjac
3
@ Cjac: Isso geralmente não é o caso. Você pode configurar o kernel para fazer isso, mas por padrão ele será comprometido demais (forneça ao seu aplicativo a memória que o seu sistema não possui). Assim que um aplicativo toca na memória e o kernel não encontra mais, o killer de falta de memória encerra um ou mais processos.
Kristof Provost
@txwikinger a razão pela qual a troca é lenta é porque as velocidades da RAM são muito mais rápidas que os discos rígidos. O tempo de busca da RAM é medido em nanossegundos (10 ^ -9). Os tempos de busca do disco rígido são medidos em milissegundos (10 ^ -3). São seis ordens de magnitude, ou seja, a RAM é um milhão de vezes mais rápida que a troca. Sua pergunta é como perguntar como fazer uma bicicleta andar tão rápido quanto um jato Concorde. Você não pode.
bahamat
11
@bahamat. Você está afirmando o óbvio, mas não é o problema. O problema é que a troca é feita de maneira muito ineficaz e, portanto, cria algo na direção do problema do filósofo.
txwikinger 11/01
2

Tente alterar os valores das variáveis ​​do kernel 'vm.swappiness' e 'vm.page-cluster' para valores mais apropriados.

  1. Inicie um emulador de terminal.
  2. cd /etc/sysctl.d/
  3. sudo echo "vm.swappiness = 0" > 60-memory-management.conf
  4. sudo echo "vm.page-cluster = 1" >> 60-memory-management.conf
  5. sudo chmod 644 60-memory-management.conf
  6. Reinicie.

Verifique se os novos valores estão em uso com:

  1. cat /proc/sys/vm/swappiness
  2. cat /proc/sys/vm/page-cluster
Pedro Dias
fonte
1

A troca reduzirá bastante o desempenho, não importa o que aconteça, por isso é melhor evitar isso completamente. Isso pode parecer estúpido, mas uma opção é não configurar uma partição de troca. Estou executando swap-free em todos os meus sistemas há algum tempo:

  • 1 GB no netbook é suficiente para navegar na web, ouvir música e outras coisas leves.
  • 4 GB na minha área de trabalho são suficientes para todas as coisas acima, além de desenvolvimento (mesmo no Eclipse) e edição básica de imagens.

Se você fizer algo que consome muita memória (Gimp com imagens grandes, modelagem 3D, CAD) do que provavelmente deve comprar RAM.

Eugen Anghel
fonte
Sim. Eu lentamente chego à mesma conclusão. Parece-me que a maneira como o kernel do Linux muda não é muito eficiente para os desktops (nos servidores tudo isso funciona bem). Portanto, talvez a recomendação seja desativar todo o espaço de troca nos desktops. Btw. Eu uso 8GB de RAM :)
txwikinger
11
@ txwikinger: posso perguntar por que está bom nos servidores?
phunehehe
1

Você pode tentar o compcache , se descobrir como configurá-lo em sua distribuição. Por exemplo, no Ubuntu, você pode habilitá-lo editando /etc/initramfs-tools/initramfs.conf e editando a linha "COMPCACHE_SIZE".

Não acho que minha troca no disco tenha sido tocada uma vez desde que habilitei o compcache. Aqui estão minhas estatísticas de troca atuais:

% swapon -s
Filename                                Type            Size    Used    Priority
/dev/ramzswap0                          partition       1028084 69504   100
/dev/sda5                               partition       3148668 0       -1

Observe que o dispositivo compcache (ramzswap0) é usado e o dispositivo em disco (sda5) não.

Ryan C. Thompson
fonte
0

Compre RAM mais rápida e verifique se o seu sistema está usando tudo isso. Qual CPU e arquitetura você está usando?

Mike H
fonte
Como isso ajusta o sistema Linux? Mudança ou melhoria de hardware não é o problema aqui.
precisa saber é o seguinte
É possível que a instalação do linux não esteja usando todo o hardware disponível. Esse é um problema de desempenho e você afirmou em um comentário anterior que está no seu limite máximo de RAM. Sem saber mais detalhes sobre sua configuração, uma rota fácil a seguir é um hardware melhor.
Mike H
11
o "sistema Linux" é composto de hardware e software. Adicionar memória está "aprimorando" o sistema.
cjac
Linux é um software que roda em hardware. Hardware não está incluído dentro Linux: p
txwikinger
11
Eu acho que mais memória RAM é mais apropriado do que mais rápido ... velocidade RAM é limitada pela Mobo geralmente muito ...
xenoterracide
0

Eu executo o miniaplicativo Monitor do sistema em uma doca no lado direito da minha tela. Sempre que o sistema parece lento, dou uma olhada nos medidores. Se algo estiver executando acima de 10% da capacidade, isso é uma indicação de que um processo está ficando fora de controle.

Se você clicar no monitor do sistema, poderá se aprofundar nos processos que estão consumindo recursos no seu sistema.

http://www.colliertech.org/~cjac/tmp/screenies/system_monitor.png

cjac
fonte
11
A maioria dos monitores de sistemas simplesmente arrasta um sistema lento, mais é o gato de Schrödinger. Sem aumentar a memória, ele precisa corrigir vazamentos de memória ou aparar programas desnecessários em execução.
precisa saber é o seguinte
0

Alguns anos atrás, era comum o uso de uma unidade dedicada para troca, enquanto conectado ao seu próprio barramento IDE / ATA - trocar dados na mesma unidade simplesmente não fazia sentido em termos de desempenho.

Esse truque funcionou há dez anos, mas com as velocidades dos discos agora, você realmente não deve ver uma degradação de desempenho tão agitada, a menos que esteja trocando a biblioteca do congresso, caso contrário, eu ficaria preocupado com a saúde do disco - você verificou isso recentemente?

Você sempre pode tentar, você não tem muitas alternativas se sua RAM já estiver no máximo. Espero que isso torne sua interface gráfica mais responsiva.

invertido
fonte
Muitos usos para desktop não oferecem essa opção, pois são lapbooks ou netbooks que não permitem uma segunda unidade.
precisa saber é o seguinte
@txwikinger obviamente verdade, mas eu considerei o título da pergunta que se lê "desktop", caso contrário eu não teria sugerido isso se um laptop foi especificamente mencionada :-)
invertido
Bem ... eu quis dizer área de trabalho para diferenciar dos servidores, onde acredito que a troca funcione razoavelmente bem. :)
txwikinger
0

Instale um segundo sistema Linux na sua rede com uma boa quantidade de RAM, o NFS o monte no sistema principal e coloque o arquivo de troca nele.

LawrenceC
fonte
11
Com a Ethernet de gigabit, isso será muito mais lento que um SSD de gama média, e não tenho certeza se você pode atingir a velocidade de um disco rígido de 7200 rpm. Talvez com o Firewire você possa atingir a velocidade da troca local. Mas seria mais eficaz simplesmente adicionar RAM.
Gilles 'SO- stop be evil'
0

Uma maneira é usar um kernel otimizado .

Ikem
fonte
Por favor, não basta postar links; inclua algum contexto para que, caso o site que você está vinculando desça, haja informações suficientes aqui para tornar a resposta significativa.
jasonwryan
0

Por muitos anos de experiência, posso dizer que não há muito o que ajustar

Mas, o que eu fiz recentemente ajudou muito.

1 1

Mudei do Ubuntu para o Arch Linux, do Unity / Gnome para o xfce desktop.

O Ubuntu é muito lento, de qualquer lugar. inicialização / gráficos .. lento.

2

Comprei um SSD Intel (80g) e plantei meu sistema radicular nele.

Meu arco Linux + XFCE4 + docky + conky é inicializado em 10 segundos (login automático com lxdm), todos os aplicativos instalados no SSD, por exemplo, Matlab, são iniciados muito mais rapidamente.

O dinheiro vale a pena.

3

Faça seu / tmp em outro lugar, eu uso tamanho limitado de ramdisk para evitar que o sistema de arquivos raiz seja embaralhado

margarida
fonte