找出最耗内存的进程,看是oracle还是其他进程。
检查一下oracle的SGA大小。
sql> show sga; //查看SGA的具体大小信息。
sql>show parameter sga_max_size //查看SGA最大值
sql> show parameter shared_pool //查看共享内存
sql>show parameter db_cache //查看数据缓存
优化数据库、关闭不必要的进程或者是扩内存。
应对物理内存使用率高方法一: 安装多一条物理内存。当然,这是解决问题的最根本最快的方法。2G内存现有来说,对于Win7也是刚刚好够用,等我们安装程序过多是必定会导致系统运行缓慢。如果可以的话,直接换成64位 *** 作系统
可以用topas,vmstat,nmon查看实时的内存使用情况,
lsps -s
lsps -a 查看虚拟内存/paging的使用情况。
或者使用svmon -G 查看物理内存的使用情况。
网上搜索一下AIX 性能调优或者AIX 性能监控,有很多相关的帖子,打好基础先。
问题不大。
虽然内存使用率一直很高,如百分之九十九,但实际上用于应用系统的计算型内存并不多,大部分内存都用到文件缓存上了,这部分内存是不释放的,这个现象很正常,并不是特别的问题。
AIX是IBM基于ATTUnixSystemV开发的一套类UNIX *** 作系统,运行在IBM专有的Power系列芯片设计的小型机硬件系统之上,它符合Opengroup的UNIX98行业标准,通过全面集成对32位和64位应用的并行运行支持,为这些应用提供了全面的可扩展性。
很多数据库软件在设置时,往往按照系统内存大小来分配,即便是不需要那么大的内存,也显示占用了,只有真正当内存占用过量时,就会调用pageing space空间,所以,简单的看AIX内存占用就往往看paging space的占用率,如果paging space超过80%了,那就说明出问题了,很有可能是某进程死循环,或“坏”进程过多,内存没得到释放。在这种情况下,建议一方面查找原因,一方面找机会重启数据库,甚至AIX系统吧,离宕机不远了。
1 内存查看可以用topas、nmon命令
2 很遗憾,vmstat是看不到内存使用率的,你看到的memory下的统计结果为系统当前的换页情况
3 物理内存使用率到了80%,即便你看到了100%,对于aix来说是没有什么影响的,aix有自己的内存自动管理机制,虚拟内存耗尽(对aix来说)才会产生恶劣的后果,比如系统挂起,所以你只需要立刻观察系统cpu的idle,wait,然后虚拟内存使用情况,如果结果合理可接受,那么可以认为系统没有问题
首先按我的经验来说应该没什么事
具体的原理没法一句两句说明白,检查思路简单的说有两个点,希望你能理解:
主要是AIX使用内存的机制
*** 作系统层面(AIX):内存尽可能的一次性分配给程序使用;但由于程序的启动是由先后顺序和条件限制的,随着时间的推移和条件的变化以及 *** 作系统对内存的控制和调整,内存会被逐渐的申请掉,然后基本保持在一个比较稳定的使用率。
在AIX的层面看内存是否够用,不是看剩余的可用内存有多少,一般有经验的人员主要是看是否产生了大量的page动作(也叫内存换页,可具体找些资料来看);
应用程序层面(oracle等程序):申请内存+释放内存;这个解释并不完全正确,只是为了你好理解,打个比方。
程序活动时申请内存,程序用完时释放内存;如果在释放内存上,如果控制不好的话或者因为某些原因没有释放,就会出现收支不平衡,反映在内存用量上就是可用内存越来越少,这个也叫做内存泄漏。在实际的应用过程中,内存泄漏是很难避免的,区别是量级的大小,小的量级大家也就视作正常,一天泄漏个几K,一年也没有什么事。
对于你目前遇到的情况,建议多观察,区分开在哪个层面出了问题,才能确定你问题所在;
可以用topas,vmstat,nmon查看实时的内存使用情况,
lsps
-s
lsps
-a
查看虚拟内存/paging的使用情况。
或者使用svmon
-g
查看物理内存的使用情况。
网上搜索一下aix
性能调优或者aix
性能监控,有很多相关的帖子,打好基础先。
以上就是关于aix内存占用达到100%,如何解决全部的内容,包括:aix内存占用达到100%,如何解决、AIX物理内存使用率高,但是找不到什么进程占用、如何查看AIX的内存利用率等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)