2014-10-08 42 views
4

因此,我使用laravel的宅基地提供的虛擬箱容器設置了一個使用vagrant的虛擬機。 (在我的OSX環境下)使用virtualbox與vagrant + homestead的虛擬機上的慢速文件上傳

我使用nfs選項方法來共享我的目錄到我的本地環境,這大大加快了響應時間。在一個典型的應用程序,我得到像每頁20-40ms負載。但是,我注意到文件上傳速度非常慢。我可以上傳一個簡單的1MB文件,這個文件對文件什麼都不做,大約需要30秒到1分鐘。這是正常的,還是有辦法加速除了使用nfs共享之外的事情。

+0

如果有人正在尋找使用他所指的nfs選項來加快響應速度,這裏是:https://coderwall.com/p/2nak4q/use-nfs-to-speed-up-your- homestead-vm – zeckdude 2015-02-21 01:36:04

回答

4

東西來我的腦海:

  • 編輯/etc/nginx/nginx.conf,找到「sendfile的」設置和更改爲「關」(我見過具有一些問題,它打開時,人們有些報道使用NFS);
  • 啓用xdebug會減慢速度,雖然我不會指望它會像你注意到的那樣產生如此巨大的差異,但如果沒有其他作用,它可能是值得禁用它,看看是否有幫助;

如果這些都不起作用,請在github上創建一個回購庫來重新創建問題,我會看看,看看我是否找到任何東西。

+0

第一個是它大聲笑...感謝的人。 – David 2014-10-13 00:57:38

+0

其實......虛驚一場..我都興奮不已,因爲我認爲它已經修好了,但我猜測它沒有。我會盡快發佈回購以隔離問題。 – David 2014-10-13 02:58:02

+0

好的,當你這樣做的時候讓我知道,我會試着重現這個問題。 – borfast 2014-10-13 15:59:02

8

這已經讓我瘋狂了一段時間,並且沒有用Vagrant或VirtualBox的設置(發送文件,NFS,調整數據包大小等)的幫助。但隨着this answer就有關失敗的圖片上傳類似的問題的幫助下,我終於破解了:

的關鍵,對我來說,是改變我hosts文件,以解決我的家園域的宅基地192.168.10.10虛擬機的IP ,而不是127.0.0.1。 (執行此操作時,您還可以從URL中刪除端口:8000,因此您只需導航至homestead.app)。

這將我的文件上傳速度從25 KB /秒左右改爲5980 KB /秒!

似乎Laravel文檔在一週前更新以反映此更改。我想知道,如果您的優勝美地版本安裝與文檔更改一致,並且您設置了新盒子,請使用192.168.10.10,而您的舊主機設置指向127.0.0.1

即使Laravel文檔已更正 - 因此此問題不應出現在新Homestead安裝中 - 仍有大量教程在野外漂浮,這表明將Homestead域解析爲127.0.0.1。希望這個回答將有助於緩解一些惡化!

+0

這聽起來正確。我正在使用私有IP而不是我的本地主機IP。另一方面,我對流浪漢又有了一個煩惱。 HTTP://計算器。com/questions/26447926/why-doesnt-vagrant-clean-nfs-exports-file – David 2014-10-23 01:10:57

+1

是的,我認爲上傳緩慢是因爲您的虛擬機需要等待上傳數據從您的本地端口8000連接到虛擬機的端口80.將您的域更改爲虛擬機的專用IP意味着上傳數據更直接地傳送到虛擬機。 (順便說一句,在接受的答案中,關閉NFS的「sendfile」 - 實際上,NFS本身 - 對這個問題沒有任何影響,因爲上傳一個文件到你的流浪盒並不會觸及任何東西共享文件夾。) – damiani 2014-10-23 02:51:52

+0

謝謝@damiani,這完全爲我工作。這一直在讓我瘋狂。 FWIW,我也必須改變我的情況一些設置。在'/ etc/PHP5/FPM/php.ini'我加入: '的upload_max_filesize = 1024M 的post_max_size = 1024M' 而在'/ etc/nginx的/ nginx.conf': 'client_max_body_size1024米;' – 2015-05-27 14:05:30

相關問題