oracleのメモリ使用量が97%ほどに・・・減らしたいです
いつもお世話になります。
oracle8.1.7がインストールされている Linux サーバに関して、現在メモリ使用量が逼迫しているためか、
時々OSの処理が重くなり、応答が無くなる事が多々発生して困っています。
Database:Oracle 8.1.7 Enterprise Edition
Linux:RedHat Linux 6.2
freeコマンドで調べたところ、
---------------------------------------------------------------------------
[root@sample dir1]# free
total used free shared buffers cached
Mem: 2073296 1996752 76544 1575952 112904 813364
-/+ buffers/cache: 1070484 1002812
Swap: 2097136 2536 2094600
---------------------------------------------------------------------------
topコマンドで調べたところ(Shift + M でメモリ使用順としました)
---------------------------------------------------------------------------
6:05pm up 5:06, 2 users, load average: 0.22, 0.11, 0.10
69 processes: 66 sleeping, 1 running, 0 zombie, 2 stopped
CPU states: 17.3% user, 1.4% system, 0.0% nice, 81.1% idle
Mem: 2073296K av, 1996832K used, 76464K free, 2385012K shrd, 110684K buff
Swap: 2097136K av, 2632K used, 2094504K free 816100K cached
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
1672 oracle 0 0 848M 848M 847M S 604M 0.0 41.9 13:47 oracle
1710 oracle 4 0 458M 458M 456M S 445M 1.5 22.6 13:03 oracle
1767 oracle 6 0 350M 350M 348M S 337M 2.3 17.3 10:17 oracle
1764 oracle 6 0 347M 347M 342M S 331M 2.3 17.1 4:38 oracle
1915 oracle 16 0 84564 82M 80532 S 68M 29.2 4.0 0:59 oracle
1688 oracle 0 0 74804 72M 73592 S 71M 0.0 3.5 0:36 oracle
1677 oracle 0 0 62808 61M 61100 S 46M 0.0 3.0 0:44 oracle
848 oracle 0 0 39160 38M 37960 S 36M 0.0 1.8 0:01 oracle
854 oracle 0 0 30092 29M 29632 S 25M 0.0 1.4 0:01 oracle
852 oracle 0 0 14592 14M 14144 S 9.8M 0.0 0.7 0:02 oracle
---------------------------------------------------------------------------
※10件のみとしました
上記となり、恐らくoracleがメモリ使用量を圧迫し、Swap領域も逼迫した場合にサーバ処理の
応答が無くなると推測しています。
上記を改善するために、init.ora 内の以下の項目を編集しようと考えていますが、数値を決めかねています。
サーバがフリーズ状態(僅かながらもゆっくり動いている)原因について、
何でも結構ですので、アドバイスいただけたらと思います。よろしくお願いいたします。
open_cursors = 1000
max_enabled_roles = 30
db_block_buffers = 64000
shared_pool_size = 524288000
large_pool_size = 1048576
java_pool_size = 0
log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800
processes = 150
log_buffer = 532480
db_block_size = 8192
sort_area_size = 1048576
sort_area_retained_size = 1048576
お礼
なるほど。 またひとつ勉強になりました。 下の方のアドバイスも合わせてふたつ勉強になりました。 >Vectorに詰めるという方法はベストでしょうか。 そうなんです。 この手のことがよくわからないんです。 自分の実装方法が最善なのかどうか... この手の問題がおきたときに初めて気づくのですが、 経験をつまないとその辺のセンスって磨かれないですよね。 ありがとうございます。