Tunando o ext4 para Desempenho! Revisto, ampliado e ainda mais rápido e seguro!

Iniciado por galactus, 29 de Agosto de 2010, 02:04

tópico anterior - próximo tópico

galactus

Citação de: Cybereu online 08 de Março de 2012, 00:50
O cara -> aqui <- diz que não vale a pena tirar o journal em SSD, vou instalar com journal mesmo.

Outro link interessante é:how to tweak your ssd in ubuntu for better performance o qual apresenta alguns tweaks para SSD, observação para "Switching IO Schedulers", em alguns testes houve 200% de aumento de perfomance.



Desculpe ressucitar o tópico, mas achei relevante.

Eu particularmente acho loucura usar o ext4 sem o Journal! Isso para quem quer ter segurança dos seus dados é fundamental! Numa queda de energia os seus dados podem ir pro vinagre! Agora, se apenas o sistema estiver sem Journal e os seus dados em outro HD com Journal, aí até poderia ser! Mas mesmo assim as chances do seu sistema ser moído numa queda de energia ou travamento do sistema são grandes!

Realmente já tinha lido sobre mudanças com os SSDs, quanto a mudança do IO Schedulers é uma faca de dois Gumes! 

O que os testes dele não mostram é como ficou o uso do sistema como um todo.

Lembre-se, nosso sistema, para um usuário final, deve ser multitarefa.  Alterações no IO Schedulers surtem mais efeitos em servidores dedicados, onde geralmente ele tem uma obrigação marcante. 

O IO Schedulers noop ajuda sim nas taxas de transferências, mas e o resto? O XFS mesmo é bem conhecido por "gostar" do noop, mas não sei como vai ficar o resto!  É preciso testar. O CFQ é o padrão por um ótimo motivo, ele tenta equilibrar as coisas não importa a carga do sistema! É o mesmo caso da gente compilar o kernel com BFQ por padrão. Vai ficar mais rápido que o CFQ? Vai! Mas até você abusar da carga no sistema, se tiver uma CPU "fraca" ou um HD velhinho com pouco cache aí você vai ver que a vaca vai pro brejo rapidinho!

Obrigado pelos links, conhecimento nunca é demais!

Não precisa se desculpar por trazer informação relevante né!

Eu não tenho um HD SSD, por isso não posso te dizer da diferença das dicas nestes tópicos. Você já testou?

outra coisa é que o uso do noatime, implica no uso do nodiratime! Então só precisa usar um deles, no caso o noatime!



BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Stivekx

Eu tenho um SSD e atualmente uso ele sem journal sim!

A performance é notável e é bom pois reduz a quantidade de escritas no disco...

Quanto a perder dados, se tratando de notebook, não tem muitos problemas, unico problema é, que, se você desligar ele direto você perde aqueles dados... Se ele travar você perde... Tem algum provavel bug no ubuntu 11.10 que, faz com que o disco nao seja desmontado corretamente...
Com isso, o fsck toda vez que você liga tem que corrigir uns problemas que causa no HD ... E talvez você possa perder dados com isso.
Mas usando o ubuntu 11.04 ou o 10.04 com kernel 2.6.39-ck2 ou kernel-3.2.9-ck1 não tive problemas.

No meu post anterior de messes atrás eu falei que não valeria a pena, pois estava usando outra versão do kernel, a padrão do 10.04 (acho que é a 2.3.32 ou .34).

Então, se for usar, certifique-se que tenha ubuntu 10.04/11.04 com kernel 2.6.39 ou o 3.2.9 ...
Use também com o elevator=noop
No fstab, sempre usei discard,commit=300,noatime,nodiratime,nouser_xattr,barrier=0

Cybereu

Surgiu um problema novo por aqui, segui o tutorial como sempre para usar journal no mesmo hd, e parti para uma instalação pelo minimalcd, na parte da escolher a partição para instalar aparece o seguinte erro: "falha ao remover arquivos conflitantes" , não tenho noção de arquivos seriam esses, não tenho nenhum outro sistema instalado nesse HD.
Desisti dessa vez tunar o ext4, só espero que não altere tanta a perfomance, pretendo usar esse notebook velho como media center.

galactus

Citação de: Cybereu online 11 de Maio de 2012, 16:38
Surgiu um problema novo por aqui, segui o tutorial como sempre para usar journal no mesmo hd, e parti para uma instalação pelo minimalcd, na parte da escolher a partição para instalar aparece o seguinte erro: "falha ao remover arquivos conflitantes" , não tenho noção de arquivos seriam esses, não tenho nenhum outro sistema instalado nesse HD.
Desisti dessa vez tunar o ext4, só espero que não altere tanta a perfomance, pretendo usar esse notebook velho como media center.

Oi Cybereu, fiz o meu teste aqui, baixei o mini cd Install do 12.04 32bits, usei o gparted com um live-cd do ubuntu no HD em questão para fazer as partições e formatar só a swap!  Depois usei o comando no terminal para tunar a formatação do ext4. Sai do live-cd e  segui a instalação do mini cd. Só apontei a partição já formatada, no modo manual, e ele aceitou numa boa e seguiu com a instalação padrão do mini cd.   

Claro que ele avisou se eu gostaria de instalar numa partição não marcada para formatação, mas foi!

Pode dar mais detalhes do que você fez?
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

Sahave

Oi pessoal, sou novo e resolvi me cadastrar devido a este tópico, realmente para quem se diz apenas um usuário de desktop multitarefa esta muito bom mesmo! Parabéns!

Gostaria apenas de realçar uma questão que andei lendo em alguns tópicos, um SSD não é um HD, portanto dizer que possui um HD SSD é estranho, HD quer dizer Hard Disk, mas um SSD não tem disco, bom entenderam.

Utilizo servidores com RAID 50 em unidades SSD e realmente o tratamento com SSD é um tanto diferente, nem sequer sonhei em montar um sistema sem journal, mesmo otimizando desempenho, estamos falando de SSD, IO tendendo a zero, a escrita é tão rápida que o journal não vai afetar o desempenho, ok SSD em RAID fica realmente rápido, mas a diferença vai ser tão baixa que não vale o custo da segurança. Meu ponto de vista.

Obrigado, realmente o tutorial esta ótimo!

Cybereu

Já faz algumas versões do ubuntu que não consigo mais usar os tweaks, sempre aparece mensagens de erros no boot:
Errors found while checking disk drive for /

hiltongil

Utilizo essa dica de tunning do ext4 desde que a conheci.

E andei pensando se não havia alguma forma de automatizar o comando
Citar#fsck -t ext4 -f -D /dev/sdxy
para que ele fosse executado a cada "x" dias, semanas, meses.

Como o comando deve ser rodado com o sistema desmontado não me veio a cabeça alguma forma de automatizar via script. Dai lembrei que o tune2fs checa a integridade do filesystem a cada 180 dias ou 30 montagens (dependendo do sistema). Nisso me veio a dúvida: Alguém sabe se tem como configurar essa checagem que o tune2fs faz a cada "x" dias para que ele execute o comando de otimização?

galactus

Citação de: Cybereu online 05 de Abril de 2013, 14:49
Já faz algumas versões do ubuntu que não consigo mais usar os tweaks, sempre aparece mensagens de erros no boot:
Errors found while checking disk drive for /


Olá. Quais Tweaks?

Sua foto está muito pequena não consegui ler a  mensagem na foto.  Existe um Bug na montagem do Ubuntu, já documentada, dizem que corrigiram na versão 13.04. Erros na motagem principalmente do diretório/partição tmp acontecem muito por causa desse BUG.

Venho usando as alterações em alguns dos meus sistema ext4 com sucesso.
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

galactus

Citação de: hiltongil online 19 de Abril de 2013, 08:49
Utilizo essa dica de tunning do ext4 desde que a conheci.

E andei pensando se não havia alguma forma de automatizar o comando
Citar#fsck -t ext4 -f -D /dev/sdxy
para que ele fosse executado a cada "x" dias, semanas, meses.

Como o comando deve ser rodado com o sistema desmontado não me veio a cabeça alguma forma de automatizar via script. Dai lembrei que o tune2fs checa a integridade do filesystem a cada 180 dias ou 30 montagens (dependendo do sistema). Nisso me veio a dúvida: Alguém sabe se tem como configurar essa checagem que o tune2fs faz a cada "x" dias para que ele execute o comando de otimização?

Difícil essa viu. Tem como alterar a cada quantos boots ele vai fazer a checagem, diminuir, aumentar ou até mesmo desabilitar as checagens padrões. Mas alterar essa checagem padrão via script....

Como ele vai ler esse script se a partição raiz tem que estar desmontada?   ??? ??? ???
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.

hiltongil

Citação de: galactus online 20 de Abril de 2013, 16:57
Citação de: hiltongil online 19 de Abril de 2013, 08:49
Utilizo essa dica de tunning do ext4 desde que a conheci.

E andei pensando se não havia alguma forma de automatizar o comando
Citar#fsck -t ext4 -f -D /dev/sdxy
para que ele fosse executado a cada "x" dias, semanas, meses.

Como o comando deve ser rodado com o sistema desmontado não me veio a cabeça alguma forma de automatizar via script. Dai lembrei que o tune2fs checa a integridade do filesystem a cada 180 dias ou 30 montagens (dependendo do sistema). Nisso me veio a dúvida: Alguém sabe se tem como configurar essa checagem que o tune2fs faz a cada "x" dias para que ele execute o comando de otimização?


Difícil essa viu. Tem como alterar a cada quantos boots ele vai fazer a checagem, diminuir, aumentar ou até mesmo desabilitar as checagens padrões. Mas alterar essa checagem padrão via script....

Como ele vai ler esse script se a partição raiz tem que estar desmontada?   ??? ??? ???

Pois é Galactus. Esse é o paradoxo da coisa. Eu já tinha visto o manpage do tune2fs e vi que dava para aumentar/diminuir a frequencia com que ele checa. Mas infelizmente não tinha como personalizar o comando. A opção de script eu já tinha descartado por este mesmo motivo que você citou (necessidade de partição montada). Minha dúvida é como o tune2fs faz essa checagem antes da partição montar. É essa a minha procura. :)

E quando sai um tutorial desse porte sobre o btrfs e zfs? Eu ando lendo e fazendo testes com o brtfs mas fazer uso do recurso semelhante ao "time machine" é dureza total. E até onde sei só o OpenSuse desenvolveu algo para lidar com isso o Snapper. Um tutorial dando tudo isso "mastigado" seria muito bem vindo heheh.

Abraço.

rudregues

Citação de: hiltongil online 19 de Abril de 2013, 08:49
Utilizo essa dica de tunning do ext4 desde que a conheci.

E andei pensando se não havia alguma forma de automatizar o comando
Citar#fsck -t ext4 -f -D /dev/sdxy
para que ele fosse executado a cada "x" dias, semanas, meses.

Como o comando deve ser rodado com o sistema desmontado não me veio a cabeça alguma forma de automatizar via script. Dai lembrei que o tune2fs checa a integridade do filesystem a cada 180 dias ou 30 montagens (dependendo do sistema). Nisso me veio a dúvida: Alguém sabe se tem como configurar essa checagem que o tune2fs faz a cada "x" dias para que ele execute o comando de otimização?
Não sei se entendi direito, mas seria o que está descrito neste tópico (em ingles) http://askubuntu.com/questions/151025/how-can-i-make-fsck-run-non-interactively-at-boot-time ?
Gentoo — Controle total sobre o sistema.

hiltongil

Citação de: rudregues online 30 de Abril de 2013, 23:19
Citação de: hiltongil online 19 de Abril de 2013, 08:49
Utilizo essa dica de tunning do ext4 desde que a conheci.

E andei pensando se não havia alguma forma de automatizar o comando
Citar#fsck -t ext4 -f -D /dev/sdxy
para que ele fosse executado a cada "x" dias, semanas, meses.

Como o comando deve ser rodado com o sistema desmontado não me veio a cabeça alguma forma de automatizar via script. Dai lembrei que o tune2fs checa a integridade do filesystem a cada 180 dias ou 30 montagens (dependendo do sistema). Nisso me veio a dúvida: Alguém sabe se tem como configurar essa checagem que o tune2fs faz a cada "x" dias para que ele execute o comando de otimização?
Não sei se entendi direito, mas seria o que está descrito neste tópico (em ingles) http://askubuntu.com/questions/151025/how-can-i-make-fsck-run-non-interactively-at-boot-time ?

De repente até seja por ai. O problema é que não consegui entender bem como funciona a explicação. E nem como colocaria esse comando personalizado. Alguém que entenda melhor de script para ajudar?

rudregues

Citação de: hiltongil online 01 de Maio de 2013, 14:44
Citação de: rudregues online 30 de Abril de 2013, 23:19
Citação de: hiltongil online 19 de Abril de 2013, 08:49
Utilizo essa dica de tunning do ext4 desde que a conheci.

E andei pensando se não havia alguma forma de automatizar o comando
Citar#fsck -t ext4 -f -D /dev/sdxy
para que ele fosse executado a cada "x" dias, semanas, meses.

Como o comando deve ser rodado com o sistema desmontado não me veio a cabeça alguma forma de automatizar via script. Dai lembrei que o tune2fs checa a integridade do filesystem a cada 180 dias ou 30 montagens (dependendo do sistema). Nisso me veio a dúvida: Alguém sabe se tem como configurar essa checagem que o tune2fs faz a cada "x" dias para que ele execute o comando de otimização?
Não sei se entendi direito, mas seria o que está descrito neste tópico (em ingles) http://askubuntu.com/questions/151025/how-can-i-make-fsck-run-non-interactively-at-boot-time ?

De repente até seja por ai. O problema é que não consegui entender bem como funciona a explicação. E nem como colocaria esse comando personalizado. Alguém que entenda melhor de script para ajudar?
Nesse tópico do askubuntu, tem muita informação junta. Uma das coisas que li foi que no último numero do fstab voce define se o fsck será executado ou não, como pode ser visto aqui http://www.vivaolinux.com.br/artigo/FSTAB-Sua-funcao-e-parametros?pagina=4

Meu arquivo /etc/default/rcS tem o seguinte conteúdo:
#
# /etc/default/rcS
#
# Default settings for the scripts in /etc/rcS.d/
#
# For information about these variables see the rcS(5) manual page.
#
# This file belongs to the "initscripts" package.

# delete files in /tmp during boot older than x days.
# '0' means always, -1 or 'infinite' disables the feature
TMPTIME=0

# spawn sulogin during boot, continue normal boot if not used in 30 seconds
SULOGIN=no

# do not allow users to log in until the boot has completed
DELAYLOGIN=no

# assume that the BIOS clock is set to UTC time (recommended)
UTC=no

# be more verbose during the boot process
VERBOSE=no

# automatically repair filesystems with inconsistencies during boot
FSCKFIX=no

Lendo esse conteúdo, podemos imaginar que colocando FSCKFIX=yes ou FSCKFIX=y o fsck sera executado automaticamente. Sendo que nesse arquivo mesmo, diz que para editar as as settings no diretório /etc/rcS.d/

Um dos caras fala algo sobre mountall.c, dei uma procurada e achei algo relevante, rodei então:
pires@pires-Aspire-5315:/etc/init.d$ cat /etc/init/mountall.conf

# mountall - Mount filesystems on boot
#
# This helper mounts filesystems in the correct order as the devices
# and mountpoints become available.

description "Mount filesystems on boot"

start on startup
stop on starting rcS

expect daemon
task

emits virtual-filesystems
emits local-filesystems
emits remote-filesystems
emits all-swaps
emits filesystem
emits mounting
emits mounted

# temporary, until we have progress indication
# and output capture (next week :p)
console output

script
    . /etc/default/rcS    [color=red] -->>olha ele acessando nosso arquivo anterior[/color]
    [ -f /forcefsck ] && force_fsck="--force-fsck"     [color=red]-->>acho que está passando um parametro ao fsck[/color]
    [ "$FSCKFIX" = "yes" ] && fsck_fix="--fsck-fix"

    # set $LANG so that messages appearing in plymouth are translated
    if [ -r /etc/default/locale ]; then
        . /etc/default/locale
        export LANG LANGUAGE LC_MESSAGES LC_ALL
    fi

    exec mountall --daemon $force_fsck $fsck_fix [color=red] -->> acho que é aqui que ele executa[/color]
end script

post-stop script
    rm -f /forcefsck 2>dev/null || true
end script

Talvez se voce editar uma dessas linhas consiga algo.
Gentoo — Controle total sobre o sistema.

rudregues

Achei um link que o cara quer rodar um script antes de montar a raiz, parece que tem que editar o inird http://h30499.www3.hp.com/t5/General/Easiest-method-to-run-shell-script-before-mounting-root-fs/td-p/4793289 mas num explica muito bem não...

Achei outro link, uma wiki bem organizada do Gentoo http://wiki.gentoo.org/wiki/Early_Userspace_Mounting me parece nortear melhor pois ao decorrer dela, aparece um script que monta a "raiz temporária", checa o disco e monta a "raiz real", olha um trecho que achei importante:
check_filesystem() {
    # most of code coming from /etc/init.d/fsck

    local fsck_opts= check_extra= RC_UNAME=$(uname -s)

    # FIXME : get_bootparam forcefsck
    if [ -e /forcefsck ]; then
        fsck_opts="$fsck_opts -f"
        check_extra="(check forced)"
    fi

    echo "Checking local filesystem $check_extra : $1"

    if [ "$RC_UNAME" = Linux ]; then
        fsck_opts="$fsck_opts -C0 -T"
    fi

Dá pra ver que tem opções de checagem do disco ao longo do código.
Gentoo — Controle total sobre o sistema.

galactus

Rapazes. Se vocês conseguirem esse feito vai ser do Baralho!

Agora, testem isso aí num sistema que não seja de produção né!
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.