问题:
关于php文件上传速度太慢,有什么优化的方法?
1、上传文件平均大小10m左右
2、目前暂时用的apache,听说换nginx能加快速度?
解决方案:
在文件上传过程中php-fpm并不会被阻塞,因为nginx接收完上传的内容后才一次性交给php-fpm.
nginx和php-fpm的工作进程各自只开1个.
以2kb每秒上传图片:
time trickle -s -u 2 curl \
-f "action=info.php" \
-f "upload_file=@linux.jpeg;type=image/jpeg" \
-f "submit=提交" \http://www.example.com/app/info.phpsudo netstat -antp|egrep "curl|nginx|fpm"
发现只有nginx和curl处于established状态,nginx和fpm都没有被阻塞.
top -p 4075 可见nginx单线程.
sudo strace -p 4075 可见nginx调用recvfrom接收数据并且pwrite保存数据.
sudo strace -p 13751 可见php-fpm是在nginx接收完成用户上传的数据时才获取数据.
上传慢主要还是带宽问题,可能是用户带宽,也可能是服务器带宽不够.
以上就是php文件上传速度太慢,有什么优化的方法? 的内容。