我們的服務器上有嚴重的延遲問題。我該如何解決我的S3/memcache延遲問題?
我們存儲在S3感興趣三件事情,並把它們塞進內存緩存爲好。
- 用戶頭像平均〜25K
- 文本〜1.5K
- XML〜1.5K
我們有專門的RAM的128meg memcached的作爲現在... 作爲權利現在,它是騎74兆它
做一些基本的數學,我們應該能夠輕鬆擁有大約30,000文本文檔(與他們的XML表示)和1000個用戶頭像和仍然UND呃我們128meg致力於MEMCACHE
現在我們有可能在任何給定的時間 我們在十萬文字/ XML文檔的拉昇〜100米用戶的化身,但他們沒有得到觀看 像頭像做...這裏有一個,有那種類型的東西
有時在白天用戶頭像加載速度超級緩慢(表示他們必須從S3加載)和其他時間(當然加載後)你可以告訴他們正在從memcached服務;與我們在Apache PHUSION與REE運行Merb的文本文件
同樣的事情。 我們正在使用evan weaver構建在libmemcached-0.25.14上的memcached gem(我完全理解它不是最新的lib;這個gem需要它)
從我所看到的延遲問題是因爲S3這確實存在嚴重的延遲問題(有時對於單個化身有時爲500毫秒)。然而,它似乎不應該成爲一個問題,因爲它應該一直被緩存。高速緩存的默認到期時間設置爲1周。
相關代碼:
@cache = MMCACHE.clone
begin
picture = @cache.get("/avatars/#{user.avatar}")
rescue
picture = user.picture
@cache.set("/avatars/#{user.avatar}", picture)
end
@cache.quit
克隆/戒菸是很重要的,因爲在Apache/PHUSION將有問題的共享連接時,它叉它,如果我們不收我們的聯繫,他們會保持直到我們用完文件描述符。
我開始不斷的memcache更密切的眼睛,看看我能追查我的問題,而是什麼建議?我們應該擺脫S3嗎?
你期待,大大提高了應用程序的化身的數量和使用情況,從目前它是什麼?我問,因爲在目前的水平,memcached似乎可能沒有必要。 – 2009-09-18 19:23:07
是的,我們 - 是的,我完全同意,在這個階段memcache是完全沒有必要的 – eyberg 2009-09-18 20:14:03