我使用enyim爲我們的網站實現了一個緩存界面和memffered供應商。在測試中效果很好,直到我們加載測試,它將w3wp.exe的CPU高達100%。我們有一個配置屬性來將緩存提供者切換回到dotnet的API,並且CPU回到5-7%。有沒有人經歷類似的?Enyim memcached供應商CPU秒殺
3
A
回答
4
每次通過enyim將某些內容存儲在memcached中時,.NET運行時將對存儲的對象執行二進制序列化。並且在你檢索時進行反序列化。對於某些類型(字符串,字節[]等),enyim實現了更具體和更輕量級的序列化,但大多數類型都是由標準BinaryFormatter序列化的。這是處理器密集型的。
當您的代碼寫入ASP.NET中的內存緩存時,它尤其痛苦。您可能會有代碼認爲從緩存獲取內容是免費的。您可能會一次又一次地從緩存中獲取它。當我們切換到memcached時,我們遇到了類似的問題。如果你做一些分析,你可能會發現你從緩存中進行了很多次讀取。
我們對enyim客戶的經驗非常積極。我們在大約10個節點上的ASP.NET服務器場中運行memcached,並且它非常穩定。對於某些形式的數據(經常訪問),我們更喜歡
內存
ASP.NET的進程內緩存。
0
一定要檢查您的序列化和反序列化代碼以進行適當的對象或流處理。
我有完全相同的w3p.exe刺激到99%的症狀,並且確信它是Enyim/Membase驅動程序錯誤,但事實並非如此。這是我們的,這是因爲我們忘記了的MemoryStream在我們的JSON助手類反序列化JSON的每個對象後的Dispose():
public static T DeserializeToObject<T>(this string json)
{
byte[] byteArray = Encoding.ASCII.GetBytes(json);
MemoryStream stream = new MemoryStream(byteArray);
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
T returnObject = (T)serializer.ReadObject(stream);
stream.Close();
stream.Dispose(); // we forgot this line!
return returnObject;
}
相關問題
- 1. Enyim Memcached探索.Net MVC 3
- 2. 代碼::塊CPU秒殺
- 3. C#Enyim Memcached - 命名空間'Enyim'不存在。缺少組件?
- 4. Memcached 1 Meg限制,Enyim .Net客戶端
- 5. 與IEnumerables序列化類 - 與Enyim Memcached的
- 6. php memcached enyim客戶端標誌問題
- 7. 不支持的MULTI-GET Enyim Memcached的C#
- 8. 供應商vs供應商混淆
- 9. Firefox殺死CPU
- 10. Enyim性能問題
- 11. 如何獲取Android設備的CPU供應商名稱。
- 12. enyim和memcached:NOT_STORED錯誤
- 13. 防止過多的連接的memcached(Enyim客戶端)
- 14. 不能得到簡單的enyim memcached測試或log4net工作
- 15. 哪裏可以找到enyim和memcached的文檔?
- 16. Enyim序列化錯誤Linq
- 17. 諒解CPU秒
- 18. 會員供應商
- 19. 會員供應商
- 20. SQL - 由供應商
- 21. 從供應商類
- 22. 會員供應商
- 23. Webpack供應商庫
- 24. SubSonic Oracle供應商
- 25. 供應商無效
- 26. Oauth的供應商
- 27. 供應商/資產
- 28. 非Http響應與jmeter秒殺測試
- 29. 無法找到urbanairship的供應商信息。供應商
- 30. 多供應商/供應商的典型模式?
能否請你解釋memchanged供應商是什麼?我認爲memcached只在內存中,沒有序列化到磁盤。謝謝! – Jacko 2010-08-08 13:52:19
正確,memcached完全在內存中。但是,當您通過網絡將.NET對象發送到您的memcached服務器時,您必須將您的內存中的演示文稿轉換爲有線演示文稿。序列化並不總是磁盤,它意味着將您的對象(圖)轉換爲串行表示(即字節序列)。噢,在我說「我們更喜歡內存緩存」的地方,我應該說「我們更喜歡進程內緩存」 – 2010-08-13 12:38:28