問題:
關於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檔案上傳速度太慢,有什麼優化的方法? 的內容,更多相關內容請關注PHP中文網(www.php.cn)!