Há uma pergunta que não consigo encontrar no Google.
Eu tenho muitas caixas Linux principalmente com SLES ou openSUSE, diferentes versões e kernels. Em alguns deles, enfrentei problemas de transações oracle lentas. É um problema de vez em quando e quando eu entro na caixa naquele momento, vejo que o oracle bloqueou a 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 memry está bem
total used free shared buffers cached
Mem: 4149084 3994552 154532 0 0 2424328
-/+ buffers/cache: 1570224 2578860
Swap: 3148700 750696 2398004
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 encontro nada - alguém pode ajudar?
Responder1
O Oracle DBMS ignora os buffers do sistema operacional e grava diretamente no dispositivo de bloco. Não acho que suas transações lentas sejam causadas por não haver buffers em uso.
Responder2
free
está fornecendo quanto do buffer o kernel está usando,não quanto está disponível. Os buffers do 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á enfrentando problemas relacionados ao Oracle.