1.JVM???????????????????????

???????????????????????????????Щ?????????????????Щ?????Java????????????????JVM??????????????????????????????????????????????????????????????????????????????JVM???????

????Java??????Java EE?????????Java Heap??????????????????????????????????????Щ??????????????

???????????????й????OutOfMemoryError?????????????????????

?????????????????????????????????????????????

    ?ù????????????????????????????????????裩????????????????

    ?????JVM-Xms?????OutOfMemoryError????????????????????????????????????????????????????

    ????????????????????????????????????????????????????????????????……

    Java Heap???????????е?JVM???????????????YoungGen?????磩??OldGen??????????????

    PermGen??????????????Sun HotSpot VM??(PermGen?????Java7????Java8?????н????????

    Native Heap??C-Heap?????????????е?JVM?????

    Sun HotSpot VM

    IBM VM

    Oracle JRockit VM

    Sun(Oracle)–Java memory management white paper

    OpenJDK–Open-source Java implementation

    ????????ж?????????ó?????????????????????JVM????????????ж????ear?????war?????jar???????????JVM????????ó?????????????????????

    ????ж???????????????????????????????API?????????????????????????????????HotSpot VM PermGen???????JIT?????????????????????

    ??????????????????ó???????????????????????????API??????????????е???????棬??????ж?????????????????????Java Heap OldGen???????????

    ?????????????м??????????????????????????Java???????????????棬???????OutOfMemoryError????

    ?????????????1GB???????????????????????????PermGen???????512 MB??

    ????????????500MB

    ??????????????????5000?????????

    ???????????????500K

    ????????????????????2.5GB??

    ????????JVM?????????

    ????????ó?????????????????????????С????????????????????????VS?????????????滺??????

    ???????????????????????????????ó??????????????—???????????64λ????????棬????????????????????

    ???????JVM?????Java???С???????????????

    ????JVM?????????

    ????GC???????????JVM????

    ?????????????л?????

    ?????μ?Cloud??IT???????

????????????????

???????????????????????????????????????????????棨?????????????????????????????????????????????????????????????????????????????????????з????????

?????????????JVM??JVM???????????????????е?????????????

???????????????????????????JVM????????????????????Щ???????????????????????????????Ч??????????????????????????????????????????δ?????????Щ????????????????????JVM?ο?????

JVM?????3???????

????????????????????飬?e?Sun??Java???????????OpenJDKS?????????????????????

???????????????JVM??????????Xmx?????????????????????????????????????PermGen?????????????????????????????CPU core????

?????Java Heap???С?????Heap?????У?32λ???????????????????????????32λVM??2.5GB+?????????????????????ó?????ú???????????????????OutOfMemoryError??????????64λJVM????????????????????????????????????????????????????????????????GC??С????????????????????????????????????16GB??64λ??????????????20??Java EE??ó???

2.???????ó????????????????????

??ó??????????????????Java???????????????????棬??“???”????????????

??JVM????????????ó???????????????PermGen?????????????????沢???????л?????????????????????OldGen?????????????????檔

?跨?????????y??к????????????????????????????????????ЩJVM?????????????????????32λJVM?????????????Java???С????2 GB(-Xms2048m??-Xmx2048m)??????Java EE??ó????????????????????????????????PermGen??

???????????????????????ó??????????32λJVM?????????????±????????????????????????????

????64λJVM?? ???3GB????4GB??Java??/JVM??????????????

3.??????????ù?????鶯???????????

???????????????????????á??????????????????????????????????????JVM GC“????”????????????????????????????????????????

????????32λJVM??Java???С??????2 GB(??÷??&?????????)????500 MB YoungGen???????1.5 GB??OldGen???

????????????GC???????????ü?????????????????????????????????????????????????????

???????????ó????????????????????????????????ó????????????????????漰?????????л?????????????????????Java?????OldGen?????????XML???????????????????????ó?????????YoungGen???????????????????????

???磺

????5??ear??ó???2000???Java????????????м??????

????????????????????????????£?32λJVM???????????????????????????????????????????JVM??????????????????????????????CPU core????????

?????????????????????????á??????????????????????????????????????????????????????y?壩???????ó?????????????????????????????????????????£???????????????????Щ???????

4.???????

??????????????????

?????????JVM???м?????????

????£?????????????????????????????????????????????Java??????y?????“??2?”??????ó??????????????????????????????????????????????Java????????

???Jprofiler????????????????????????????÷?????????????ó?????????á???????????????Eclipse MAT??????????е???????ж???????????????????????????????????????Java????????????????????????????????????????÷????б?????????????????й???

Java???????????????????????????????????ó?????????????????й???????????????????????????????????????????????????????????????????????????????ó?????????????????????????????????????????????????????Apache Jmeter??

????????????????????ó?????Java EE????????????????????????????豸?????????????????????????????????????????廷????????????????????

????“?????Ч?”??????к???????JVM???????????????????????????????????????????JVM??????????80% + OldGen?????????????????????????????????????????

??????????????????????????????????????????????????????Java????????????????????????(????????)????????????????????????????????????????ζ?????????Щ????????????????????JVM??????м?????????

5.??????

??????????????????????????????????JVM?????????й????????ó?????治????????κμ????????????????????????????????????64λ??Java??????10GB????????GC????????????????????????????????????????????

?????JVM?淶????????????????????????????????????????????????????JVM???????????????????????????????????????????????JVM????????????????????ó????б????IT????????????????????

“??????”????????????ó????????????JVM????????????Щ???????

?????????????????????????64λJVM???????????????úú????????????м????JVM??????????????????????????????????????????????????????????????????????????Ч????????