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 / 553980
Accepted
Startec
Startec
Asked: 2019-11-26 00:19:44 +0800 CST2019-11-26 00:19:44 +0800 CST 2019-11-26 00:19:44 +0800 CST

Por que alguém escolheria não usar o kernel de baixa latência?

  • 772

Não consigo encontrar nenhuma boa informação sobre os kernels rte Linux.lowlatency

Estou me perguntando por que alguém não gostaria de usar um kernel de baixa latência.

Além disso, se alguém puder dizer quais são as diferenças específicas, isso também seria ótimo.

linux-kernel kernel
  • 4 4 respostas
  • 36633 Views

4 respostas

  • Voted
  1. Best Answer
    Stephen Kitt
    2019-11-26T01:41:22+08:002019-11-26T01:41:22+08:00

    As diferentes configurações, “genéricas”, “baixa latência” (conforme configuradas no Ubuntu) e RT (“tempo real”), são todas para equilibrar a taxa de transferência versus latência. Os kernels genéricos favorecem a taxa de transferência sobre a latência, os outros favorecem a latência sobre a taxa de transferência. Assim, os usuários que precisam de throughput mais do que precisam de baixa latência não escolheriam um kernel de baixa latência.

    Comparado com a configuração genérica, o kernel de baixa latência altera as seguintes configurações:

    • Os IRQs são encadeados por padrão, o que significa que mais IRQs (ainda não todos os IRQs) podem ser preemptivos e também podem ser priorizados e ter sua afinidade de CPU controlada;
    • a preempção é habilitada em todo o kernel ( CONFIG_PREEMPTem vez de CONFIG_PREEMPT_VOLUNTARY);
    • as ferramentas de depuração de latência estão habilitadas, para que o usuário possa determinar quais operações do kernel estão bloqueando o progresso;
    • a frequência do temporizador é definida para 1000 Hz em vez de 250 Hz .

    Os kernels RT adicionam vários patches ao kernel principal e mais alguns ajustes de configuração. O objetivo da maioria desses patches é permitir mais oportunidades de preempção, removendo ou dividindo bloqueios, e reduzir a quantidade de tempo que o kernel gasta lidando com tarefas ininterruptas (principalmente, melhorando os mecanismos de log e usando-os menos) . O objetivo de tudo isso é permitir que o kernel cumpra os prazos , ou seja , garantir que, quando for necessário manipular algo, ele não esteja ocupado fazendo outra coisa; isso não é o mesmo que alta taxa de transferência ou baixa latência, mas corrigir problemas de latência ajuda.

    Os kernels genéricos, conforme configurados por padrão na maioria das distribuições, são projetados para serem um compromisso “sensato”: eles tentam garantir que nenhuma tarefa possa monopolizar o sistema por muito tempo e que as tarefas possam alternar com frequência razoável, mas sem comprometer a taxa de transferência — porque quanto mais tempo o kernel gasta considerando se deve alternar tarefas (dentro ou fora do kernel), ou lidar com interrupções, menos tempo o sistema como um todo pode gastar “trabalhando”. Esse compromisso não é bom o suficiente para cargas de trabalho sensíveis à latência, como processamento de áudio ou vídeo em tempo real: para esses, os kernels de baixa latência fornecem latências mais baixas às custas de alguma taxa de transferência. E para requisitos em tempo real, os kernels em tempo real removem o maior número possível de bloqueadores de baixa latência, às custas de mais taxa de transferência.

    As distribuições de fluxo principal do Linux são instaladas principalmente em servidores, onde tradicionalmente a latência não é considerada tão importante (embora se você fizer uma análise de desempenho de percentil e se preocupar com o desempenho de percentil superior, poderá discordar), então os kernels padrão são bastante conservador. Os usuários de desktop provavelmente devem usar os kernels de baixa latência, conforme sugerido pela própria documentação do kernel. Na verdade, quanto mais kernels de baixa latência forem usados, mais feedback haverá sobre sua relevância, o que ajuda a obter melhorias geralmente aplicáveis ​​nas configurações padrão do kernel; o mesmo vale para os kernels RT (muitos dos patches RT destinam-se, em algum momento, ao kernel principal).

    Esta apresentação sobre o tema fornece bastante pano de fundo.

    Desde a versão 5.12 do kernel Linux, a “preempção dinâmica” pode ser habilitada; isso permite que o modelo de preempção padrão seja substituído na linha de comando do kernel, usando o preempt=parâmetro. Atualmente, isso oferece suporte nonea (servidor), voluntary(área de trabalho) e full(área de trabalho de baixa latência).

    • 90
  2. gilhad
    2019-11-26T10:05:26+08:002019-11-26T10:05:26+08:00

    Stephen Kitt explicou as configurações e balanceamento e tudo bem nos parâmetros técnicos. Gostaria de oferecer apenas uma pequena distinção intuitiva:

    • Você está em um safári, andando pelo terreno em um jipe. Sua presa está correndo. Quando a presa está na mira, você puxa o gatilho e o rifle atira - o cálculo é simples - presa na mira = acertar, presa não na mira = errar - você precisa desesperadamente de baixa latência - você recupera, recarrega o rifle, encontra outra presa - sem necessidade de velocidade extra, sem necessidade de regularidade. A latência é tudo.

    • Você está convertendo um vídeo desse safári. É longo, leva horas. Você não se importa quando um determinado quadro é processado e se alguns quadros levam mais tempo para serem processados ​​do que outros. Você precisa terminar o processo o mais rápido possível - melhor rendimento significa menos horas, nada mais importa

    • Você está recebendo telégrafo - apenas shorts, longs e espaços - Morse é fácil de decifrar e você não precisa exatamente quando cada pulso começou ou terminou, mas você precisa de uma garantia de que não perderá nenhum deles - você precisa de tempo real ( pode ser lento, o telégrafo não é tão rápido, mas deve ser regular

    Nestes três exemplos, você claramente seleciona apenas um de latência , taxa de transferência ou regularidade , sacrificando outros dois - por razões óbvias. E apenas em um você realmente deseja baixa latência, se não puder ter os três ao mesmo tempo.

    • 31
  3. Thmtrhxsu
    2020-01-28T21:57:45+08:002020-01-28T21:57:45+08:00

    Em termos leigos:

    • Se você não está regularmente dando trabalho ao seu PC, então o kernel de baixa latência é para você.
    • Se você está constantemente dando tarefas intensivas à CPU do seu PC para serem feitas, então o kernel genérico é para você.
    • Se você é apenas casual usando seu PC para navegar, reproduzir vídeos, música... então a baixa latência é para você.
    • Se você estiver jogando, a diferença teórica entre baixa latência e genérica seria que a baixa latência venceria em todos os cenários, exceto um; carregamento de nível, mas isso depende mais de você ter um SSD ou não e da qualidade do SSD, porque seu SSD básico funciona em velocidade 1X, enquanto seu SSD PCI-Express mais alto está em velocidade 6X. Um disco rígido tradicional tem velocidade de 0,1X. Então, sim, um SSD pode ser 60X mais rápido que um disco rígido tradicional.

    Basicamente, o kernel genérico faz a maior parte do trabalho no menor tempo, enquanto o kernel de baixa latência torna o PC o mais responsivo; assumindo que nenhum bug seja encontrado no kernel ou no sistema.

    Para a maioria das pessoas, o kernel de baixa latência faz mais sentido. Mas se você está sempre dando muito trabalho ao seu PC, então o kernel genérico é para você.

    Outra maneira de colocar se 90% do tempo de carga da CPU em todos os núcleos for < 60%, o kernel de baixa latência é para você. Se, por outro lado, a carga da CPU em todos os núcleos for maior que 80%, 90% ou mais do tempo, o kernel genérico é para você.

    Quiz: Qual kernel pontuaria melhor em um benchmark? Enquanto a latência for ignorada como parâmetro de referência, o genérico sempre ganha a corrida, mas a baixa latência é como ter um polvo ao seu lado pronto para delegar.

    • 9
  4. Michael
    2019-11-28T08:11:40+08:002019-11-28T08:11:40+08:00

    Porque há uma troca. Alternar processos ou entrar/sair de interrupções leva tempo. Por exemplo, executar o agendador em 1000Hz em vez de 250Hz significa que você terá uma interrupção do temporizador e potencialmente alternará processos com quatro vezes mais frequência. Isso pode permitir que um processo reaja mais rápido porque é permitido executar com mais regularidade. No entanto, como humano, você provavelmente não notará nenhuma diferença (250Hz significa cada 4ms, o que já é muito mais rápido do que qualquer tempo de reação humano).

    A quantidade total de poder de processamento ou taxa de transferência de E/S é limitada e chamar o agendador com mais frequência significa apenas que você desperdiçará uma parte dela.

    • 5

relate perguntas

  • tamanho da pilha do programa

  • Quais dongles WiFi 802.11ac (ou posteriores) funcionam com o kernel Linux 4.13

  • Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]

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

  • Acesse o sistema de arquivos como usuário root

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