我最近接管了一个文件托管网站(类似于rapidshare、megaupload 等),目前平均每天约有 75,000 名访问者。迁移之后,我们从头开始编写自己的系统。现在是时候升级基础设施了,并且一直在研究网络服务器和扩展。现在的问题是,文件上传完成后,Web 服务器没有“刷新”用完的内存。我们上传了多个300MB+的文件,上传之前,我们有大约3.7G的可用内存,上传3个每个300M的文件后,内存使用量约为1.2G。最初,我们认为这可能是 apache 问题,但升级到 Litespeed 也没有解决它。这是“顶部”的“内存使用情况”
内存:总共 4015996k,已用 1206036k,空闲 2809960k,114984k 缓冲区
我正在摸索如何“刷新”Web服务器或php在上传过程中使用的内存,因为这样系统将很快耗尽内存并崩溃。
这是我的 php.ini 值:
最大执行时间 = 6000 最大输入时间 = 6000 内存限制 = 2048M post_max_size = 2047M upload_max_filesize = 2047M
在 Apache 上,php 在 fcgi 上运行,在 Litespeed 上运行,它是 Litespeed SAPI。
谢谢, 比尔
最佳答案
我刚刚发现它是“缓存内存”,我可以通过以下命令释放它: echo 3 >/proc/sys/vm/drop_caches
cat /proc/meminfo
内存总计:4015996 kB 内存空闲:2490780 kB 缓冲区:118232 kB 缓存:1204168 kB 交换缓存:0 kB 活跃:358748 kB 不活动:991220 kB 活跃(匿名):28024 kB 不活动(匿名):0 kB 事件(文件):330724 kB 非事件(文件):991220 kB 不可驱逐:0 kB 锁定:0 kB 高总计:3179664 kB 高免费:1918528 kB 低总计:836332 kB 低免费:572252 kB 交换总计:48827384 kB 免隔夜利息:48827384 kB
关于php - PHP 大文件上传内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2821895/