【发布时间】:2011-09-01 16:40:25
【问题描述】:
为什么 php memory_get_peak_usage 的结果与在 Linux 中使用 'top' 或 'ps' 命令时显示为分配给进程的内存大小有很大差异?
我在 php.ini 中设置了 2 Mb 的 memory_limit 我的单字符串 php 脚本与
echo memory_get_peak_usage(true);
说它正在使用 786432 字节 (768 Kb)
如果我尝试向系统询问当前的 php 进程
echo shell_exec('ps -p '.getmypid().' -Fl');
它给了我
F S UID PID PPID C PRI NI ADDR SZ WCHAN RSS PSR STIME TTY TIME CMD
5 S www-data 14599 14593 0 80 0 - 51322 pipe_w 6976 2 18:53 ? 00:00:00 php-fpm: pool www
RSS 参数为 6976,因此内存使用量为 6976 * 4096 = 28573696 = ~28 Mb
这 28 Mb 来自哪里,有什么方法可以减少 php-fpm 进程使用的内存大小?
【问题讨论】:
标签: memory-management php