oracle数据库 ,内存+swap被占光, 急!

[复制链接]
查看11 | 回复5 | 2009-7-22 09:30:00 | 显示全部楼层 |阅读模式
环境:
两台主机 + turbolinux 的haserver+盘柜
主机ibm x330 内存256M +512M虚拟内存
os turbo linux
oracle版本 8.1.6
现象:系统启动后,运行20天左右会自动发生双机切换。
观察:1.top 查看, ()
mem一直只有6~7M 的空闲
刚启动时swap基本不占用,
双机切换前swap 被占光。
2 . ps -ef ,查看,
每个连接一般占用60M, 但不会超过60M,

oracle后台进程 smon, reco, snp0 ,snp1 snp2 ,snp3占用内存不断增加,双机切换前平均为40多M.

tnslsnr 占用最多,每天占用数量不断增加,直到swap + mem 被占光。
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
刚启动时:
Mem: 256040K av,251148K used,4892K free, 0K shrd,7104K buff
Swap:522104K av, 0K used,522104K free
119880K cached
PID USER PRINISIZERSS SHARE LC STAT %CPU %MEM TIME COMMAND
21391 oracle 4-26680 668043680 S < 0.02.6 0:00 oracle
21393 oracle 4-26736 673642800 S < 0.02.6 0:00 oracle
21395 oracle 4-26360 636041640 S < 0.02.4 0:00 oracle
21397 oracle 4-26036 603638560 S < 0.02.3 0:00 oracle
21399 oracle 4-2 1122810M 90080 S < 0.04.3 0:00 oracle
21401 oracle 4-28092 809258800 S < 0.03.1 0:00 oracle
21403 oracle 4-28572 857263400 S < 0.03.3 0:00 oracle
21405 oracle 4-2 100889.9M77760 S < 0.03.9 0:00 oracle
21407 oracle 4-26764 676445920 S < 0.02.6 0:00 oracle
21409 oracle 4-26720 672045560 S < 0.02.6 0:00 oracle
21411 oracle 4-25596 559634640 S < 0.02.1 0:00 oracle
21413 oracle 4-25856 585635960 S < 0.02.2 0:00 oracle
21437 oracle 4-26728 672418560 S < 0.02.6 0:00 tnslsnr
9天后:
Mem: 256040K av,248712K used,7328K free, 0K shrd,1040K buff
Swap:522104K av,245436K used,276668K free
167628K cached
PID USER PRINISIZERSS SHARE LC STAT %CPU %MEM TIME COMMAND
21391 oracle 4-26620 450843040 S < 0.0 1.7 0:00 oracle
21393 oracle 4-2 11052880886360 S < 0.0 3.4 0:07 oracle
21395 oracle 4-26384 434441880 S < 0.0 1.6 2:00 oracle
21397 oracle 4-26604 456043920 S < 0.0 1.7 0:02 oracle
21399 oracle 4-2 6084057M 586000 S < 0.0 22.9 0:12 oracle
21401 oracle 4-2 5570852M 535200 S < 0.0 20.9 0:00 oracle
21403 oracle 4-2 4904045M 468080 S < 0.0 18.3 0:00 oracle
21405 oracle 4-2 4072837M 384160 S < 0.0 15.0 0:00 oracle
21407 oracle 4-2 3841635M 362440 S < 0.0 14.2 0:00 oracle
21409 oracle 4-2 4758044M 453680 S < 0.0 17.7 0:00 oracle
21411 oracle 4-25592 352434640 S < 0.0 1.3 0:00 oracle
21413 oracle 4-25836 366435800 S < 0.0 1.4 0:00 oracle
21437 oracle 4-2201M27M 7160 S < 0.0 11.0 0:03 tnslsnr
6210 oracle 4-2 6035656M 582880 S < 0.0 22.7 0:10 oracle
ps -ef 查看
oracle 21391 10 Nov15 ?00:00:00 ora_pmon_orcl
oracle 21393 10 Nov15 ?00:00:07 ora_dbw0_orcl
oracle 21395 10 Nov15 ?00:02:00 ora_lgwr_orcl
oracle 21397 10 Nov15 ?00:00:02 ora_ckpt_orcl
oracle 21399 10 Nov15 ?00:00:12 ora_smon_orcl
oracle 21401 10 Nov15 ?00:00:00 ora_reco_orcl
oracle 21403 10 Nov15 ?00:00:00 ora_snp0_orcl
oracle 21405 10 Nov15 ?00:00:00 ora_snp1_orcl
oracle 21407 10 Nov15 ?00:00:00 ora_snp2_orcl
oracle 21409 10 Nov15 ?00:00:00 ora_snp3_orcl
oracle 21411 10 Nov15 ?00:00:00 ora_s000_orcl
oracle 21413 10 Nov15 ?00:00:00 ora_d000_orcl
oracle 21437 10 Nov15 ?00:00:03 /u01/app/oracle/product/8.1.6/bi
oracle6210 10 Nov18 ?00:00:10 oracleorcl (DESCRIPTION=(LOCAL=n
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
我的数据库参数文件为:
open_cursors = 100
max_enabled_roles = 30
db_block_buffers = 2048
shared_pool_size = 52428800
large_pool_size = 614400
java_pool_size = 20971520
log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800
processes = 50
log_buffer = 163840
db_block_size = 2048
job_queue_processes = 4
job_queue_interval = 60
distributed_transactions = 10
open_links = 4
mts_dispatchers = "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)"
compatible = "8.1.0"
sort_area_size = 65536
sort_area_retained_size = 65536

平时的并发的session 不多,不会超过20个的。
我是个数据库新手,这几天在论坛上看了一些有关的帖子,无奈阅历太浅, 还是搞不定啊, 还望各位高手指点, 看要怎么查找问题啊???
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
最初由 windchi 发布
[B]我的数据库参数文件为:
open_cursors = 100
max_enabled_roles = 30
db_block_buffers = 2048
shared_pool_size = 52428800
large_pool_size = 614400
java_pool_size = 20971520
log_checkpoint_interval = 10000
log_checkpoint_timeout = 1800
processes = 50
log_buffer = 163840
db_block_size = 2048
job_queue_processes = 4
job_queue_interval = 60
distributed_transactions = 10
open_links = 4
mts_dispatchers = "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)"
compatible = "8.1.0"
sort_area_size = 65536
sort_area_retained_size = 65536

平时的并发的session 不多,不会超过20个的。
我是个数据库新手,这几天在论坛上看了一些有关的帖子,无奈阅历太浅, 还是搞不定啊, 还望各位高手指点, 看要怎么查找问题啊??? [/B]

db_block_buffers = 2048
这也太小的可怜了吧,不交换才是怪事!
增大到65536

回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
非常感谢eygle版主的回帖。
65536会不会太大了, 我的mem 才256M,65536的话就是要占128, (db_block_size = 2048 ),
还有, 为什么单个的连接都要占60M, 这个和db_block_buffer有关吗,

tnslsnr 为什么会占用那么多的内存, 我的ora是不是 mts 的??
init文件中有一行
mts_dispatchers = "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)"
不知道是什么意思。。。

不好意思, 问题太多了,我都不知道怎么问好了,
回复

使用道具 举报

千问 | 2009-7-22 09:30:00 | 显示全部楼层
你的应用使用IIOP和数据库内的Java对象通信吗?如果没有通信
mts_dispatchers = "(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)"
这行是没有必要的。另外如果不使用Java功能的话在安装的时候最好不要选择安装数据库内的JVM,他会白白占用一部分内存。
一个连接占用60M左右的内存只是显示是这样,这部分内存中因该包含SGA,(因为SGA是共享内存,会加在每一个共享这段内存的process占用的内存中。)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行