AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / ubuntu / Perguntas / 1345236
Accepted
Andreas
Andreas
Asked: 2021-06-12 05:42:39 +0800 CST2021-06-12 05:42:39 +0800 CST 2021-06-12 05:42:39 +0800 CST

Gerencie automaticamente a troca/memória

  • 772

Ao preencher toda a memória e trocar minha experiência nos últimos anos foi que:

  • O Windows e o macOS dizem "oh, vamos consertar isso para você" e, em seguida, provavelmente aumentam o tamanho da troca. Abrir, por exemplo, 30 guias do YouTube retarda as coisas por um tempo, mas geralmente ainda posso usar o cursor se quiser abortar o processo e, depois disso, o resto do sistema (não necessariamente o aplicativo incorreto) é praticamente tão responsivo como sempre .

  • O Ubuntu (21.04) diz "desculpe, você não pode interagir com o computador pelos próximos dez a trinta minutos". No mesmo hardware e no mesmo navegador, posso abrir 30 abas do YouTube e ver todo o sistema travar. Toda a memória e troca são usadas, e o cursor não é apenas lento, mas travado no lugar. Não consigo interagir significativamente com o resto do sistema.

A diferença parece ser que o Ubuntu nunca resolve a situação, mantém seu tamanho de troca constante e, consequentemente, continua travando a cada cinco segundos, para sempre. Até que ocorra uma falha catastrófica e o Firefox desapareça sem deixar rastro – algo que praticamente nunca acontece em outros sistemas operacionais. O aspecto mais crucial é que não consigo interagir com o resto do sistema.

Não sei, mas tenho a impressão de que isso não seria um problema se o tamanho da troca fosse aumentado com base na demanda. Como isso é feito? Existe um melhor gerenciamento de memória a ser obtido de alguma forma?


Atualização de teste

Após (não tão rápido) fazer o teste rápido sugerido nos comentários onde dobrei o tamanho do swapfile posso concluir que faz toda a diferença do mundo. O sistema permaneceu responsivo durante toda a mesma carga. Só posso concluir que um tamanho de troca adaptável aliviaria o problema descrito.

$ free -h
              total        used        free      shared  buff/cache   available
Mem:          3.7Gi       3.1Gi       129Mi       374Mi       566Mi       105Mi
Swap:         4.0Gi       3.0Gi       988Mi

$ sysctl vm.swappiness
vm.swappiness = 60

$ swapon -s
Filename                Type        Size    Used    Priority
/swapfile_4G.img                        file        4194300 3180664 20

Uma nota sobre hardware

Um dos pontos de venda do Ubuntu (entre outros) é obter suporte contínuo e aumentar a vida útil do hardware mais antigo, que inclui máquinas com memória total inferior à média. Não absurdamente pouca memória, como demonstrado pelo fato de que outros sistemas operacionais podem fazer muito bem, apenas menos do que a média. Muitas dessas máquinas não são atualizáveis.

4 GB de RAM funciona bem para a maioria dos casos de uso . No Ubuntu, no Windows, no macOS. O que parece funcionar bem no Windows e no macOS, no entanto, é quando você usa todo o espaço de troca alocado.

Em suma, no mesmo instante em que a solução para fazer o Ubuntu rodar decentemente se torna "comprar novo hardware", todo o objetivo de executá-lo se torna discutível para todas essas máquinas. A atualização do hardware está fora do escopo desta questão.

Os requisitos para a edição padrão do Ubuntu são 4 GB de memória.

ram
  • 2 2 respostas
  • 388 Views

2 respostas

  • Voted
  1. Calum McConnell
    2021-06-15T08:31:50+08:002021-06-15T08:31:50+08:00

    O kernel do Linux é... duvidoso em termos de suporte a swap. Swap é um cidadão de segunda classe, do ponto de vista de muitos desenvolvedores. O que quero dizer com isso é que o algoritmo usado para ejetar e buscar páginas é bastante simples e pode falhar quando há muitas páginas usadas com frequência.

    Uma solução decente provavelmente seria usar zswap. O que isso faz é definir um pedaço de memória para ser memória compactada, para a qual as páginas são ejetadas. Para fazer isso, edite os parâmetros de inicialização do kernel para adicionar arquivos zswap.enabled=1 zswap.compressor=lz4 zswap.max_pool_percent=20 zswap.zpool=z3fold. A maneira mais fácil de fazer isso em um sistema Ubuntu é adicioná-lo ao /etc/default/grubarquivo, como parte da GRUB_CMDLINE_LINUX_DEFAULTchave. Isso aumentará efetivamente a quantidade de dados que podem ser armazenados na RAM, reduzindo a E/S do disco e evitando travamentos.

    Por fim, você pergunta sobre ter mais espaço de troca criado dinamicamente. O Linux é totalmente capaz de adicionar e remover arquivos de troca à vontade, o que significa que um script pode verificar a disponibilidade de troca e adicionar arquivos de troca, se necessário. No entanto, não há muito sentido para isso se você estiver usando o espaço de troca completo com muita frequência.

    Para aumentar o espaço de troca (sem reparticionar seu disco), você pode usar um arquivo de troca. Para fazer isso, execute sudo dd if=/dev/zero of=/swapfile count=1M bs=1024 status=progress, que copia 1 milhão de blocos de 1024 bytes (ou seja, 1 gigabyte) em um arquivo. Em seguida, execute sudo chmod 0600 /swapfilee sudo mkswap /swapfileprepare o arquivo para uso como swap. Adicione-o ao /etc/fstab para tê-lo sempre disponível, anexando a seguinte linha a esse arquivo: /swapfile swap swap defaults 0 0. Para finalizar o processo, chame sudo swapon -a, que ativa o swapfile.

    Fonte: eu mesmo uso swapfiles e zswap e referi meu bash_histroy e o wiki do Arch para os comandos.

    • 1
  2. Best Answer
    Andreas
    2021-07-16T03:56:32+08:002021-07-16T03:56:32+08:00

    Como foi mencionado em um comentário do @Terrance Swapspace é uma solução para esse problema.

    apt install swapspace
    

    Agora, tudo o que você precisa para manter o controle do seu sistema é um pouco de armazenamento gratuito. Testado e funciona .

    • 0

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve