我们有一个AIX+Oracle 系统,内存占用量越来越大,,本来32G内存,刚启动的时候剩余是15G,,现在两个多月过去了,可用内存还剩6G,,请问下怎么查原因?
首先按我的经验来说应该没什么事
具体的原理没法一句两句说明白,检查思路简单的说有两个点,希望你能理解:
主要是AIX使用内存的机制
操作系统层面(AIX):内存尽可能的一次性分配给程序使用;但由于程序的启动是由先后顺序和条件限制的,随着时间的推移和条件的变化以及操作系统对内存的控制和调整,内存会被逐渐的申请掉,然后基本保持在一个比较稳定的使用率。
在AIX的层面看内存是否够用,不是看剩余的可用内存有多少,一般有经验的人员主要是看是否产生了大量的page动作(也叫内存换页,可具体找些资料来看);
应用程序层面(oracle等程序):申请内存+释放内存;这个解释并不完全正确,只是为了你好理解,打个比方。
程序活动时申请内存,程序用完时释放内存;如果在释放内存上,如果控制不好的话或者因为某些原因没有释放,就会出现收支不平衡,反映在内存用量上就是可用内存越来越少,这个也叫做内存泄漏。在实际的应用过程中,内存泄漏是很难避免的,区别是量级的大小,小的量级大家也就视作正常,一天泄漏个几K,一年也没有什么事。
对于你目前遇到的情况,建议多观察,区分开在哪个层面出了问题,才能确定你问题所在;
追问问题是之前出现过问题,到3、4个月的时候系统就死掉了。卡住一点都动不了了,远程也连不进去,还要去机房硬性重启。
追答感觉上确实可能是oracle有问题,估计是开发做得不好,导致内存泄露,不过目前还不确定,需要进一步确认。
你能做一段时间的记录么?
操作系统目前先可以用topas或者vmstat看看具体的paging状态;
ORACLE这边需要定期查看一下数据库的性能视图;
把两类相关数据都记录一下,便于对比分析。
最好是做个一周左右
另外,系统hang住没有反应,远程telnet不了也可能不是真的down了。
以前好像在5L阶段经常出现,也有好多是由于终端未正确退出,终端数达到最大无法新建;可以通过更改参数和规范操作得到一些改善。
你telnet不了的时候,数据库停止了么?数据管理工具比方PL/Sql能连接不?
AIX+Oracle内存占用越来越大,在线等高手帮忙分析
在AIX的层面看内存是否够用,不是看剩余的可用内存有多少,一般有经验的人员主要是看是否产生了大量的page动作(也叫内存换页,可具体找些资料来看);应用程序层面(oracle等程序):申请内存+释放内存;这个解释并不完全正确,只是为了你好理解,打个比方。程序活动时申请内存,程序用完时释放内存;如果在...
请帮忙分析下oracle in AIX上的内存配置是否合理?minperm、max...
内存使用正常,PagingSpace占用不高,Java占用PagingSpace略高。有时候还是会卡?你需要收集检测到应用卡的时候的系统状况,然后才好分析。在你上面的图里,CPU使用率1%,是空闲状态或空闲时段,需要在繁忙时截取topas的状态才好分析性能问题。
请高手帮忙看看我在oracle中用imp导入命令的时候出现的问题
IBM AIX RISC System\/6000 Error: 28: No space left on device Additional information: -1 Additional information: 229376 然后以sys用户的sysdba权限登录报错无法写入审计文件,由此怀疑是否 oracle 系统文件所在的文件系统空间或者inode已满造成此问题。然后运行此命令查看此文件系统:df -m | grep ora...
在生产系统中使用Oracle EM对系统的性能有多大的影响
11g DB control 没什么影响,毕竟是一个轻量级的东西~但是11g 的 grid control有许多bug,AIX上agent有许多关于内存过大占用的bug
如何用nmon查看oracle占用的了多少内存
运行nmon,然后按键盘上的“T”,然后按 4 按内存占用大小排序,类推:[1=Basic 2=CPU 3=Perf 4=Size 5=I\/O 6=Cmds] (* 界面上有提示 *)命令行输入nmon:root..[\/] nmon --- x x N N M M OOOO N N For online help type: h ...