Walaupun ia belum dioptimumkan. Walau bagaimanapun, saya merasakan ini perlu disokong berdasarkan keperluan perniagaan sebenar dan keupayaan perniagaan untuk mengoptimumkannya.
Pengoptimuman JVM boleh dibincangkan selama berjam-jam.
Pertama: Masalah anda ialah gc penuh adalah kerap. Periksa sama ada jumlah memori dan tetapan generasi lama terlalu kecil. Ia bergantung terutamanya pada parameter -Xmx dan -Xmn Jika terlalu kecil, gc pasti akan kerap berlaku.
Kedua: Tambahkan parameter berikut -verbose.gc -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX +PrintGCApplicationStoppedTime -XX:+PrintTenuringDistribution -Xloggc:/data/log/xxx/xxx-gc.log -XX:+PrintGCDetails Semak setiap kali gc, berapa banyak ruang yang tinggal dalam generasi lama, secara amnya, ruang dalam generasi lama Menetapkannya kepada 2-2.5 kali memori selepas gc adalah nilai yang lebih munasabah. Pada masa yang sama, anda boleh melihat melalui log ini sama ada sejumlah besar objek memasuki generasi lama tanpa gc yang mencukupi dalam generasi baharu. Jika objek yang boleh dikitar semula melalui generasi baharu memasuki generasi lama, gc penuh pasti akan kerap berlaku
Ketiga: Memori pembuangan sebab kod jmap -dump:live,format=b,file=xx.bin [pid] Kemudian lulus MAT (http://www. eclipse .org/mat/) untuk melihat memori besar yang belum dikeluarkan
Walaupun ia belum dioptimumkan. Walau bagaimanapun, saya merasakan ini perlu disokong berdasarkan keperluan perniagaan sebenar dan keupayaan perniagaan untuk mengoptimumkannya.
Lihat saiz timbunan dan qps aplikasi Java, tetapi pada mulanya melihat gc penuh setiap 20 minit, nampaknya tidak normal
Pengoptimuman JVM boleh dibincangkan selama berjam-jam.
Pertama: Masalah anda ialah gc penuh adalah kerap. Periksa sama ada jumlah memori dan tetapan generasi lama terlalu kecil.
Ia bergantung terutamanya pada parameter -Xmx dan -Xmn Jika terlalu kecil, gc pasti akan kerap berlaku.
Kedua: Tambahkan parameter berikut
-verbose.gc -XX:+PrintGC -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC -XX:+PrintTenuringDistribution -XX +PrintGCApplicationStoppedTime -XX:+PrintTenuringDistribution -Xloggc:/data/log/xxx/xxx-gc.log -XX:+PrintGCDetails
Semak setiap kali gc, berapa banyak ruang yang tinggal dalam generasi lama, secara amnya, ruang dalam generasi lama Menetapkannya kepada 2-2.5 kali memori selepas gc adalah nilai yang lebih munasabah.
Pada masa yang sama, anda boleh melihat melalui log ini sama ada sejumlah besar objek memasuki generasi lama tanpa gc yang mencukupi dalam generasi baharu. Jika objek yang boleh dikitar semula melalui generasi baharu memasuki generasi lama, gc penuh pasti akan kerap berlaku
Ketiga: Memori pembuangan sebab kod
jmap -dump:live,format=b,file=xx.bin [pid]
Kemudian lulus MAT (http://www. eclipse .org/mat/) untuk melihat memori besar yang belum dikeluarkan