Joh*_*ohn 9 php apache optimization ram memory-management
我正在开发一个PHP Web应用程序,让用户可以相互联网,预订活动,并互相发送消息.只有大约100个用户.
我使用Ubuntu 9.10,apache2,mysql 5和php 5在VPS上设置应用程序.我有360 Mb的RAM,但升级到720 MB.
最近,由于内存使用过多,我的Web应用程序一直在中断.从我在错误日志中可以看出,似乎服务器自动杀死占用过多内存的apache进程.因此,我将内存从360 MB升级到720 MB作为一种权宜之计.
所以我的问题是,我该如何解决这些中断问题?我怎么知道我的网站是否需要更多内存是由于代码不好或者它是否是网站自然增长的一部分?确定哪些PHP脚本消耗最多内存的最有效方法是什么?
对此没有简单的答案,尽管我怀疑这可能是您代码中的问题。
php.ini 文件中的 memory_limit 设置是什么?通常我会建议至少 4Mb,通常是 16Mb。您要同时进行多少次点击?该网站是否对统计数据进行了大量繁重的报告?或者通过 PHP 渲染图像?你在任何地方使用 file_get_contents() 吗?
您确实需要设置一些自定义日志记录来报告每个 URL、退出时日志文件的大小。例如,您可以自动添加:
<?php
register_shutdown_function('log_mem');
function log_mem()
{
fputs(STDERR, '[' . date('c') . '] ' . memory_get_usage() . ' '
. $_SERVER["REQUEST_URI"] . "\n");
}
Run Code Online (Sandbox Code Playgroud)
(注意 - 没有结束标记)这会将每个 PHP 页面使用的内存写入 error_log,以便您可以更轻松地隔离问题。
HTH
C。