
いつもお世話になります。
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
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
>上記となり、恐らくoracleがメモリ使用量を圧迫し、Swap領域も逼迫した場合にサーバ処理の
応答が無くなると推測しています。
このような状況になってしまうSQL処理があるのでしょうか?
だとしたらそのSQLのチューニングを行うのがベストだと思います。
OSからの監視ツールではなく、oracleの監視ツール(TOPSESSION等)
を使用してみてはどうでしょうか。
返信ありがとうございました。
97%となってしまうときもあれば、普段は40%のメモリ使用量で安定
しているときもあります。原因が分からないのが困りものですが・・・。
規模の大きなWebアプリケーションのため、全てを調査となると、もう
本当に不可能に近いくらいの時間がかかってしまいます。
なぜか、このサーバだけ発生するんですよね・・・。
監視ツール Oracle Top Sessions というものがあるのですね。
調べてみたいと思います。ありがとうございました。
No.2
- 回答日時:
うーん、スラッシングかも。
何か重たい処理を実行したときに、ディスクとCPUの利用率をグラフにすると、きれいに上下に波うってると思います。
複数インスタンスが稼動してるようですが、DBそのもののメモリ使用量をさげても根本的な解決にはならないきがしますので、
shared_pool_size = 524288000
この値を下げると良いとかは、ちょっといえませんね・・・
メモリ追加か、DBインスタンスを他に移すとかが良いのでは。
この回答への補足
返信ありがとうございました。
複数インスタンスは起動していないようでした。
3日後に再度同コマンドを実行し、oracle のメモリ使用率を全て合計したところ42.4%程となっており、使用率が下がっていました。にも関わらず、メモリ 2073296K のうち、1985032K のメモリを消費しており・・・謎です。
topコマンドで調べたところ(Shift + M でメモリ使用順としました)
---------------------------------------------------------------------------
9:11pm up 3 days, 8:12, 1 user, load average: 0.95, 0.38, 0.14
62 processes: 60 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 0.0% user, 50.8% system, 0.0% nice, 49.1% idle
Mem: 2073296K av, 1985032K used, 88264K free, 907912K shrd, 42668K buff
Swap: 2097136K av, 2036K used, 2095100K free 885768K cached
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
1986 oracle 0 0 510M 510M 509M S 289M 0.0 25.2 5:26 oracle
1688 oracle 0 0 92608 90M 91348 S 79M 0.0 4.4 0:37 oracle
1677 oracle 0 0 86280 84M 84556 S 60M 0.0 4.1 0:48 oracle
848 oracle 0 0 63232 61M 62032 S 60M 0.0 3.0 0:05 oracle
854 oracle 0 0 43048 41M 42580 S 36M 0.0 2.0 0:03 oracle
8062 oracle 0 0 23544 22M 22632 S 8964 0.0 1.1 0:00 oracle
8601 oracle 0 0 20316 19M 19332 S 12M 0.0 0.9 0:02 oracle
852 oracle 0 0 11244 10M 10796 S 9.8M 0.0 0.5 0:27 oracle
867 oracle 0 0 7564 7420 6952 S 3684 0.0 0.3 0:00 oracle
8066 oracle 0 0 7116 7116 6544 S 816 0.0 0.3 0:00 oracle
---------------------------------------------------------------------------
※10件のみとしました
以下は Shift + M を押下せず、topコマンドをそのまま実行
---------------------------------------------------------------------------
9:12pm up 3 days, 8:13, 1 user, load average: 1.05, 0.49, 0.19
62 processes: 60 sleeping, 2 running, 0 zombie, 0 stopped
CPU states: 0.0% user, 50.8% system, 0.0% nice, 49.1% idle
Mem: 2073296K av, 1985060K used, 88236K free, 907912K shrd, 42684K buff
Swap: 2097136K av, 2036K used, 2095100K free 885768K cached
PID USER PRI NI SIZE RSS SHARE STAT LIB %CPU %MEM TIME COMMAND
648 root 0 0 732 680 580 R 0 99.9 0.0 1172m dpteng
8633 oracle 0 0 868 868 668 R 0 1.7 0.0 0:00 top
1 root 0 0 472 472 400 S 0 0.0 0.0 0:06 init
---------------------------------------------------------------------------
※3件のみとしました
なお、init.oraの編集はしないことにします。
/usr/dpt/dpteng(不明)が99.9%CPUを消費しているのも関係あるかもしれませんが、これも怪しいかも・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
データを削除しても表領域の使用率が減りません
Oracle
-
新規表領域の作成について
Oracle
-
SQLローダーCSV取込で、囲み文字がデータ中に入っている場合について
Oracle
-
-
4
SIDとSERVICE_NAMEの違いとは?
Oracle
-
5
ORA-01013のエラーについて経験のある方お願いします。
Oracle
-
6
不明なコマンドです(FROM")。行の残りは無視されました。 のエラー"
Oracle
-
7
突然オラクルへ接続できなくなりました
Oracle
-
8
datapumpの実行方法について
Oracle
-
9
win10で1つのフォルダ内に保存できるファイル数
ドライブ・ストレージ
-
10
Oracleで流したSQLのログを取得できますか?
Oracle
-
11
Data Pump で大量データインポートの際のUNDO表領域、TEMP表領域不足エラー解消法のついて
Oracle
-
12
CASE文のエラーについて
Oracle
-
13
Oracleでの文字列連結サイズの上限
Oracle
-
14
PL/SQLで@ファイル名が反応しません
Oracle
-
15
Oracle10gの起動を止めたいのです。
Oracle
-
16
selectした結果の余計な余白を取るにはどうしたらよいのでしょうか
Oracle
-
17
表領域の作成について
Oracle
-
18
SELECT 文 GROUP での1件目を取得
SQL Server
-
19
CloseとDisposeの違い
Visual Basic(VBA)
-
20
XCOPYでネットワーク越しにコピーすると、「無効なドライブ指定です」と表示される
その他(プログラミング・Web制作)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DB2で SQL1032N start databas...
-
oracleのメモリ使用量が97%ほど...
-
OracleDBConsoleorclのサービス...
-
SIDとSERVICE_NAMEの違いとは?
-
「ORA-12637」エラーでORACLEに...
-
.NET Frameworkがコントロール...
-
ORA-12170のエラーについて
-
データソース名および指定され...
-
CloverをインストールしたUSBメ...
-
事務コンのデータ移行
-
QNDを使うとクライアント側の情...
-
正しいSQLなのに「ORA-00936: ...
-
Oracle11g SQLPlusログインにつ...
-
OraOps10.dllのエラーについて
-
突然オラクルへ接続できなくな...
-
ORAー12560:TNS:protocol adap...
-
SQL 全角半角混在の文字列から...
-
oracleの直接接続のクライアン...
-
異なる文字コードの環境にイン...
-
レコードに改行コードが含まれ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DB2で SQL1032N start databas...
-
oracleのメモリ使用量が97%ほど...
-
SQLServer2005上の別DBからテ...
-
E-RモデリングとUML
-
クラスタリングとレプリケーシ...
-
OracleDBConsoleorclのサービス...
-
SIDってなんですか?
-
インスタンス、ノード、ターゲ...
-
SQLServer2005 リンクサーバー...
-
MS SQL2005での接続エラー
-
SQL Server 2005(2008)とVB.net...
-
Windows2000でのOSシャットダウ...
-
Oracle 8i のアンストール方法
-
SQLSERVER データインポート
-
db2_installコマンドについて
-
SQLServer2000と7.0の共存
-
SQLサーバーへの接続について
-
SQL Server のシャットダウンの...
-
Sql Server 2005 でlocalにサー...
-
SQLサーバーの停止。
おすすめ情報