有一个问题,我不能在谷歌find。
我有很多Linux的盒子主要是SLES或openSUSE,不同的版本和内核。 在他们中的一些我面临缓慢的oracle事务问题。 这是时间问题,当我login框时,我看到在内核函数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 - --
所以我认为盒子磁盘缓冲区内存不足,但memry是好的
total used free shared buffers cached Mem: 4149084 3994552 154532 0 0 2424328 -/+ buffers/cache: 1570224 2578860 Swap: 3148700 750696 2398004
我认为这是问题,缓冲区是零,我们必须直接写入磁盘,但为什么缓冲区为零? – 我试图谷歌它,什么都找不到 – 任何人都可以帮忙?
Oracle DBMS绕过OS的缓冲区并直接写入块设备。 我不认为你的缓慢交易是由于没有使用缓冲区造成的。
free给你多less内核正在使用的缓冲区, 而不是有多less可用 。 从整个内存中取出内核缓冲区 – 所以在这种情况下,内核使用0/4149084可用内存作为缓冲区。 我不认为这是你的问题,并会创build一个新的问题,试图找出为什么你遇到与Oracle相关的问题。