一个关于Unix内存管理的问题

吃土的汉子 发布于 2013/05/03 15:23
阅读 282
收藏 1

先前问了一个关于Solaris机器上进程sleep的问题,程序运行近一个小时后就进入sleep状态,而我所运行的程序内部是不存在sleep语句之类的东西的。

我刚刚看了一下内存,似乎是由于内存资源问题:

top命令:

load averages:  0.04,  0.04,  0.03                                     01:30:45
89 processes:  88 sleeping, 1 on cpu
CPU states:     % idle,     % user,     % kernel,     % iowait,     % swap
Memory: 64G real, 3854M free, 54G swap in use, 235M swap free


   PID USERNAME THR PRI NICE  SIZE   RES STATE    TIME    CPU COMMAND
   598 noaccess  18  59    0  135M   88M sleep   61:39  0.00% java
   462 root       2  59    0 8896K 5856K sleep   47:59  0.00% automountd
  4501 visitor       1  59    0   39G   39G sleep   46:18  0.00% MSO

其中 PID为4501的MSO即是我所运行的程序。但是根据上面的信息,似乎是64G物理内存还有3.8G可,top列表中只有我的MSO占用了G级别的内存,难道说MSO请求一个超过剩余内存数的内存导致sleep吗?

我的另一个问题是:

MSO这个进程已经在sleep状态,那么它所占用的内存此时应该是被放到swap了,还是仍旧留在内存里?


加载中
返回顶部
顶部