從前年起客戶的所有web容器都換成了websphere,版本是5.1。最初也不懂得性能優化,只是用ANT給Project打個war的包,通過WS的管理控制臺發布上去就行了。但是客戶在實際使用時,有時會出現響應慢,最后連WS都hang起。用kill -java進程號產生的javacore及heapdump文件來看,有oralce數據庫的問題、也有java 程序自身的OutOfMemory,排除程序的BUG,然后也試著學學優化。
現在也總結一下WS優化的經驗:
1.Java 虛擬機初始堆大小和最大堆大小
WS通常默認是256,可以適當調整最大堆為512。不過也不要調的過大,小心WS啟不啟來,有一次我把初始堆調成768最大堆調成了2048,當我startserver -server1?時就提示WS無法初始化,原因是內存不足,所以一定要根據機子的性能來調整?呀!
2.web容器的線程池最小大小和最大大小
3.Jdbc連接池屬性
這個最難把握,因為最大連接數、最小連接數、連結超時、獲得時間等等都要依據數據庫及網張絡的性能來調整。而且獲得時間、不使用超時、時效超時是互相聯系的一組參數,一般來說:獲得時間要小于不使用超時及時效超時,且三個不能為零,是最好的!
4.啟用servlet高速緩存
5.語句高速緩存大小