Os serviços readahead podem ser desativados com segurança?

2

Estou apenas passando pela lista de serviços de um servidor (CentOS 5) - a pergunta provavelmente se aplicará a outras versões do RedHat, Fedora, ... também.

Observe que meus servidores normalmente são executados no nível de execução 3 (nenhum processo do servidor da GUI foi iniciado).

Eu tropecei em dois serviços:

  • readahead_early
  • readhahead_later

Esses dois serviços obtêm sua configuração em /etc/sysconfig/readahead.d

O propósito desses serviços parece ser pré-carregar certos arquivos na memória cache.

Navegando pelos arquivos de configuração (à esquerda no conteúdo padrão) vejo principalmente arquivos relacionados ao X11 e algumas bibliotecas.

Qual é o sentido mais profundo desses processos? AFAIK todo arquivo entrará na memória cache após o primeiro acesso de leitura. Por que devo pré-carregar - e por que devo pré-carregar todos esses arquivos desnecessários?

IMHO este é um desperdício inútil de largura de banda de leitura durante a inicialização do sistema operacional.

Atualizar

Descobri que esses readaheads armazenarão em cache apenas as primeiras entradas de inode para os arquivos listados (por meio da chamada do sistema fstat ). Por isso, apenas acelera a encontrar esses arquivos ...

Atualização de 2012-10-02

A pergunta se resume a: Posso desativar com segurança esses serviços em um servidor ou estou perdendo algo importante aqui?

Eu atualizei o cabeçalho da pergunta de acordo, já que as respostas dadas ainda não atingiram a marca.

    
por Nils 04.09.2012 / 15:49

2 respostas

3

A idéia é carregar esses arquivos no cache antes de eles serem necessários, para que não haja necessidade de esperar por eles quando o X estiver tentando iniciar.

Obviamente, não há muito sentido em fazer isso para arquivos que não são realmente necessários na operação diária do sistema, portanto, por exemplo, armazenar em cache o próprio servidor X é contraproducente no seu caso, sim; no entanto, você pode se surpreender com o que pode ser puxado algumas vezes: é bem possível que alguns programas executados pelo seu servidor realmente tragam bibliotecas X11, talvez via Cairo, então não seja demasiado precipitada em dispensar isso como inútil!

Pode ser melhor se o sistema periodicamente se rastrear na inicialização para descobrir o que precache (e quando); O Windows faz algo desse tipo. (Ele também faz isso em uma base por exe para a inicialização do processo; na verdade, eu vi o kernel puxando coisas para o cache logo após consultar seus registros sobre o executável de um novo processo!)

Mais uma vez, tudo se resume a reduzir o tempo gasto na espera pelo armazenamento das coisas.

Editar:

Isto, obviamente, não é essencial. Nada vai quebrar se isso não acontecer (exceto insetos estúpidos); o tempo de inicialização será diferente.

    
por 04.09.2012 / 18:45
2

O processo de raciocínio por trás disso é que os usuários finais têm maior probabilidade de sofrer um tempo maior de inicialização em favor de tempos de inicialização de aplicativos mais rápidos.

Os tempos de inicialização são de dezenas de segundos a minutos, portanto, estender isso por alguns segundos é quase imperceptível. Em qualquer caso, o pré-carregamento de tempo extra é um fator de menos de 1x o tempo de inicialização. Por outro lado, o firefox (apenas para escolher um aplicativo de exemplo e números fictícios) pode ser lançado em 15s sem cache, mas somente 1.5s se armazenado em cache. Neste exemplo (puramente falso), essa é uma aceleração de 10x, o que é certamente perceptível pelos usuários.

Em suma, o tempo total provavelmente não é significativamente diferente. Mas é um truque psicológico para os humanos, e não realmente sobre reduzir o tempo de espera. A percepção humana do tempo é extremamente maleável. É por isso que demora mais para chegar à loja do que para chegar em casa e por que um pote observado nunca ferve.

    
por 27.09.2012 / 23:23