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
free
gibt 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.