12.4.1 内存泄漏

来源:互联网 发布:手办淘宝店 编辑:程序博客网 时间:2024/04/28 20:34

12.4.1  内存泄漏

内存泄漏是Linux系统的应用程序中一个较常见的影响系统性能的问题,这往往是因为应用程序的开发人员疏忽所导致的。一般情况下,应用程序从堆中分配内存,使用完后应该调用freedelete释放该内存块。如果开发人员没有在代码中进行该步操作,那么这块内存就不能被再次使用,也就是说这块内存泄漏了。如果这种问题持续出现,那么被泄漏的内存就会越来越多,最终导致系统所有内存都被耗尽,这将会导致严重的后果,系统将无法正常运行。为此,用户可以使用pskill命令查看进程的内存使用情况和进行回收,假设系统中的进程情况如下所示。

 

# ps aux

USER PID %CPU %MEM     VSZ RSS TTY  STAT START  TIME COMMAND

root 5754  0.0  5.0  217548  25548 ?  Sl   13:01  0:03 java -Djava.util.logging.manager  //Java进程占用系统内存的5%

sam   6729  0.0  4.6  105312  23660  ?    S   13:48 0:02 gedit file:///media//command.
                                                  tx
t

sam  6378  0.0  4.2  40532   21572  ?    S   13:02 0:00 /usr/bin/python /usr/bin/sealert

sam   6327  0.0  4.0  132472  20652  ?    Ss  13:02 0:02 nautilus --no-default

sam   6351  0.0  3.9  37664   20152  ?    Ss  13:02 0:00 /usr/bin/python-tt/usr/bin/puplet

sam   6448  0.9  3.6  95524   18548  ?    S   13:06 1:50 gnome-system-monitor

sam   6469  0.0  3.5  127196  17836  ?    Sl  13:18 0:04 gnome-terminal

sam   6325  0.0  3.4  95848   17436  ?    Ss  13:02 0:01 gnome-panel --sm-client-id

root  6156  0.9  2.7  22532   13840  tty7  Ss+ 13:01 1:48 /usr/bin/Xorg :0 -br -audit

 

如果要回收java -Djava.util.logging.manager进程的内存的话,使用命令:

 

kill -9 5754

 

进程将会被终止,同时它所占用的内存也会被系统所回收。

原创粉丝点击