全球主机交流论坛

标题: 关于lighttpd的内存泄漏 [打印本页]

作者: Wei    时间: 2009-12-6 15:21
标题: 关于lighttpd的内存泄漏
(, 下载次数: 20)

症状:lighttpd的内存占用很不正常,(如图)内存占用居高不下,重启lighttp恢复正常,一段时间后内存继续飙升。

我的VPS环境:Kloxo Lighttpd 1.4.20 php-cgi

在网上看了看相关的文章,说是因为lighttpd与cgi同讯的机制导致的,当lighttpd与php-cgi出现大量数据通讯时,lighttpd会出现内存回收上的bug。我测试了几次下载上传完全没有问题(当下载上传结束时lighttpd的内存顺利回收)。但是实际上有的时候不知不觉top一下就发现出现了泄漏(如图),让人很是头疼。

请问用lighttpd的有出现跟我同样问题的吗?网上说添加X-send-file模块可以解决问题,看起来肯定要改php程序,有人试过吗?
作者: cpuer    时间: 2009-12-6 15:27
标题: 回复 1# 的帖子
难道你的站有搞下载?
作者: kok    时间: 2009-12-6 15:29
我没注意过  不过貌似我现在LIGHTTPD 就占了很大内存...
253了


top - 23:37:16 up 17 days,  5:08,  1 user,  load average: 1.38, 0.98, 0.47
Tasks:  49 total,   2 running,  47 sleeping,   0 stopped,   0 zombie
Cpu(s): 19.4%us,  9.5%sy,  0.0%ni, 68.2%id,  0.2%wa,  0.0%hi,  0.0%si,  2.8%st
Mem:    262320k total,   257432k used,     4888k free,    21996k buffers
Swap:   262136k total,     8392k used,   253744k free,   180464k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND            
28795 admin     15   0 27140  13m 6080 S   17  5.2   0:00.50 php-cgi            
  697 mysql     18   0 27000 8816 3556 S   42  3.4 313:32.86 mysqld            
13956 apache    15   0  8860 5504 1476 S    0  2.1   0:36.47 lighttpd           
28768 root      15   0  8064 2396 1944 R    0  0.9   0:00.02 sshd               
  614 lxlabs    15   0  5996 1784  592 S    0  0.7   0:06.32 kloxo.httpd        
28770 root      20   0  2440 1300 1092 S    0  0.5   0:00.04 bash               
28792 root      15   0  2192 1028  824 R    0  0.4   0:00.01 top               
  655 root      23   0  2440  944  940 S    0  0.4   0:00.02 mysqld_safe        
  754 root      17   0  2448  852  848 S    0  0.3   0:00.00 sh                 
  592 root      15   0  2720  724  640 S    0  0.3   0:00.04 xinetd            
  583 root      15   0  5228  660  564 S    0  0.3   0:00.00 sshd               
  741 root      18   0  3208  568  512 S    0  0.2   0:00.02 crond              
    1 root      15   0  2068  548  524 S    0  0.2   0:00.16 init               
  549 root      18   0  1720  536  484 S    0  0.2   0:10.31 syslogd            
  744 qmaill    18   0  1664  464  416 S    0  0.2   0:00.05 splogger           
  732 qmails    15   0  1908  444  384 S    0  0.2   0:00.09 qmail-send         
  746 qmailr    15   0  1672  332  292 S    0  0.1   0:00.02 qmail-rspawn
作者: Wei    时间: 2009-12-6 15:36
标题: 回复 2# 的帖子
论坛里有点附件 呵呵
作者: cpuer    时间: 2009-12-6 15:37
标题: 回复 4# 的帖子
那你搞个X-send-file吧。
作者: Wei    时间: 2009-12-6 15:37
标题: 回复 3# 的帖子
你的看起来还正常
实在不行就换Apache了
作者: Wei    时间: 2009-12-6 15:50
标题: 回复 5# 的帖子
算了,还是换Apache吧,各方面支持更多。
作者: gdtv    时间: 2009-12-6 16:09
楼主做文件下载?
我用nginx的X-Accel-Redirect,很好用,没有内存泄漏的问题
网站程序要改一点点,改得比原来更简单
作者: zyypp    时间: 2009-12-6 16:12
lighttpd 本来用的内存就多啊
作者: cpuer    时间: 2009-12-6 19:40
标题: 回复 8# 的帖子
gdtv站点真多
作者: gdtv    时间: 2009-12-6 19:41
标题: 回复 10# 的帖子
我是瞎折腾
作者: cpuer    时间: 2009-12-6 20:16
标题: 回复 11# 的帖子
折腾之后就有精华了。
作者: asd-f    时间: 2009-12-6 23:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: hidaigou    时间: 2009-12-6 23:26
我的vps里的lighttpd原来也是这样,机器reboot后,一般内存占用在40m,过一周,就会占用到500m,访问量平时很小的。
后来我去掉了日志,现在就一直很正常了,内存占用在512m的10%。
作者: cpuer    时间: 2009-12-6 23:29
标题: 回复 14# 的帖子
去掉日志有这种效果呀,见识了。
作者: kok    时间: 2009-12-7 10:24
原帖由 hidaigou 于 2009-12-6 23:26 发表
我的vps里的lighttpd原来也是这样,机器reboot后,一般内存占用在40m,过一周,就会占用到500m,访问量平时很小的。
后来我去掉了日志,现在就一直很正常了,内存占用在512m的10%。 ...



如何去掉日志?
作者: hidaigou    时间: 2009-12-7 15:03
我用的lxadmin,去掉的也是lxadmin的日志啊,不是单纯的去掉lighttpd的日志。
作者: kok    时间: 2009-12-7 16:11
怎么去掉呢?》
作者: cpuer    时间: 2009-12-7 20:21
标题: 回复 18# 的帖子
Kloxo控制面板,关闭日志的方法:
Domains>your domains>Domain Adm>Domain Features>Enable Statistics
作者: hidaigou    时间: 2009-12-8 11:16
坛主说的是关闭日志,剩下的还要把lxadmin和lighttpd已经生成的日志一个个手动删除掉,具体的文件地址要自己google了,我忘了
作者: cpuer    时间: 2009-12-8 11:26
标题: 回复 20# 的帖子
日志文件夹:

/home/admin/__processed_stats/*
/home/kloxo/httpd/lighttpd/*
/var/log/kloxo/*
/home/httpd/*/stats/*


作者: yxq4319    时间: 2010-7-1 13:05
在lighttpd-1.4.18版本里面,fastcgi方式已经内置X-sendfile支持,仅仅需要你在配置文件打开就可以了:
"allow-x-send-file"="enable"
应该是大文件下载对内存的消耗!
解决办法可以参看:RoR网站如何利用lighttpd的X-sendfile功能提升文件下载性能
http://www.javaeye.com/topic/154538
作者: winsock    时间: 2010-7-1 13:32
x-sendfile需要程序header发送x-sendfile头的,如果用些通用程序,本身就是读取文件再输出,再开x-sendfile也没用啊.........




欢迎光临 全球主机交流论坛 (https://91ai.net/) Powered by Discuz! X3.4