Der Pufferspeicher des Linux-Kernels ist Null

Der Pufferspeicher des Linux-Kernels ist Null

Es gibt eine Frage, die ich bei Google nicht finden kann.

Ich habe viele Linux-Boxen, meist mit SLES oder openSUSE, mit verschiedenen Versionen und Kerneln. Auf einigen davon hatte ich Probleme mit langsamen Oracle-Transaktionen. Das ist von Zeit zu Zeit ein Problem und wenn ich mich dann bei der Box anmelde, sehe ich, dass Oracle in der Kernelfunktion sync_page blockiert ist.

# 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   -
--

also ich denke, dass der Box der Speicher für die Festplattenpuffer ausgeht, aber der Speicher ist in Ordnung

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

ich denke, das ist das Problem, der Puffer ist Null und wir müssen direkt auf die Festplatte schreiben, aber warum ist der Puffer Null?– ich habe versucht, es zu googeln und nichts gefunden – kann jemand helfen?

Antwort1

Das Oracle DBMS umgeht die Puffer des Betriebssystems und schreibt direkt auf das Blockgerät. Ich glaube nicht, dass Ihre langsamen Transaktionen dadurch verursacht werden, dass keine Puffer verwendet werden.

Antwort2

freegibt an, wie viel Puffer der Kernel nutzt,nicht wie viel verfügbar ist. Kernel-Puffer werden aus dem Gesamtspeicher entnommen – in diesem Fall verwendet Ihr Kernel also 0/4149084 verfügbaren Speicher für Puffer. Ich würde das nicht als Ihr Problem betrachten und eine neue Frage erstellen, um herauszufinden, warum Sie Oracle-bezogene Probleme haben.

verwandte Informationen