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 / unix / Perguntas / 534355
Accepted
user6039980
user6039980
Asked: 2019-08-08 04:26:04 +0800 CST2019-08-08 04:26:04 +0800 CST 2019-08-08 04:26:04 +0800 CST

O que pode fazer o Linux parar de responder por minutos ao navegar em determinados sites?

  • 772

Estou usando o Linux 4.15, e isso acontece comigo muitas vezes quando o uso de RAM atinge o máximo - Todo o sistema operacional fica sem resposta, congelado e inútil. A única coisa que vejo funcionando é o disco (partição principal do sistema), que está em uso massivo.

Não sei se esse problema é específico do sistema operacional, específico do hardware ou específico da configuração.

Alguma ideia?

linux freeze
  • 8 8 respostas
  • 8606 Views

8 respostas

  • Voted
  1. Best Answer
    sourcejedi
    2019-08-08T08:10:27+08:002019-08-08T08:10:27+08:00

    O que pode tornar o Linux tão sem resposta?

    A alocação excessiva da RAM disponível, o que causa uma grande quantidade de trocas, pode definitivamente fazer isso. Lembre-se de que a E/S de acesso aleatório em seu HDD mecânico requer a movimentação de um cabeçote de leitura/gravação, que só pode fazer cerca de 100 buscas por segundo.

    É comum que o Linux saia totalmente para almoçar, se você comprometer demais a RAM. Eu também tenho um disco giratório e 8 GB de RAM. Eu tive problemas com alguns softwares com vazamentos de memória. Ou seja, seu uso de memória continua crescendo ao longo do tempo e nunca diminui, então a única maneira de controlá-lo seria parar o software e reiniciá-lo. Com base nas experiências que tive durante isso, não estou muito surpreso em ouvir atrasos superiores a dez minutos, se você estiver gerando mais de 3 GB de troca.

    Você não verá necessariamente isso em todos os casos em que tiver mais de 3 GB de troca. A teoria diz que o conceito-chave é thrashing . Por outro lado, se você estiver tentando alternar entre dois conjuntos de trabalho diferentes e exigir a troca de 3 GB de entrada e saída, a 100 MB/s levará pelo menos 60 segundos, mesmo que o padrão de E/S possa ser perfeitamente otimizado. Na prática, o padrão de E/S estará longe de ser o ideal.

    Após a dificuldade que tive com isso, reformatei meu espaço de troca para 2 GB (várias vezes menor do que antes), para que o sistema não pudesse trocar tão profundamente. Você pode fazer isso mesmo sem mexer em redimensionamento da partição, porque mkswapleva um parâmetro de tamanho opcional.

    O equilíbrio aproximado é entre ficar sem memória e ter processos mortos, e ter o sistema travado por tanto tempo que você desiste e reinicializa de qualquer maneira. Não sei se uma partição swap de 4 GB é muito grande; pode depender do que você está fazendo. O importante é observar quando o disco começa a girar, verificar o uso da memória e responder de acordo.

    É difícil verificar o uso de memória de aplicativos de vários processos. Para ver o uso de memória por processo sem contar a memória compartilhada dupla, você pode usar sudo atop -R, pressionar Me m, e procurar na coluna PSIZE. Você também pode usar smem. smem -t -P firefoxmostrará o PSS de todos os seus processos do Firefox, seguido por uma linha com o PSS total. Esta é a abordagem correta para medir o uso total de memória de navegadores baseados no Firefox ou Chrome. (Embora também existam recursos específicos do navegador para mostrar o uso de memória, que mostrará guias individuais).

    • 30
  2. Chase
    2019-08-08T12:01:03+08:002019-08-08T12:01:03+08:00

    AFAIK, o bloatware não deve deixar o sistema operacional sem resposta, então eu não consideraria ou mesmo aceitaria que o bloatware é a causa raiz do problema

    Você não vai gostar disso, mas acho que bloatware é o seu problema (embora eu não tenha certeza se é memória ou disco que é o problema). Infelizmente, o kernel do Linux é péssimo para lidar com situações de alta pressão de memória e é conhecido por basicamente exigir uma reinicialização quando a memória estiver esgotada. Há três coisas que me levam a acreditar que seu problema é o esgotamento de recursos:

    1. Seu espaço em disco na raiz (/) e nos DADOS está quase cheio. Não sei para que você usa DATA, mas já tive problemas antes de redimensionar minha partição raiz muito pequena e meu sistema se tornar inoperável.
    2. Você tem alta pressão de memória, o que significa que sua RAM está quase cheia. Quando a RAM começar a ficar cheia, você começará a ter falhas de página. As falhas de página ocorrem quando o kernel não consegue alocar memória suficiente para um processo e, em vez disso, deve usar alguns dos sistemas de espaço de troca muito mais lento. Isso nos leva à nossa última observação:
    3. Seu espaço de troca está quase cheio. Há claramente uma alta pressão de memória em seu sistema, já que a RAM e a troca estão quase cheias.

    Basicamente, coloque esses três juntos e seu sistema não terá recursos suficientes disponíveis para fazer muita coisa. Quanto a é lamentável o quão mal o Linux lida com situações de pouca memória (em comparação com, digamos, o kernel NT no Windows), mas parece ser assim. Você pode encontrar mais discussões neste tópico do Reddit e sua lista de discussão vinculada.

    Quanto a como corrigir sua situação, eu diria que aumentar o tamanho do swap é uma boa ideia, mas como você está com pouco espaço em disco, isso será um problema. A menos que seu servidor Minecraft tenha muitas pessoas, acho que seria seguro reduzir sua memória para algo em torno de 1024m (eu pessoalmente uso 1024m com cerca de 10 pessoas e funciona bem). Eu também usaria torneira ou papel para o seu servidor Minecraft, pois eles tendem a ter mais desempenho.

    Boa sorte!

    • 5
  3. Zach Sanchez
    2019-08-08T08:10:14+08:002019-08-08T08:10:14+08:00

    Qual é a saída de free -m? A quantidade de RAM que você tem é inútil se não soubermos quanto você está usando. Isso e estou interessado em saber quanto espaço de troca está sendo usado.

    Eu acho que você respondeu sua própria pergunta, no entanto. Abrir "muitas guias" abertas em seu navegador pode definitivamente deixar seu sistema mais lento se você nunca as fechar, pois elas continuarão consumindo memória independentemente; quando seu sistema congela, quantos você tem aberto ao mesmo tempo?

    Também faz sentido se o seu sistema estiver congelando de outras tarefas com uso intensivo de memória, como "gerar um gráfico muito grande a partir de um diagrama UML muito complexo". Isso deixará seu sistema absolutamente lento à medida que gera o gráfico, então isso dificilmente é uma surpresa.

    Realmente parece que é assim que seu sistema deve se comportar. Ou isso ou estou perdendo alguma coisa aqui.

    A propósito, as estatísticas do HDD não importam quando se trata de seu sistema parar de responder, pois a falta de memória é quase sempre a culpada.

    • 4
  4. Mr. Donutz
    2019-08-09T02:32:41+08:002019-08-09T02:32:41+08:00

    Sua saída htop mostra que sua necessidade de RAM é maior que sua capacidade (total de RAM + SWAP). Portanto, a primeira consideração óbvia a ser feita é reduzir o uso da RAM ou aumentar a disponibilidade da RAM.

    Observe que as versões modernas do Firefox são extremamente exigentes em recursos, devido à maneira como as janelas/guias recebem processo e espaço de memória. A idéia era evitar que as abas travassem deixando todo o navegador de joelhos. Vale o preço? Quem pode dizer... De qualquer forma, eu tive um problema semelhante devido ao acima, já que minha placa-mãe Pentium 4 suporta apenas 2 GB de RAM. Para evitar possíveis falhas de memória esgotada, adicionei ~800M de espaço de troca em um SSD sobressalente, obviamente com a intenção de usá-lo o mínimo possível. Consegui isso alterando uma configuração conhecida como swappiness, que determina o quão ansioso o kernel está para trocar as páginas de memória. Alguns comandos úteis a seguir.

    Verifique a troca atual:cat /proc/sys/vm/swappiness

    Isso pode fornecer um resultado em torno de 60, o que é bastante alto para desempenho máximo em sistemas com carga menor. Para você, obviamente, isso funciona contraproducente, então você pode alterar a configuração usando um comando como sysctl vm.swappiness=1alterar a configuração enquanto o sistema está em execução.

    Para salvar essas alterações, você terá que procurar o arquivo /etc/sysctl.conf. Nesse arquivo, altere o valor ou adicione a linha vm.swappiness=1.

    Lembre-se, isso não é uma solução no seu caso, mas deve ser uma solução útil.

    Créditos https://askubuntu.com/questions/103915/how-do-i-configure-swappiness

    fonte para a resposta acima, inclui mais explicações. Achei esse post muito útil no meu caso.

    • 4
  5. Boann
    2019-08-09T15:42:51+08:002019-08-09T15:42:51+08:00

    Quando li o título, meu pensamento imediato foi "RAM insuficiente", porque eu mesmo experimentei exatamente esse problema no Linux, mais de 10 minutos de disco frenético depois de abrir muitas guias do navegador. Concordo, é triste e precisa de melhorias. O Windows lida com essa situação muito melhor.

    Algumas sugestões:

    • Adicione um applet de monitor de memória à bandeja do sistema para que você possa ficar de olho nele.
    • Nas preferências do Firefox, defina o "limite do processo de conteúdo" para "1". Como o texto abaixo da configuração diz: "Processos de conteúdo adicionais podem melhorar o desempenho ao usar várias guias, mas também usarão mais memória".
    • Remova ou substitua quaisquer complementos de navegador com fome de memória. Mantenha seu bloqueador de anúncios, pois os anúncios consomem mais memória do que qualquer bloqueador.
    • Investigue e possivelmente remova quaisquer outros programas com fome de memória.

    No entanto, a única solução verdadeira é comprar mais RAM.

    Não apenas uma abundância de RAM evitará que essa catástrofe ocorra, mas também permitirá que o sistema construa um grande cache de arquivos na RAM, o que seu sistema atualmente não pode fazer porque está muito próximo do limite. Um cache de arquivo grande tirará o trabalho do HDD e fará com que quase todas as ações no sistema pareçam mais rápidas em geral. Vale a pena.

    • 4
  6. Old Uncle Ho
    2019-08-09T04:16:03+08:002019-08-09T04:16:03+08:00

    Uma excelente discussão de como o problema é causado, continua e cresce. Gosto de me antecipar a problemas como os que você enfrenta jogando hardware no design inicial do computador e/ou atualizando uma implementação existente. Você pode,

    • adicione RAM (32 GB funciona muito bem para muitas configurações)

    • substitua sua unidade de disco rígido por um SSD

    • adicione um SSD (Solid State Drive) para unidade de troca

    • crie uma partição swap na RAM (com 32 ou mais GB de RAM)

    • obter um HDD mais rápido

    • mude para um sistema com processamento mais rápido e arquitetura de barramento mais ampla/rápida.

    Algumas dessas atualizações/substituições de hardware podem custar bem menos de US$ 100. Eles não são específicos do Linux, nem de suas implementações exatas de software, mas o hardware que você está usando não parece adequado às suas tarefas.

    • 2
  7. Peter Cordes
    2019-08-11T02:36:19+08:002019-08-11T02:36:19+08:00

    Normalmente é "apenas" o X11 que se torna inutilizável. Para obter um pressionamento de tecla do seu teclado para um programa, e fazer com que ele mostre qualquer coisa na tela, o código em vários processos diferentes deve ser executado. (Servidor X para obter o pressionamento de tecla do kernel, xterm ou equivalente para obter o evento e decidir desenhar algo, então envie uma mensagem ao servidor X para desenhar um glifo de uma fonte.)

    Basta passar o mouse sobre uma janela com um navegador da Web mostrando uma página com um monte de porcaria de Javascript pode resultar em um monte de mensagens para vários processos, os quais fazem com que esses processos acordem e toquem em um monte de dados. Presumivelmente incluindo um monte de bitmaps não compactados "em cache". Portanto, é altamente provável que isso despeje mais coisas que serão necessárias em breve.

    ctrl+alt+F2 para alternar para outro console virtual geralmente torna possível fazer login e executar comandos shell com apenas alguns segundos de latência quando algo está causando thrashing de swap. É apenas bash; o kernel do Linux não é trocável e tem todo o
    código VT e teclado<->TTY.

    Pode levar algum tempo até que este pressionamento de tecla faça alguma coisa, se a troca estiver realmente se debatendo muito. O servidor X, não o kernel, precisa receber esse pressionamento de tecla e sair de seu próprio VT depois de colocar o hardware de vídeo de volta no modo correto . O kernel ainda está procurando por combinações de teclas Alt+SysRq, mas nada mais. Mas quando você muda para um console de texto, geralmente há no máximo 1 processo de espaço de usuário entre a digitação e os caracteres exibidos na tela.

    Se o seu servidor X realmente estiver travado, ctrl+alt+F2 pode não funcionar.


    Para evitar a desaceleração quando você não está realmente batendo, reduzir a "troca" pode ajudar. por exemplo, eu configurei o ajuste /proc/sys/vm/swappinessno 6meu desktop com 16 GB de RAM e uma partição de troca de 2 GB em um SSD NVMe. Você pode ler mais sobre como ajustar a latência interativa (em oposição à taxa de transferência do servidor); qualquer guia mencionará esse ajuste.

    Mas se você tiver alguma troca, o Linux a usará antes de invocar o assassino OOM. Mantenha sua partição swap pequena , grande o suficiente para que o Linux salve porcarias realmente obsoletas que normalmente não são usadas por muito tempo. (por exemplo, vazamentos de memória!)

    Eu não tive nenhum problema com swap estar cheio. O Linux moderno lida bem com o espaço de troca limitado. O Chromium (que eu uso em vez do firefox) às vezes fica mais lento com dezenas de guias do Stack Overflow abertas, mas o The Great Suspender é um bom complemento para descarregar guias quando você não as está usando. Acho que isso economiza RAM significativa para mim, embora só descarregue as guias onde você não digitou nada em uma caixa de texto. Também pode estar disponível para o Firefox.


    Como outros sugeriram, 16 GB de RAM é muito bom para uso interativo com o Linux. Os preços da DRAM são relativamente baixos atualmente ; depois de um pico de cerca de 1,5 anos atrás, eles diminuíram novamente.

    • 2
  8. Michael
    2019-08-09T17:56:13+08:002019-08-09T17:56:13+08:00

    O que pode fazer o Linux parar de responder por minutos ao navegar em determinados sites?

    Você não está usando o Linux direito. O que se torna especialmente perceptível em uma máquina com recursos limitados. Você não precisa de mais RAM, nem de um processador mais rápido.

    Fundo:

    Almost every non-user program’s priority is 0.
    Almost every user program’s priority is 20.
    

    Para 'corrigir' seu problema:

    Deixe os programas não-usuários em paz, mas comece a alterar as prioridades (níveis agradáveis) de seus programas de usuários para que eles não causem problemas. Edite o que inicia seus programas para incluir níveis agradáveis, indo de geralmente não um problema, ao pior ofensor.

    Exemplos do mundo real:

    KMail:          nice -n 1 kmail -caption "%c" %i %m
    LibreOffice:    nice -n 2 libreoffice --writer %U
    Firefox:        nice -n 3 firefox %u
    WorstOffender:  nice -n 9 {i'm a bad program}
    

    Seu WorstOffender ainda ficará sem resposta por alguns minutos, isso é literalmente um problema de compra de uma caixa melhor, mas agora não fará com que todo o seu sistema operacional (Linux) e tudo o que você está executando também pare de responder.

    • -2

relate perguntas

  • Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?

  • Inicie/pare o serviço systemd usando o atalho de teclado [fechado]

  • Necessidade de algumas chamadas de sistema

  • astyle não altera a formatação do arquivo de origem

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

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