la memoria intermedia del kernel de Linux es cero

la memoria intermedia del kernel de Linux es cero

Hay una pregunta que no puedo encontrar en Google.

Tengo muchas máquinas Linux, principalmente con SLES u openSUSE, diferentes versiones y kernels. En algunos de ellos me enfrenté a un problema de transacciones lentas de Oracle. Es un problema de vez en cuando y cuando inicio sesión en el cuadro en ese momento veo que Oracle está bloqueado en la función del 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   -
--

Así que creo que ese cuadro se ha quedado sin memoria para los buffers de disco, pero la memoria está bien.

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

Creo que este es el problema, el buffer es cero y debemos escribir directamente en el disco, pero ¿Por qué el búfer es cero?- Intento buscarlo en Google y no encuentro nada. ¿Alguien puede ayudarme?

Respuesta1

El DBMS de Oracle omite los buffers del sistema operativo y escribe directamente en el dispositivo de bloque. No creo que sus transacciones lentas se deban a que no tiene buffers en uso.

Respuesta2

freele está dando la cantidad de buffer que está usando el kernel,no cuanto hay disponible. Los buffers del kernel se extraen de la memoria total; por lo tanto, en este caso, su kernel está usando 0/4149084 de memoria disponible para buffers. No consideraría que este sea su problema y crearía una nueva pregunta para intentar averiguar por qué tiene problemas relacionados con Oracle.

información relacionada