ureadahead parece bloquear o sistema na inicialização

5

Eu dei uma olhada no meu bootchart s e algo parece estar errado com eles. O processo ureadahead faz o que deve fazer (a utilização do disco é 100% a maior parte do tempo), mas também bloqueia qualquer outra ação.

Desde que eu tenho um disco rígido de laptop lento, ureadahead leva ~ 50s do tempo de inicialização. Então, o resto da seqüência de inicialização visível leva outros 100s para completar, usando muito CPU, mas não maximizando e muito IO (novamente, 100% quase o tempo todo).

Isso parece estranho para mim. Meu ureadahead está desconfigurado? Por que bloquear tarefas como trazer a rede que parece estar tomando muita CPU? Deve demorar ~ 50% do tempo do bootchart em geral?

Edit: aqui está o exemplo de bootchart: link (ou isto se o direto não trabalho: link )

    
por viraptor 15.08.2010 / 16:02

2 respostas

4

O bloqueio da inicialização é por design. O objetivo do ureadahead é pré-carregar todos os dados que sua inicialização exigirá antes do tempo. A razão para isso é que o principal motivo para a lentidão do disco é o tempo de busca - mesmo os discos rígidos lentos devem ser capazes de extrair leituras de 50 MB / s, mas se você precisar procurá-los em dezenas de milissegundos por busca - que diminui drasticamente. Ao executar antecipadamente, o ureadahead deve ser capaz de minimizar as buscas e, portanto, minimizar o tempo necessário para ler todos os dados que sua inicialização precisará.

Assim, o bootchart ideal se parece com ureadahead a 100% de utilização de E / S, seguido por todo o restante inicializando e usando E / S sem disco. Essa inicialização não é praticamente possível, até porque muitos dos serviços que estamos iniciando gravam no disco, mas essa é a ideia.

Olhando para o seu bootchart, parece que o ureadahead está tendo dificuldades para extrair dados do seu disco - há muito tempo em que ele tem um throughput muito baixo. Mesmo assim, parece que está fazendo um pouco do seu trabalho - depois que o ureadahead inicia sua inicialização é principalmente ligado à CPU, em vez de vinculado à E / S, e parece que as grandes correções de inicialização de E / S estão associadas a preload disparar.

Você pode querer tentar remover preload , ou reprofile sua inicialização¹, ou pode ser que alguns dos seus arquivos estejam muito fragmentados, ou pode ser um bug no ureadahead.

1: Remover os arquivos pack do / var / lib / ureadahead fará com que o ureadahead faça um novo perfil na sua próxima inicialização.

    
por RAOF 16.08.2010 / 03:36
0

Tudo parece bem com o bootchart, ele mostra que o cpu está esperando na entrada / saída e o disco rígido é quase sempre 100%, então se você quiser uma inicialização mais rápida, tente instalar o gerenciador de inicialização (bum) e desabilite serviços desnecessários, também remova a pré-carga, como a RAOF disse, porque ela desacelera a inicialização e só funciona com coisas como um escritório aberto, que demora uma eternidade para ser carregado. Se você ainda deseja ter uma inicialização mais rápida, faça uma nova instalação do Ubuntu 10.04, talvez até mesmo em uma partição separada, caso não tenha certeza de como isso funcionaria. Boa sorte

    
por 23.09.2010 / 22:15

Tags