Building the Coming Soon

关于

HFLS aka the Akademia 12′, then NJUST 16′, now HKU.

PHP-CGI

VestaCP面板PHP-CGI进程过多耗尽内存问题解决

11/18/2014

就像Kaijia在上一篇文章中提到的一样,VestaCP面板对较新发布的系统支持并不理想,到现在对Ubuntu 14.04的支持只能说是勉强能正常运行,还没有得到很好的优化,而对Redhat/CentOS 7的支持则完全还没开始。在Ubuntu 14.04系统中,VestaCP面板的部分设置仍有调整优化的空间,Kaijia这次就遇到的PHP-CGI进程耗尽内存的情况就是由于配置未优化造成的。

Kaijia的VestaCP模块(Package)设置使用的是phpfcgid模板,这样可以通过PHP-CGI模块有效得实现站点间文件访问的阻隔。但这样做的代价是每个Unix用户都会拥有自己的FCGI实例,因此需要支出额外的内存。当配置失当时更会造成虽然服务器访问量低但内存接近耗尽的情况,使用htop等工具查看有如下图:

HTOP显示PHP-CGI大量进程占用内存情况

HTOP显示PHP-CGI大量进程占用内存情况

虽然Kaijia放在VestaCP服务器上的网站P/V很低,但大量的PHP-CGI进程仍然在服务器重启后数小时内基本耗尽了内存,很早之前闲置的PHP-CGI进程没有被杀死,一个进程下面运行了近20个子进程消耗了至少100M的内存。造成这一现象的原因既是VestaCP在Ubuntu的phpfcgid模板中使用了未优化的配置。

阅读更多

Apache环境mod_fcgid模式500错误“get unexpected signal 7”解决

08/14/2014

今天Kaijia在升级安装在一台Virtualmin服务器上的几个WordPress时碰到了不少神奇的500错误。500错误主要出现在WordPress的更新管理器界面载入5~10秒内,并且有一定概率性,大约打开5次更新管理器界面能碰到2次这种错误。这个问题Kaijia之前一直没有碰到,直到将服务器升级到Ubuntu 14.04并且重新安装Virtualmin后才有出现。

在检查了Virtualmin配置和服务器运行状态后Kaijia还是没有找到原因,服务器的空闲内存充足且访问量并不大,同时Virtualmin中设置的PHP执行时间也超过30秒。于是Kaijia检查了一下Virtualmin日志,找到了以下对应错误记录:

[Thu Aug 14 10:33:48.001044 2014] [fcgid:warn] [pid 21722] (104)Connection reset by peer: [client IP:Port] mod_fcgid: error reading data from FastCGI server, referer: https://server.kaijia.me/wp-admin/update-core.php?action=do-plugin-upgrade

[Thu Aug 14 10:33:48.001166 2014] [core:error] [pid 21722] [client IP:Port] End of script output before headers: update-core.php, referer: https://server.kaijia.me/wp-admin/update-core.php?action=do-plugin-upgrade

阅读更多

... 载入更多文章 ...

- 已经载入全部文章 -