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 / user-1925229

David Vitek's questions

Martin Hope
David Vitek
Asked: 2024-09-13 02:48:35 +0800 CST

Contar em python é 6x mais lento no ubuntu24 do que no ubunt18

  • 10

Eu encontrei uma regressão de desempenho ao executar o interpretador python ao atualizar do Ubuntu 18 para o Ubuntu 24. O que você acha que causa isso? Existe uma correção ou solução alternativa?

Tenho algumas evidências que sugerem que mudanças no kernel do Linux — e não em nada no ambiente do usuário — provavelmente são as responsáveis ​​pelo problema.

Posso reproduzir a discrepância de desempenho com um teste muito simples:

python3 -c "import timeit; print(timeit.Timer('for _ in range(0,1000): pass').timeit())"

Estou executando este teste inicializando o servidor live do Ubuntu 18 e o servidor live do Ubuntu 24 ISOs no mesmo sistema de rack Cisco UCS C220 M5SX. Você pode encontrar os ISOs do servidor live no site da Canonical e reproduzir o experimento.

Tenho um conjunto de binários python 3.11 construídos a partir do código-fonte em um sistema squeeze debian que rodará em uma grande variedade de distros linux. Isso me dá a oportunidade de testar os mesmos binários python em 18 e 24. Chamaremos esses binários python de python_pegged. Chamaremos o python3 buscado por 'apt-get' python_sys.

Também tentei executar o contêiner docker ubuntu:18.04 de dentro do Ubuntu 24. Ele tem as características de desempenho ruim do Ubuntu 24 e não se comporta como o Ubuntu 18, o que me leva a acreditar que o userland não é responsável.

Resultados experimentais:

Ubuntu 18.04.6 bare metal                            python_sys        13 seconds
Ubuntu 18.04.6 bare metal                            python_pegged     13 seconds
Ubuntu 18.04.6 bare metal                  sysbench --test=cpu run   1288 events/s
Ubuntu 24.04   bare metal                            python_sys        83 seconds
Ubuntu 24.04   bare metal                            python_pegged    112 seconds
Ubuntu 24.04   bare metal                  sysbench --test=cpu run    925 events/s
ubuntu:18.04 docker container hosted by Ubuntu 24.04 python_sys        82 seconds
ubuntu:18.04 docker container hosted by Ubuntu 24.04 python_pegged    112 seconds

No Ubuntu 24, tomar as seguintes ações não teve efeito algum:

  • defina scaling_governor para performance
  • perfil tuned-adm throughput-performance
  • perfil tuned-adm host virtual
  • perfil tuned-adm balanceado

O sistema tem 40 núcleos físicos e 80 hyperthreaded. Tentei executar vários números de instâncias simultâneas.

concurrent instances      seconds
                  40       82..83
                  80       53..53
                 120      87..115

Estou surpreso que 80 instâncias sejam mais rápidas do que 40. Eu executei o experimento algumas vezes e os resultados nunca mudaram. Eu tentei diferentes perfis ajustados sem efeito. 53 segundos ainda está muito longe dos 13 do ubuntu18.

python está tropeçando em algo caro com ubuntu24 que sysbench não está--ou pelo menos não no mesmo grau. Posso começar a usar um profiler em um futuro próximo para cavar mais fundo.

Testes de várias versões intermediárias indicam que a regressão ocorreu na atualização 21 -> 22.

perf stat -a resulta no comando python3:

Estado Ubuntu 20 Ubuntu 22
relógio da cpu 80% 80%
trocas de contexto 0,003 K/seg (3829) 6,656 / seg (45238)
migrações de CPU 0 K / seg (3) 0,039 / seg (268)
falhas de página 0,001 K/seg (620) 0,151 / seg (1029)
ciclos 0,047 GHz 0,034 GHz
instruções 3,34 insn / ciclo 0,88 insn / ciclo
galhos 30,703 M/seg 5,329 M/seg
erros de ramificação 0,03% 13,18%

Algumas grandes diferenças aí. Não estou convencido de que 6 trocas de contexto por segundo realmente movam a agulha. Instruções por ciclo são presumivelmente o ponto de dados mais relevante aqui.

kernel
  • 1 respostas
  • 187 Views

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