Re: [問題] Hibernate...讓我傷腦筋的東西阿
俺亂出一下主意,
您可以去試著調看看
※ 引述《E04urmom.bbs@ptt.cc (KO)》之銘言:
> 版大
> 其實, 單純就下 sql 語法跟 O/R Mapping 工具轉換
> 對於大型專案不是無法解決的問題
> 針對 sql 語法加上 index 即可解決這部份的瓶頸
> 現在我遇上最大的麻煩
> 是在 Web Server init 的時候, 必須 init-load Hibernate 的 class
1. 這部分改用 lazy load 模式看看
> 導致系統效能以及需求大量增加
> 根據實測,記憶體小餘 1G 以下
> Web Server 連 init 都會失敗 (outofmemory error)
> 結果回信 "Hibernate init 的時候記憶體要求太高, 導致 Web Server 當機"
> 我想知道有什麼樣的方式可以避免這狀況...找遍國外論壇沒有 tuning 的方法
> 目前人少的狀況已經是這樣
> 我擔心幾百個人上線的時候, 會不會每五分鐘就當機一次 >"<
2. 這部分試著在 read-only 的運算加生命週期較長的 cache
變動較高的部分先可以不要做沒關係
http://www.hibernate.org/61.html
3. 不知您有沒有調 jvm
預設的 gc 演算法是適用於小型的程式用的
http://java.sun.com/docs/hotspot/gc1.4.2/
以 sun jvm 為例
http://www.javaworld.com.tw/jute/post/view?bid=5&id=183909&sty=3&keywords=bbs
改用
-XX:+UseParallelGC -XX:ParallelGCThreads=5
平行化的GC方式 (ibm 好像都2 core?)
可以加速回收沒用到的東西
4. 關於 coding 方面,如果是啟動後還是記憶體吃緊
要查看看是不是產生太多用了就丟的物件
試著把他們放到 object pool 重複使用
5. connection pool (pool 一類)
一開始就設大一點,
大概 平均值 * 1.5 的數量先試看看嚕
6. 其實不用等到上線就能測了 JMeter 等著你 :P
7. tempo 最近有寫一點 note
http://www.pocketshark.com/blog/page/tempo?entry=bye_bye_criteria_query
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: 218-161-127-199.dynamic.hinet.net
討論串 (同標題文章)
完整討論串 (本文為第 4 之 9 篇):