我有很多經驗。我認爲有一些非顯而易見的問題。就像運行像Tigase這樣的應用程序的唯一可靠實例是cc1.4xlarge。其他人會導致CPU可用性問題,這只是一個抽獎,無論您是否有幸在不忙於其他人工作的服務器上運行您的服務。
此外,您還需要一個具有儘可能高的I/O的實例,以確保它能夠應對網絡流量。高I / O特別適用於數據庫實例。
不知道這是明顯與否,但有這個問題,在EC2上的主機名,每次啓動實例的主機名的變化和IP地址的變化。 Tigase集羣對主機名非常敏感。有一種方法可以強制/更改實例的主機名,所以這可能是解決問題的方法。
當然我說的是數以百萬在線用戶和每秒以上的非常高的流量100K XMPP包集羣。通常對於大型安裝來說,擁有專用服務器會更便宜,更高效。
一般Tigase運行得很好在Amazon EC2上,但你真的需要最新的SVN代碼,它有很多特別是在雲測試後添加優化。如果你提供一些關於你的服務的更多細節,我可能會有更多的建議。
更多評論:
如果涉及到成本,專用服務器是持續運行的服務總是更便宜的選擇。除非您打算每小時開啓/關閉服務器,否則我會建議您參加一些專門的服務。成本更低,性能更可預測。
但是,如果你真的想/需要堅持到Amazon EC2讓我給你一些具體的數字,下面是實例的列表,以及有多少在線用戶羣能夠可靠地處理:
- 5 * cc1.4xlarge - 1mln 700K在線用戶
- 1 * c1.xlarge - 118K在線用戶
- 2 * c1.xlarge - 127K在線用戶
- 2 * m2.4xlarge(具有5GB RAM用於Tigase) - 236K在線用戶
- 2 * m2.4xlarge(20GB與RAM對Tigase) - 315K在線用戶
- 5 * m2.4xlarge(與60GB的RAM Tigase) - 400K在線用戶
- 5 * m2.4xlarge(與60GB的RAM Tigase) - 312K在線用戶
- 5 * m2.4xlarge(與60GB的RAM Tigase) - 327K在線用戶
- 5 * m2.4xlarge(與60GB的RAM Tigase) - 280K在線用戶
一些更多的評論:
- 爲什麼內存的數量很重要?這是因爲除了cc1.4xlarge實例之外,CPU功耗非常不可靠並且不一致。你有8個虛擬CPU,但如果你看看上面的命令,你經常會看到一個CPU工作,其餘的不是。 CPU功率不足導致內部隊列在Tigase中增長。當CPU電源回來時,Tigase可以處理等待的數據包。更多的內存Tigase有更多的數據包可以排隊,它更好地處理CPU缺陷。
- 爲什麼有5 * m2.4xlarge 4倍?這是因爲我在不同的日子和時間多次重複測試。正如你所看到的取決於時間和日期,系統可以處理不同的負載。我想這是因爲Tigase實例與其他一些服務共享CPU的能力。如果他們忙於Tigase受到CPU的影響。
這就是說,我認爲安裝多達10K的在線用戶,你應該沒問題。但是,其他因素如名單大小會影響流量和負載,因此非常重要。此外,如果您有其他元素產生顯着的流量,這會給您的系統帶來負擔。
在任何情況下,如果沒有一些測試中,它是不可能告訴你的系統如何真正的行爲,或是否能夠處理負載。
和關於分量的最後一個問題:當然
中Tigase不支持XEP-0114和XEP-0225用於連接外部組件。所以這不應該是用不同語言編寫的組件的問題。另一方面,我建議使用Tigase的API來編寫組件。它們可以作爲內部Tigase組件部署,也可以作爲外部組件部署,這對開發人員來說是透明的,在開發時您不必擔心。這是API和框架的一部分。 此外,您可以使用Tigase框架中的所有商品,腳本功能,監控,統計數據,更容易開發,因爲您可以輕鬆地將代碼部署爲測試的內部組件。 你真的不必擔心任何XMPP特定的東西,你只需填充processPacket(...)方法的主體,就是這樣。 在Tigase網站上應該有足夠的在線文檔來解決所有這些問題。
此外,我會建議閱讀關於Python支持多線程以及它如何在非常高的負載下運行。它曾經不是很好。
感謝您的回覆(以及製作Tigase!)我已經添加了一些關於我正在開發的內容的更多詳細信息:-) – 2011-12-29 20:30:04
只需檢查一下版本tigase-server-5.1.0-beta3-b2667即可。 tar.gz'(來自http://www.tigase.org/node/2474/2199)可以 - 或者如果它真的是SVN的最新結賬,會更好嗎? – 2011-12-30 01:32:32
真棒,感謝您對Tigase和說明的出色洞察。 – 2012-01-01 16:07:33