memória buffer do kernel linux é zero

1

Há um qestion que não consigo encontrar no google.

Eu tenho muitas caixas de linux principalmente com SLES ou openSUSE, versões diferentes e kernels. Em alguns deles, enfrentei um problema lento nas transações oraculares. É hora de tempo problema e quando eu log in na caixa nesse momento eu vejo que o oracle bloqueado na função do kernel sync_page

# while :; do ps axo stat,pid,cmd,wchan | egrep '^D|^R'; echo --; sleep 5; done
D     3483 hald-addon-storage: polling ide_do_drive_cmd
Ds    4635 ora_dbw0_orcl               sync_page
Ds    4637 ora_lgwr_orcl               sync_page
Ds    4639 ora_ckpt_orcl               sync_page
D    11210 oracleorcl (LOCAL=NO)       sync_page
D    12457 [smtpd]                     sync_page
R+   12458 ps axo stat,pid,cmd,wchan   -
--
Ds    4635 ora_dbw0_orcl               sync_page
Ds    4637 ora_lgwr_orcl               sync_page
Ds    4639 ora_ckpt_orcl               sync_page
D    11210 oracleorcl (LOCAL=NO)       sync_page
R+   12501 ps axo stat,pid,cmd,wchan   -
--
Ds    4635 ora_dbw0_orcl               sync_page
Ds    4637 ora_lgwr_orcl               sync_page
Ds    4639 ora_ckpt_orcl               sync_page
D    11210 oracleorcl (LOCAL=NO)       sync_page
R+   12535 ps axo stat,pid,cmd,wchan   -
--
Ds    4635 ora_dbw0_orcl               sync_page
Ds    4637 ora_lgwr_orcl               sync_page
Ds    4639 ora_ckpt_orcl               sync_page
D    11210 oracleorcl (LOCAL=NO)       sync_page
R+   12570 ps axo stat,pid,cmd,wchan   -
--

então eu acho que essa caixa está sem memória para buffers de disco, mas a memry está bem

             total       used       free     shared    buffers     cached
Mem:       4149084    3994552     154532          0          0    2424328
-/+ buffers/cache:    1570224    2578860
Swap:      3148700     750696    2398004

eu acho que esse é o problema, o buffer é zero e devemos escrever diretamente no disco, mas por que o buffer é zero? - tento pesquisar no Google e não encontrar nada - alguém pode ajudar?

    
por flashvoid 27.12.2010 / 15:13

2 respostas

1

O Oracle DBMS ignora os buffers do sistema operacional e grava diretamente no dispositivo de bloco. Eu não acho que suas transações lentas são causadas por não ter buffers em uso.

    
por 27.12.2010 / 18:49
1

free está dando a você quanto do buffer o kernel está usando, não quanto está disponível . Os buffers de kernel são retirados da memória total - portanto, neste caso, seu kernel está usando 0/4149084 de memória disponível para buffers. Eu não consideraria esse o seu problema e criaria uma nova pergunta tentando descobrir por que você está tendo problemas relacionados à Oracle.

    
por 27.12.2010 / 19:03