Chinaunix

标题: CENTOS 6.3 x86_64系统,可以设置自动清理垃圾进程吗 [打印本页]

作者: yanglei1979    时间: 2012-12-13 13:24
标题: CENTOS 6.3 x86_64系统,可以设置自动清理垃圾进程吗
本帖最后由 yanglei1979 于 2012-12-13 13:25 编辑

CENTOS 6.3 x86_64系统,可以设置自动清理垃圾进程吗


首先,在WHM的这个操作里面:
Home »Server Status »Service Status
可以看到内存占用状态,也就是:

System information
Server load         2.78 (8 CPUs)        
Memory Used         13.98% (545,512 of 3,902,016)        
Swap Used         0% (0 of 2,097,144)        

以上这些,其中 Memory Used  这个如果达到80%的话,基本网站就会打不开,需要重启。
现在我的网站,基本上开机6小时,Memory Used 就基本能达到50%,然后会慢慢的上升,到了85%后,服务器就挂掉了。

所以,现在只有不断的重启,才可以保证网站能正常运行。

后来我发现在WHM里有一个操作,可以KILL PROCESS,也就是清除一些没用进程,这就是:
Home » System Health  » Process Manager

在这个页面有一个操作Kill all processes by user,然后我执行KILL操作以后,就会发现,上面的Memory Used  就会降低
只要这个降低,服务器就不会死机。

但我不能每天24小时一直打开WHM后台管理,不停的用手工来 KILL PROCESSES

所以,在CENTOS系统,或者是WHM管理里面,能不能有一个设置,就是可以定期的清理这些进程。



作者: linuxforlive    时间: 2012-12-13 15:52
我一直很纳闷centos6.x 感觉更像太快了
作者: q1208c    时间: 2012-12-13 18:13
这是典型的 memory leak. 没听说是用这办法解决问题的.
作者: yanglei1979    时间: 2012-12-14 10:19
q1208c 发表于 2012-12-13 18:13
这是典型的 memory leak. 没听说是用这办法解决问题的.


多谢,能告诉下这种情况该如何解决吗? 昨天夜里服务器又挂机5个小时

因为我只有白天才手工KILL PROCESSES , 夜里就没清理,所以就服务器又内存占满了,又停止反应了。



作者: kellyseeme123    时间: 2012-12-14 11:04
找找看看这个进程是什么服务,然后再去找相关的方法,这样去kill不是个根本的方法
作者: yanglei1979    时间: 2012-12-14 17:10
主要是这几个进程:
domain1
domain2
domain3
mysql
names
varnish
其中前三个就是服务器上安装的三个网站,也就是CPANEL用户吧。
这个服务器上就运行三个站,一般流量非常大时,内存占用上去的非常快
白天一般访问量少,基本一天内没啥问题,夜晚访问量大的话,内存就会很快达到70%,
接着服务器随着内存占用的增高,会逐渐变慢,真到最后没反应。

如果在内存达到70%以上的话,我用手工去点击KILL PROCESSES按钮,把这几个进程杀一遍的话,内存会回到15%的状态,又能运行好几个小时,如果不手工点的话,会很快挂机。

所以我现在想在服务器里弄个软件,可以每隔20分钟KILL一下这几个固定的进程。
因为网站流量大,如果流量小,肯定没问题的,所以其它方面应该没问题,代码应该也没什么大问题。

所以我是希望能有一个软件,或者设置,或者脚本,来代替我去KILL PROCESSES。不要让我老守在电脑前面去点鼠标来操作了。





作者: kkker    时间: 2012-12-14 17:14
做个计划任务不就行了?
作者: yanglei1979    时间: 2012-12-14 17:19
kkker 发表于 2012-12-14 17:14
做个计划任务不就行了?


WHM里面能设置这个计划任务吗?
就是杀这几个固定进程的?
如果有,那就太好了,这几天天天点鼠标,手都点疼了,着键是还得夜里守着。反正我一睡觉服务器过一会也不行了,呵呵

这太难受了。
可以的话,真多谢这位哥们了
作者: yanglei1979    时间: 2012-12-14 18:29
刚才又试了下,在76%的时候,我KILL   domain1 程序,变为43%
然后再KILL domain2 进程,变为 20%

所以就KILL这两个网站进程就行了,但这并不会对网站运行造成影响,比重启好多了
网站还是立即可以打开的。
作者: q1208c    时间: 2012-12-17 15:39
查代码吧, 这两个进程有 问题
作者: yanglei1979    时间: 2012-12-17 17:32
回复 10# q1208c


    多谢这位哥们呀

等了几天了,才等个回复,呵

现在是网站白天流量小是没问题,一流量大就有问题了。
PHP代码实际上还是很多的,一个商城系统,用ZENCART改的,但是代码都我写的,感觉应该不会有特别严重的问题吧,而且我也一直在查。

就是流量大的时候,才会出现进程占用内存很多的情况
我觉得就算是再好的,再合理的代码,在流量大时同样会有这种情况的吧,实际上我现在也不知道怎样去找到底是哪个页面,什么代码原因

如果代码有什么错误,或者死循环,在流量小时同样会出问题的

我觉得这种情况应该就象我们的个人电脑,有时打开页面过多,就会很慢,按CTRL+ALT+DEL 结束几个进程,会好一些,应该就是类似这种情况

当然,这位高手要是能告诉我怎样来查出是哪里代码问题,那就太好了,我现在根本无从去查。


作者: q1208c    时间: 2012-12-17 17:42
回复 11# yanglei1979


在并发量的小的时候, 很多代码上的问题是不会被发现的. 原因很简单, 并发量小, 一些因为并发锁引起的问题不会发生. 当并发量大的问题, 锁就成了大问题. 包括文件, 数据库, 很多地方都会有锁. 有些是程序里主动加的, 有些是文件系统,数据库自己的机制加上的.

想查出问题在哪里, 我就真不知道怎么说了. 这完全取决于代码的实际情况.

我不太清楚你的网站是什么结构, 如果是 fcgi的话, 试着限制一下 单个 fcgi 程序的被调用次数看看.     
作者: zhengb302    时间: 2012-12-17 18:01
楼主就不知道写个脚本定时去kill那些有问题的进程?
还有,用命令行不是更方便么,为啥还要开桌面呢?
楼主这是把Linux当windows用了啊
作者: yanglei1979    时间: 2012-12-18 11:14
回复 13# zhengb302


    在CPANEL计划任务里面,我加上了  killall -9 domain1                ,每小时执行一次

domain1: no process killed
邮箱里收到的是这个提示

是权限问题还是什么吗




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2