簡體   English   中英

Memcached on EC2

[英]Memcached on EC2

我是否正確地認為,在我能夠負擔得起專用服務器或擁有任何備用服務器之前,我可以通過EC2成功運行少量的memcached服務器?

隨着亞馬遜今天宣布新的自動擴展和負載平衡,你們認為這是一個可行的選擇嗎?

你建議我采取什么基本技術步驟?

謝謝

目前,我有一個專用服務器,沒有memcached服務器。 我想使用EC2的強大功能來設置幾個實例並運行這樣的memcached服務器。 這是我目前的設置。

  • 負載平衡與Memcached無關 - 它使用哈希算法連接到服務器
  • 我強烈建議不要對Memcached使用自動縮放 - 添加服務器會破壞散列算法並使緩存無效。 數據將丟失,您將不得不重新安排。
  • 您需要檢查從服務器到EC2的延遲 - 如果超過50毫秒,您將大大損害您的性能。 好吧,無論如何我都會假設。

您可以通過一個請求拉出多個鍵(請參閱此處了解如何 )以減少延遲效果,但您仍然可以使用初始命中。 這也意味着您需要知道在撥打電話之前要獲得的所有密鑰。 否則,每個請求會為腳本的執行時間增加50毫秒(或更多)。

考慮您嘗試緩存的數據。 一塊64mb的大板足夠幫你嗎? 您可以在主服務器上運行它。

要真正利用memcached,您需要讓memcache盡快與代碼進行通信。 您可能想要調查EC2服務器與您自己的服務器之間的延遲時間。

最終,你可能會更好地將當前盒子上的ram提升到類似4演出(應該運行大約50美元)並將memcached放在主服務器上。 該文檔實際上建議您在提供請求的同一服務器上安裝memcached。 根據應用程序的大小及其作用,具有一兩個演出的memcached實例可能比您需要的更多。

此外,如果您沒有使用像APC或Eaccelerator這樣的php對象緩存引擎,那也會有所幫助。

最近AWS發布了一項新的Web服務--Amazon ElasticCache。 此服務是Memcached的協議投訴。

有關更多詳細信息,請訪問: http//aws.amazon.com/elasticache/

更一般地說:如果您想使用任何類型的緩存機制,那么讓您的服務器非常接近您的緩存服務器是有意義的。 示例:數據庫服務器和Memcached服務器,它們應位於相同的主機托管中,或相同的AWS“區域”。 如果您嘗試使用緩存系統,那是因為您希望提高性能。 如果您將緩存系統遠離服務器,那么您基本上就是在浪費所有的好處。

最好,

你當前的盒子里通常有多少可用內存? 你能不能在那里設置一個memcached實例? 我認為這可能是延遲/開銷等。 從擁有遠程緩存可以否定任何好處,但也許情況並非如此。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM