..:: Rodrigo (-_-) Machado ::.. escreveu:
> 
>     >
>     Não. Isto é a cache do disco que está "mentindo" para o SO que gravou os
>     dados no disco. Experimente desabilitar a cache do disco.
> 
> 
> Deixa eu ver se entendi então,
> nos meus servidores linux está habilitado o cache do disco? E este está
> mentindo pra mim, quer dizer que o postgresql pensa que gravou o WAL mas
> o SO tentando administrar as E/S do disco mantem estes dados em cache?
> 
Sim, o SO "mente" que os dados estão gravados no disco mas na verdade
eles estão na cache do disco (se você não tem discos com bateria pode
correr o risco de perder dados -- por isso a primeira coisa a fazer
quando se utiliza discos sem bateria é desabilitar a cache de disco para
garantir que os dados vão estar *realmente* no disco). Ele faz isso para
aumentar a performance de I/O diminuindo assim a confiabilidade do
processo de gravação no disco.

> Entendi bem?
> 
> Se for assim, tens alguma pista por onde posso começar a investigar para
> desabilitar este cache pra fazer alguns testes ?
> 
No Linux basta utilizar o hdparm.

foobar ~ # hdparm -W /dev/hda

/dev/hda:
 write-caching =  1 (on)
foobar ~ # hdparm -W 0 /dev/hda

/dev/hda:
 setting drive write-caching to 0 (off)
 write-caching =  0 (off)


No Windows vá em Gerenciador de Dispositivos e clique com botão direito
no disco que quer desabilitar a cache e escolha Propriedades; na aba
Propriedades vai ter a opção para desabilitar a cache do disco. [1]

> E se for mesmo o cache, o que tem a ver o cache de disco no windows ele
> atualiza o arquivo quando eu fecho a conexão com o servidor.
Eu não sou guru em "Windows Internals" mas o ato de escrever os dados da
cache para o disco (aka flush) no Windows está associado com o tempo que
aqueles dados foram acessados [2]; dados acessados frequentemente como
os arquivos do WAL tem propensão de permanecer na cache.

> pois se fosse isto, mesmo eu fechando a conexão, o SO não saberia disto,
                                                    ^^^^^^^^^^^^^^^^
Como não? É o SO que gerencia os processos!


[1] http://support.microsoft.com/kb/259716/en-us/
[2] http://msdn.microsoft.com/en-us/library/aa364218(VS.85).aspx


-- 
  Euler Taveira de Oliveira
  http://www.timbira.com/
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a