Por que o sistema de arquivos EXT4 é montado com o tempo relatime e preguiçoso?

5

Estou executando o Debian / Testing, com o kernel 4.4:

# uname -a
Linux shaula 4.4.0-1-amd64 #1 SMP Debian 4.4.6-1 (2016-03-17) x86_64 GNU/Linux

Por isso, quero usar a opção lazytime mount, e é por isso que coloco o seguinte no meu /etc/fstab :

# grep vg_crypt-root /etc/fstab 
/dev/mapper/vg_crypt-root   /   ext4   lazytime,errors=remount-ro   0   1

No entanto, agora o sistema de arquivos parece estar montado com ambos relatime e lazytime :

# grep vg_crypt-root /etc/mtab 
/dev/mapper/vg_crypt-root / ext4 rw,lazytime,relatime,errors=remount-ro,data=ordered 0 0

Como isso pode ser?

    
por andreas-h 16.04.2016 / 10:36

1 resposta

7

Boas notícias: é esperado.

The lazytime flag is independent of strictatime/relatime/noatime. And the default is relatime. So when you replaced noatime with lazytime, it's not surprising that you saw the relatime mount option being set.

- Ted Ts'o

Infelizmente isso não explica o que isso significa.

Uma leitura literal da página do manual sugere que o relatime suprime ambas as atualizações na memória e as gravações em disco. O preguiçoso apenas suprime gravações em disco (e se aplica tanto a mtime quanto a atime). Isso faz sentido para mim, dadas as discussões que levaram à implementação da preguiça. IOW seria muito fácil escrever um teste para o relatime. Mas o efeito de preguiçoso é apenas visível se você observar as gravações em disco ou testar o que acontece com os desligamentos não limpos.

Pessoalmente, o efeito de lazytime no mtime soa um pouco estranho. Talvez seja uma boa otimização para sistemas com alto tempo de atividade, mas eu não sei sobre o desktop médio ... E hoje em dia é um laptop; nós não devemos ser tão entusiasmados com o comportamento indefinido ou parcialmente definido no powerfail. É ainda mais especial se você considerar sistemas de arquivos copy-on-write como o btrfs; o "inode" provavelmente será atualizado mesmo quando o tamanho do arquivo não é alterado. Por contraste relatime é adorável e determinista.

E a otimização do mtime só parece ser útil se você gravar em um grande número de arquivos que não mudam de tamanho. Eu não tenho certeza se há um benchmark comum para isso. Alguma carga de trabalho de banco de dados não muito trivial, suponho.

Sério, Ted, por que não conseguimos lazyatime ?

    
por 16.04.2016 / 11:40

Tags