2010-12-27 12 views
2

Googleで見つけられないqestionがあります。Linuxのカーネルバッファメモリがゼロです

多くのLinuxボックスには、ほとんどがSLESまたはopenSUSE、異なるバージョンとカーネルがあります。 それらの中には、遅いoracleトランザクションの問題に直面していました。時間の問題にそれは時間と私はOracleはカーネル関数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 - 
-- 

はので、私はボックスは、ディスク・バッファ用のメモリが不足していると思いますが

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

私はこれが問題だと思います。バッファはゼロで、ディスクに直接書き込む必要がありますが、なぜバッファがゼロであるのですか?私はそれをgoogleにしようとしていますが、誰も助けてくれませんか?

UPD

[email protected]erver:~> uname -a 
Linux Billing-server 2.6.18.2-34-bigsmp #1 SMP Mon Nov 27 11:46:27 UTC 2006 i686 i686 i386 GNU/Linux 
+1

サーバーフォールトでこれをリクエストしてください。ここではありません。 – wnoise

+0

'sync_page'はシステムコールではありません。あなたの場合、ディスクはあなたの動作速度を制限します。 – user502515

+0

私はディスクが自分のスピードを制限していることを理解しています。しかし、カーネルがなぜそれをバッファリングしていないのですか? – flashvoid

答えて

2

Oracle Databaseでは、カーネルないは、そのディスクアクセスをバッファリングすることを特に要求するO_DIRECTフラグを使用しています - オラクルは、独自のバッファリングを行います。

あなたの結果は、使用可能なディスク帯域幅が飽和していることを示しています。

+0

でも、他のデーモンはどうですか? ログを大量にログするzabbix_proxyとそのデータベース - O_DIRECTは使用しませんが、多くの場合でもまだバッファは使用されません。 – flashvoid

関連する問題