linux – php-cgi进程的内存使用量正在稳步增长

linux – php-cgi进程的内存使用量正在稳步增长,第1张

概述我正在尝试在VPS上设置Web服务器.我的问题是php-cgi进程内存使用量随着时间的推移而增加,即使网站根本没有收到任何流量. (暂时在防火墙后面) VPS有360MB RAM.我正在使用Debian Lenny 32bit及其lighttpd和php5-cgi软件包.除了一些配置更改(下面列出),我正在使用Debian的库存设置. 该网站基于Drupal.使用Drupal的devel模块,我 我正在尝试在VPS上设置Web服务器.我的问题是php-cgi进程的内存使用量随着时间的推移而增加,即使网站根本没有收到任何流量. (暂时在防火墙后面)

VPS有360MB RAM.我正在使用Debian Lenny 32bit及其lighttpd和PHP5-cgi软件包.除了一些配置更改(下面列出),我正在使用Debian的库存设置.

该网站基于Drupal.使用Drupal的devel模块,我可以看出PHP脚本的内存使用量平均不到20KB,而且它永远不会超过8MB.

以下是ps aux输出的相关部分:

USER       PID %cpu %MEM    VSZ   RSS TTY      STAT START   TIME COMMANDwww-data 29871  0.0  1.7  54552  6368 ?        Ss   Aug12   0:00 /usr/bin/php-cgiwww-data 29873  0.0  7.4  65808 27468 ?        S    Aug12   0:00 /usr/bin/php-cgiwww-data 29874  0.0  3.7  55808 13736 ?        S    Aug12   0:00 /usr/bin/php-cgiwww-data 29875  0.0  4.3  58040 16204 ?        S    Aug12   0:00 /usr/bin/php-cgiwww-data 29876  0.0  4.4  57444 16288 ?        S    Aug12   0:00 /usr/bin/php-cgiwww-data 29877  0.0  1.7  54552  6368 ?        Ss   Aug12   0:00 /usr/bin/php-cgiwww-data 29879  0.0  9.6  67140 35684 ?        S    Aug12   0:26 /usr/bin/php-cgiwww-data 29880  0.0  6.6  59172 24492 ?        S    Aug12   0:23 /usr/bin/php-cgiwww-data 29881  0.0  7.1  59784 26388 ?        S    Aug12   0:22 /usr/bin/php-cgiwww-data 29882  0.0  7.4  60880 27440 ?        S    Aug12   0:23 /usr/bin/php-cgi

>让php-cgi这么大是正常的吗?
>是否可以根据设置估算php-cgi内存使用情况?
>任何减少php-cgi进程内存消耗的技巧?

搜索已知的内存泄漏错误并没有产生任何相关性.如果默认的Debian软件包/配置有如此明显的内存泄漏,我会感到惊讶.同一主机上的其他用户没有此问题.

到目前为止我所做的是将PHP_FCGI_MAX_REQUESTS设置为一个较低的值,以便快速回收php-cgi进程.当我使用ab来模拟高负载时,这非常有效.进程在高于10MB之前快速死亡.但是,在中低负载下,所有进程都会稳定增长(由于负载平衡),并且大多数进程同时消耗28MB,这使我的VPS面临交换风险.请注意,即使没有任何流量,流程也会稳步增长.

我可以减少php-cgi进程的数量,但这感觉就像解决方法而不是修复.如果php-cgi通常像这样增长,我会感到惊讶.

另外,总结php-cgi进程的RSS总数给出:

$ps -C php-cgi -o RSS= | awk '{s+=}END{print s/1024}'195.738

然而,free -m给出了以下输出:

total       used       free     shared    buffers     cachedMem:           360        351          8          0         33        190-/+ buffers/cache:        127        232Swap:          255          0        255

>我错过了什么吗?为什么使用的内存(没有缓冲区)低于主机上php-cgi进程的总驻留内存?

我有以下PHP扩展:

PHP5-CGI
PHP5常见
PHP5卷曲
PHP5-GD
PHP5-MysqL的
PHP5-了XCache

xcache.size设置为24M.它曾经是32M,但减少它并没有帮助. xcache.var_size设置为0.其余插件使用库存配置. xcache管理页面显示xcache使用的不到1MB.

PHP的memory_limit设置为32M.

这是我的FastCGI配置:

fastcgi.server    = ( ".PHP" =>  ((    "bin-path" => "/usr/bin/php-cgi","socket" => "/tmp/PHP.socket","max-procs" => 2,"IDle-timeout" => 20,"bin-environment" => (      "PHP_FCGI_CHILDREN" => "4","PHP_FCGI_MAX_REQUESTS" => "1000"    ),"bin-copy-environment" => (      "PATH","SHELL","USER"    ),"broken-scriptfilename" => "enable"   )))

我使用Debian附带的股票lighttpd.conf或多或少.

如果我能提供任何其他数据,请告诉我.

任何帮助表示赞赏.我一直试图解决这个问题好几天.我已经没想完了.

解决方法 尝试降低var_size.如果我们有64MB的价值,几个小时后就开始交换了很多,接下来的几个小时它就完全失效了.尝试将原始设置保持在32M,也许这应该对你有很大帮助 – 我们在 travel网站遇到了同样的问题Xcache仍然是很多有缺陷的软件:( 总结

以上是内存溢出为你收集整理的linux – php-cgi进程的内存使用量正在稳步增长全部内容,希望文章能够帮你解决linux – php-cgi进程的内存使用量正在稳步增长所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1044721.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存