2013-10-19 31 views
1

我開發了一個基於WAMP(Windows,Apache,MySQL,PHP)服務器的社交網站。我把它放在一個免費的主機上(主機在LAMP服務),它工作正常。如何測試PHP社交網絡的可擴展性

現在,我研究了一下,發現PHP應用程序難以擴展,並且需要大量的並行算法。我想測試有多少用戶對我的網站支持Webhost,以及我的本地主機有多少。

它像任何其他涉及社交網絡:

  • 發佈數據主頁上(帶圖像)。
  • 用戶之間的聊天(每3秒輪詢一次,作爲一個在 的臉書)。
  • 一個問答論壇(就像這一個,或雅虎問答 - 包括upvotes,downvotes,積分等)發送
  • 兩個HTML5服務器事件無限循環運行。
  • 許多AJAX請求從MySQL數據庫中檢索數據。

至於現在,我還沒有申請任何緩存選項,我以後計劃。此外,聊天應用程序必須從輪詢切換到Websockets(HTML5)。

我估計的用戶數據庫將超過100,000個用戶。這可能需要一些嚴重的可擴展性。

我需要知道我需要什麼類型的服務器。它應該是一個專用的服務器,它應該是'他們'還是更多?

我試過這個ab.exe位於Apache的bin文件夾中,但它測試了我們手動提供的位置。社交網絡需要登錄信息才能訪問所有數據,這不幸地將ab.exe的功能僅限於「歡迎」頁面的可用性,並且對於上面提到的AJAX和HTML5功能沒有任何影響。因此,我應該如何測試與我的筆記本電腦(Windows,Intel i5,4gb Ram,2.0 GHz)相同的硬件網站的可升級性,以及那裏提供的共享服務器的可擴展性,甚至是專用的那些。

+0

你不會得到100K用戶過夜。一旦你在網站上找到真人,你就可以更好地瞭解瓶頸。恕我直言,等到你真的需要擴展。只是想淘汰計劃我的方式 - 使用類似[加特林(http://gatling-tool.org/) –

+0

破壞試驗。我不希望網站服務器崩潰並陷入困境,每秒都會丟失用戶。另外,它針對的是一類特定的人羣。它可能需要比平常更早的可伸縮性選項。 –

+0

@Sam Dufel – kamal0808

回答

4

簡而言之:你在孵化之前計數你的雞。如果你被一堆新用戶淹沒了,那麼這就是我們所說的「好問題」。如果你擔心沿途scalability,那麼你應該看看:

  1. 緩存與MemcachedRedis
  2. Load balancing
  3. Apache to Nginx轉換。
  4. 提供一個合適的CDN
  5. 由於您使用的是PHP,因此您應該安裝一個opcache

有很多不同的方法來擠出結果。直到你需要它們,我會建議堅持最佳實踐(規範化等)。

+0

我可以在Apache上使用沒有Memcached的共享服務器嗎?我實際上至少要支付3個月的試用期。 – kamal0808

0

如果你擔心你的託管公司的能力,以應付你的應用程序,然後做的第一件事就是與他們聯繫,並討論他們所擁有的和可擴展性如何他們的環境是什麼樣的能力。

除非你正在主持自己,那麼你有過這種情況幾乎沒有控制權。

但是,如果你認爲用戶的數量將會非常快速地增長那麼這將是明智的,很早就與您的供應商進入對話。