a memória buffer do kernel linux é zero

a memória buffer do kernel linux é zero

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

freeestá 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.

informação relacionada