【发布时间】:2012-12-12 12:42:11
【问题描述】:
我使用 http 使用 HTML5 分块文件 api 创建了文件传输网站。它工作正常,除了在上传文件期间,服务器的 CPU 使用率几乎是 100%。此文件传输将用于平均上传文件 4GB 左右。
我的猜测是它几乎占用了 100% 的 cpu 使用率,因为它试图将文件从 tmp 目录移动到目标目录。
有没有在不使用临时目录的情况下上传文件?
我的问题是 PHP,但其他语言也可以接受
这是上传文件(18mb、38mb、60mb、33mb)期间“top”命令的结果
1904 apache 20 0 33504 5740 1952 R 28.3 0.2 0:02.19 httpd
1905 apache 20 0 33504 5740 1952 R 28.3 0.2 0:01.99 httpd
1903 apache 20 0 33232 6968 3060 R 28.0 0.2 0:01.98 httpd
1910 apache 20 0 33240 6020 2248 S 11.5 0.2 0:02.85 httpd
2133 root 20 0 2656 1124 896 R 1.6 0.0 0:00.71 top
1 root 20 0 2864 1404 1188 S 0.0 0.0 0:03.99 init
它表明 httpd 占用了所有资源.. 如果不是因为将文件复制或上传到服务器,有谁知道是什么问题?
【问题讨论】:
-
我非常怀疑复制文件时 CPU 映像会超过百分之几。你为什么不做更多的研究并准确地查明原因?
-
听 teh teh1.... :-D 说真的,尽管他是对的。复制过程不太可能导致 CPU 飙升...
-
@teh1 知道什么可能导致 CPU 飙升,请检查我在 linux 服务器上的“top”命令结果。显示httpd占用了所有cpu资源28.3,28.3,...
-
@Harts,你正遭受误入歧途的XY problem。在没有证据的情况下,您认为移动临时文件(simple I/O)会导致高负载,因此您想跳过使用临时文件。你没有证据表明临时文件是问题所在,如果是的话,我会吃一打大礼帽。您真正的问题是 Apache 使用了疯狂的 CPU 时间。排除那个的问题。
-
我猜你有一个无限循环什么的。
标签: php file-upload