最近由於工作需要,需要調整jvm的幾個參數。
-Xms1024m -Xmx1024m -Xss1024k -XX:NewSize=768m -XX:MaxNewSize=768m -XX:MaxPermSize=256m -XX:+UseParallelGC -XX:+UseParallelOldGC -Dfile.encoding=UTF-8
jvm分配的內存,粗略的分爲
Xms :虛擬機啓動時,默認分配的內存
Xmx:虛擬機使用的最大的內存
Xss:每個請求線程分配的內存數
XX:NewSize:對於 程序中new 出來的對象存放的區域的內存空間大小(初始值)
XX:MaxNewSize:對於 程序中new 出來的對象存放的區域的內存空間大小(最大值)
XX:MAXPermSize:程序中,非堆內存的上限。此處的內存將不被GC回收。
-XX:+UseParallelGC 並行收集新生代堆內存
-XX:+UseParallelOldGC 並行收集old 堆內存
-Dfile.encoding=UTF-8 jvm字符集
在配置內存時, 服務器的內存爲8G,因此我給jvm最大內存設置爲2 G。可是啓動就報錯了。究其原因是,在32位系統下,jvm內存有個最大值的上限。該上限可用
java -Xmx1610M -version
查看。
如果可正常顯示java的版本信息,則證明該內存值可識別,如顯示錯誤,則證明該內存值無法識別。
32位的jdk,大約在1.5G左右。
這篇文章對 -XX:+UseParallelOldGC 解釋的很棒