解決在使用Amoeba遇到的問題

season0891發表於2013-10-23

最近有同行在使用Amoeba 的過程中多少遇到了一些問題。

總結一下遇到問題的解決方法:

1、讀寫分離的時候設定的在queryRouter中設定無效?

      讀寫分離配置的優先順序別:

       1滿足rule.xml 檔案中規則的級別比 queryRouter的要高
在rule檔案中:
     2)Rule 中的配置 比 tableRule高
     3)讀、寫 配置比 預設配置 高
 
你檢查一下rule.xml是否存在rule 規則配置滿足你的sql,從而走的是 rule中的那些read/write/default   pool. 如果存在可以刪除或者把規則完善。
 queryRouter的配置是針對所有sql,但是如果先滿足了某條rule,則將會選擇rule的配置。
 
記住配置優先順序別。

2、讀寫大資料量的時候記憶體溢位?

Amoeba預設記憶體設定比較少set DEFAULT_OPTS=-Xms64m -Xmx128m,具體設定請根據amoeba.bat進行修改Java的垃圾收集引數、記憶體引數、以及作業系統多執行緒方面等都需要進行調優。java JVM32位系統最大一般是1.5G,多執行緒處理方面,一般看併發以及cpu數量決定的。
 
Sql無限制條數情況,如果結果集合過大,不僅僅amoeba,甚至應用都會崩潰,必然會存在這種記憶體瓶頸問題。這個需要DBA來稽核每條的sql,避免這種類似sql出現。作為測試來說,需要jvm引數設定超過你讀取資料所消耗最大記憶體。Java對超多物件處理會明顯感覺效能下降,特別是進行垃圾回收的時候。
因此在使用amoeba的時候請先調整好自己使用的記憶體引數,這個對非java使用者來說可能有點難度
這兒我就對記憶體引數設定做一個說明:
-Xms 是該應用最小的jvm記憶體。 -Xmx是jvm記憶體最大設定, 後面m表示記憶體大小單位。作為生成環境當作業系統大於1G的時候一般建議設定1024m。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-774892/,如需轉載,請註明出處,否則將追究法律責任。

相關文章