如何减少ImageManager或php使用虚拟内存

时间:2013-08-01 09:46:17

标签: php thumbnails virtual-memory mcimagemanager

我们在已迁移到运行Cloud Linux的服务器的网站上使用旧版本的TinyMCE(MoxieCode)的ImageManager。

不幸的是,我们的托管没有通知我们,每个帐户有1,048,576 KB的虚拟内存限制,这在以前的服务器上是不存在的。

这听起来很多,但ImageManager现在随机生成内部服务器错误500,并且每六个缩略图中只有一个随机选择成功加载。

在服务器错误日志中,我发现以下消息经常重复出现,对于不同的文件管理器/流文件夹中的不同index.php,主要是在语言文件夹,js文件夹和rpc文件夹中随机重复:

无法分配内存:无法创建子进程:/ opt / suphp / sbin / suphp

瞧,如果我刷新我正在刷新ImageManager的网站的CPanel页面,我可以看到虚拟内存的使用量最大为1,048,576 KB。 (通常它远远低于其中的10%。)

我有点困惑为什么加载一个主题,一些样式表,一个语言包和六个缩略图需要这么大的内存。

特别是从phpinfo可以看出,output_buffering设置为0,并且在ImageManager代码中的任何地方都没有调用ob_start。

我想也许每次都是从头开始创建缩略图而不是从mcith文件夹加载,但事实并非如此,我可以从缩略图文件的日期看到。

事实上,如果我删除缩略图,则事物会完全挂起(thumbnail.auto_generate设置为true)。

当然,我们可以升级到我们在其他网站上使用过的最新的ImageManager(现在称为MoxieManager)并且工作正常,但由于用户界面和会话身份验证发生了重大变化,这将涉及到很多对客户进行编码和再培训,他们并不真正想要升级。

如果有人对如何解决这个问题有任何想法,那将非常感激。

1 个答案:

答案 0 :(得分:0)

你能做的最好的事情就是在每一行之后使用ImageManager的源代码中的以下语句,看起来它可能会耗尽你的记忆

error_log("current memory usage: ".memory_get_usage()." on line: ".__LINE__);

一旦找到了错误的线路,就可以开始寻找替代方案了