嘉定都市网

标题: 关于LINUX下的内存释放问题? [打印本页]

作者: flytosea    时间: 2004-3-1 09:57
标题: 关于LINUX下的内存释放问题?
我用TOP命令看到内存USED的容量越来越大,而且不会自动缩减,刚开始是使用了99M左右,一天以后就增长到192M左右,我开了三个服务,一个是SQUID,一个是HTTP,一个是FTP,还有一些系统进程。

请问如何,象在WINDOWS中一样,把不使用的一些释放出来,有相关软件吗?

我网上查了一下,好象没有什么资料可看
作者: terry    时间: 2004-3-1 10:33
linux和windows内存管理机制不一样的,所以似乎不能由用户自己来释放内存...
作者: flytosea    时间: 2004-3-1 10:51
哦,是这样啊

我看网上讲的,用PS杀进程可以释放,但是我看了一下,没有那么多进程使用那么多内存啊,是什么东西占用了呢?

会不会和HTTP进程有关?
作者: johnlee    时间: 2004-3-1 12:27
不知道LINUX的TOP是否能查看各个进程使用的内存量,一般杀掉进程后,该进程占用的内存就会释放出来,你可以多注意一下在跑的进程
建议你把SWAP开大一点,一般是内存的2倍以上,这样有助于系统资源的合理利用。
作者: flytosea    时间: 2004-3-1 12:54

  1:13pm  up 1 day,  2:09,  1 user,  load average: 0.00, 0.00, 0.00
46 processes: 45 sleeping, 1 running, 0 zombie, 0 stopped
CPU states:  0.0% user,  0.0% system,  0.1% nice,  8.4% idle
Mem:   255320K av,  250688K used,    4632K free,      40K shrd,    5476K buff
Swap:  570296K av,   13192K used,  557104K free                  133680K cached

  PID USER     PRI  NI  SIZE  RSS SHARE STAT %CPU %MEM  CTIME COMMAND
    1 root       8   0   124   84    84 S     0.0  0.0   3:23 init
    2 root       9   0     0    0     0 SW    0.0  0.0   0:00 keventd
    3 root       9   0     0    0     0 SW    0.0  0.0   0:00 kapm-idled
    4 root      19  19     0    0     0 SWN   0.0  0.0   0:00 ksoftirqd_CPU0
    5 root       9   0     0    0     0 SW    0.0  0.0   0:00 kswapd
    6 root       9   0     0    0     0 SW    0.0  0.0   0:00 kreclaimd
    7 root       9   0     0    0     0 SW    0.0  0.0   0:00 bdflush
    8 root       9   0     0    0     0 SW    0.0  0.0   0:00 kupdated
    9 root      -1 -20     0    0     0 SW<   0.0  0.0   0:00 mdrecoveryd
   65 root       9   0  1596  416   112 S     0.0  0.1   0:00 minilogd
   73 root       9   0     0    0     0 SW    0.0  0.0   0:00 khubd
  453 root       9   0     0    0     0 SW    0.0  0.0   0:00 eth0
  619 root       9   0   136   48    48 S     0.0  0.0   0:00 automount
  703 nobody     9   0   336  164   116 S     0.0  0.0   0:02 proftpd
  732 root       8   0   196  124   104 S     0.0  0.0   1:02 crond
  746 root       9   0   184    4     4 S     0.0  0.0   0:00 squid
  748 nobody    15   0  8140 6532  4604 S     0.0  2.5   0:01 squid
  749 nobody     9   0   736  728   676 S     0.0  0.2   0:00 dnsserver
  750 nobody     9   0   716  708   672 S     0.0  0.2   0:00 dnsserver
  751 nobody     9   0    80    4     4 S     0.0  0.0   0:00 dnsserver
  752 nobody     9   0    80    4     4 S     0.0  0.0   0:00 dnsserver
  753 nobody     9   0   212  188   180 S     0.0  0.0   0:00 unlinkd
  754 root       8   0   872  100   100 S     0.0  0.0   0:00 httpd
  756 root       9   0   240    4     4 S     0.0  0.0   0:00 login
  757 root       9   0    64    4     4 S     0.0  0.0   0:00 mingetty
  758 root       9   0    64    4     4 S     0.0  0.0   0:00 mingetty
  759 root       9   0    64    4     4 S     0.0  0.0   0:00 mingetty
  760 root       9   0    64    4     4 S     0.0  0.0   0:00 mingetty
  761 root       9   0    64    4     4 S     0.0  0.0   0:00 mingetty
  767 nobody     9   0  2344 1976  1916 S     0.0  0.7   0:00 httpd
  769 root      16   0   772  576   524 S     0.0  0.2   0:01 bash
  801 nobody     9   0  1468  736   736 S     0.0  0.2   0:00 httpd
  878 nobody    10   0  2376 2020  1852 S     0.0  0.7   0:00 httpd
  879 nobody     9   0  1644 1044  1044 S     0.0  0.4   0:00 httpd
  885 nobody     9   0  1680 1112  1108 S     0.0  0.4   0:00 httpd
  887 nobody     9   0  1572  992   980 S     0.0  0.3   0:00 httpd
  901 nobody     9   0  3232 2904  2036 S     0.0  1.1   0:00 httpd
  905 nobody     9   0  3304 2980  2060 S     0.0  1.1   0:00 httpd
  907 nobody     9   0  3272 2940  2060 S     0.0  1.1   0:00 httpd
  908 nobody     9   0  1380  760   756 S     0.0  0.2   0:00 httpd
  976 root       9   0   128    4     4 S     0.0  0.0   0:00 crond
  977 root       9   0   144    4     4 S     0.0  0.0   0:02 run-parts
1112 root       9   0   192  152   152 S     0.0  0.0   0:00 awk
1122 root       9   0   392    4     4 S     0.0  0.0   0:00 medusa-searchd
1125 root      19  19   388    4     4 S N   0.0  0.0   0:00 medusa-indexd
1269 root      16   0  1132 1128   848 R     0.0  0.4   0:00 top


       



此贴由 flytosea 在 2004-03-01 13:11:39 最后编辑
作者: johnlee    时间: 2004-3-1 13:25
你可以看到,下面httpd的很多进程,虽然每个占的都不多,但个数却很多,慢慢的就将内存用光了
作者: terry    时间: 2004-3-1 21:49
把一些没用的服务都关掉,那些daemon都会耗资源的。
作者: flytosea    时间: 2004-3-2 08:16
谢谢各位了,不过我终于找到了一个不算正规的答案:
在LINUXEDEN的论坛中,有人说:

linux把空闲的物理内存都用做了缓存(这也是linux不能非法关机的原因),所以看起来物理内存都用完了,可以不用管它,只要没有占用SWAP就行,正常情况下只会占用一点SWAP。


如果真的是这样的话,我可以放心一点,因为我的SWAP用得不多。

大家说说,这个说法有根据吗?

很巧,无意中看到的。

另:一开始,我就用NTSYSV关了很多服务了,基本都关了,还剩4,5个了,有些什么NETWORK的服务不敢关啊。

HTTP是网页服务,是按最“默认的”方式配置的,肯定是不优化的,是准备要好好优化一下了。

最后,再次感谢大家费神了!!!!
作者: a3linux    时间: 2004-3-2 10:27
很正确,linux下看到物理内存用完那是很正常的,
只要swap还没有很高的使用率系统应该不会有问题的!

至于内存释放与否,以我的经验,除了
X程序之外,其他程序好像很少有内存方面的问题,所以不用手工
去kill他们来释放内存!

建议用作Server的linux不要安装或启动X server!

作者: flytosea    时间: 2004-3-2 11:48
建议用作Server的linux不要安装或启动X server!

我现在就只启动CONSOLE了,但是以前对配置不熟,经常要上网看信息,所以装了X方便一点,但是真的太耗内存.
作者: a3linux    时间: 2004-3-2 13:39
我都是用另外一台机器(pc机)远程控制server的!
用SSH,千万别用TELNET什么的!
作者: terry    时间: 2004-3-2 13:47
真正的老鸟都是黑白屏下的高手,可惜我功夫不到家,呵呵..
作者: flytosea    时间: 2004-3-2 14:58
原文由 a3linux 在 2004-03-02 13:39:18  发表
我都是用另外一台机器(pc机)远程控制server的!
用SSH,千万别用TELNET什么的!


这样是最好,但是本人对用户权限管理不精,ROOT权限又不好乱用,所以只试验了一下TELNET,而且没用多久就关了,其它没用过

LINUX要学的真太多了,向大家学习
作者: a3linux    时间: 2004-3-2 15:11
相互学习,共同探讨吧!
大家都是嘉定的吧,有机会机会多交流交流!




欢迎光临 嘉定都市网 (http://www.jiading.com.cn/) Powered by Discuz! X3.1