嘉定都市网
标题:
关于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