2016-04-01 103 views
5

我有一個EC2實例運行基本的LAMP堆棧作爲網絡服務器。用戶可以通過我的Web應用程序上傳照片,然後將照片存儲在一個目錄中並記錄在MySQL中。通常,這些上傳速度與用戶的互聯網上傳速度一樣快。在Apache(EC2)上文件上傳速度比用戶的網絡上傳速度慢

不幸的是,多個用戶報告稱,有時照片上傳速度正在放緩 - 每張照片最多需要2分鐘,而其他網站上的用戶可以更快上傳。

如何優化Apache(我假設它是Apache?)不​​會成爲瓶頸? MPM預壓縮可以解決這個問題嗎?或者它可能是數據庫鎖定問題?


此設置的一些附加統計數據(這是相當香草):

Instance Type: t2.small EBS-optimized: False PHP v5.4 Server version: Apache/2.4.18 (Amazon)

唯一的,我正在考慮相關的另一件事是,當照片被上傳,它是通過Imagick調整縮略圖大小(這顯然是CPU密集型的,但通常速度很快)。

+0

是照片大小相同? –

+0

是的,他們是照片來自iPhones/Android手機 - 通常只有幾MB - 並且可以一次上傳多個文件。 –

+0

如果他們通過蜂窩網絡上傳,則永遠不會聽到這些投訴的結束。可能有些東西你可以做,但是你應該爲用戶/利益相關者設定一些預期,總是會有一些速度的變化,尤其是上傳速度。 –

回答

0

這種問題可能是因爲很多原因。但是,在您可以控制的變量中,您可以從網絡調節開始。基本上假設您的應用程序中有十個用戶。所有相同的上傳速度。當他們都同時嘗試上傳圖像時。假設九個會得到很好的速度。但是因爲你的服務器只能有固定的傳輸速率,所有這九個人都在使用,即使第十個人的網絡性能相同,他也會上傳圖像的速度較慢。爲了解決這個問題,你需要限制服務器每個連接的速度,這也稱爲網絡節流。 在apache中配置相同可以找到here。但這只是一種猜測,在現實生活中可能有很多因素。

+0

感謝您的回覆。所以如果我理解你的觀點,你就會說如果有多個用戶一次上傳所有內容,那麼有人可以獲得最後一棒。但是,當只有一個用戶上傳時,這似乎正在發生。任何想法可能導致單個用戶體驗從多張照片上傳緩慢上傳? –

+0

@JeremyPenrod正如我指出的那樣,答案只是衆多可能性中的一個。如果它持續與單個用戶,它可能是網絡問題或可能在程序中的一些錯誤 – georoot

1

很多遺漏的信息,比如你在跑什麼,你的規格是什麼。 我會做的第一件事是通過php.ini文件增加你的記憶。

set('memory_limit','64M'); (我的設置爲256m 或在php.ini中全局更改(在位於'\ lampp \ php \ php.ini'中的Lampp中):

memory_limit = 8M //搜索此「memory_limit」並調整它通過 是重啓Apache之後...您的需求。

是指PIC。設置在黃應如下。

enter image description here