cari

Rumah  >  Soal Jawab  >  teks badan

java - JVM内存一般设成多大的?

我以前跑tomcat的JVM一般都设2G的内存,但是最近我看了一下Solr的服务器,JVM给了6G,通过-Xms6000M -Xmx6000M设置的。而且有人建议只要服务器有内存,JVM的内存还可以再给。
64位的JVM的内存是不是可以随便设?内存有多少一般怎么确定,有什么利弊?

阿神阿神2769 hari yang lalu631

membalas semua(2)saya akan balas

  • ringa_lee

    ringa_lee2017-04-18 09:55:19

    Menganalisis memori maksimum versi JVM yang berbeza bagi beberapa syarikat popular, dan hasilnya adalah seperti berikut:
    Memori maksimum bagi pelayan memori maksimum pelanggan (megabait) versi JVM (megabait) syarikat
    SUN 1.5. x 1492 1520
    SUN 1.5.5(Linux) 2634 2660
    SUN 1.4.2 1564 1564
    SUN 1.4.2(Linux) 1900 1260
    IBM 1.4.2 1564 1564
    SUN 1.4.2(Linux) 1900 1260
    IBM 1.4.260<🎜
    BEA JRockit 1.5 (U3) 1909 1902
    Melainkan dinyatakan sebaliknya, semua versi JVM dijalankan di bawah sistem pengendalian Windows
    Apa yang saya ingin gambarkan melalui jadual ini ialah jika mesin anda mempunyai terlalu banyak memori, hanya Anda boleh meningkatkan penggunaan mesin dengan menjalankan beberapa lagi kejadian Contohnya, jika anda menjalankan Tomcat, anda boleh memasang beberapa lagi Tomcats dan mencipta kluster, dan sebagainya.
    Memori Timbunan dan Bukan Timbunan Menurut kenyataan rasmi: "Mesin maya Java mempunyai timbunan. Timbunan ialah kawasan data masa jalan dan memori semua kejadian dan tatasusunan kelas diperuntukkan dari sini. Timbunan itu Dicipta apabila mesin maya Java bermula "Memori di luar timbunan dalam JVM dipanggil memori bukan timbunan." Ia boleh dilihat bahawa JVM terutamanya menguruskan dua jenis ingatan: timbunan dan bukan timbunan. Ringkasnya, heap ialah memori yang boleh diakses oleh kod Java dan dikhaskan untuk pembangun adalah memori yang dikhaskan untuk JVM untuk kegunaannya sendiri, jadi memori yang diperlukan untuk kawasan kaedah dan pemprosesan atau pengoptimuman dalaman JVM (seperti Cache kod yang disusun JIT), setiap struktur kelas (seperti kumpulan pemalar masa jalan, data medan dan kaedah), dan kod untuk kaedah dan pembina semuanya berada dalam memori luar timbunan. Peruntukan memori timbunan Memori awal yang diperuntukkan oleh JVM ditentukan oleh -Xms, dan lalai ialah 1/64 daripada memori fizikal, memori maksimum yang diperuntukkan oleh JVM ditentukan oleh -Xmx, dan lalai ialah 1/4 daripada memori; ingatan fizikal. Secara lalai, apabila memori timbunan percuma kurang daripada 40%, JVM akan meningkatkan timbunan sehingga had maksimum -Xmx apabila ingatan timbunan percuma lebih daripada 70%, JVM akan mengurangkan timbunan sehingga had minimum; -Xms. Oleh itu, pelayan biasanya menetapkan -Xms dan -Xmx adalah sama untuk mengelak daripada melaraskan saiz timbunan selepas setiap GC. Peruntukan memori bukan timbunan JVM menggunakan -XX:PermSize untuk menetapkan nilai awal memori bukan timbunan, lalai ialah 1/64 daripada memori fizikal XX:MaxPermSize menetapkan saiz maksimum memori bukan timbunan, lalainya ialah 1/4 daripada ingatan fizikal. Had memori JVM (nilai maksimum) Pertama sekali, memori JVM adalah terhad kepada memori fizikal maksimum sebenar (karut! Haha Dengan mengandaikan bahawa memori fizikal adalah tidak terhingga, nilai maksimum memori JVM mempunyai banyak kaitan dengan sistem pengendalian). . Secara ringkasnya, walaupun ruang memori boleh dikawal bagi pemproses 32-bit ialah 4GB, sistem pengendalian tertentu akan menetapkan had ini secara amnya ialah 2GB-3GB (secara umumnya, ia adalah 1.5G-2G di bawah sistem Windows dan 1.5. G-2G di bawah sistem Linux).

    Jadi sebab utama program tidak boleh dimulakan kerana menetapkan parameter VM adalah seperti berikut: <🎜>1) Nilai -Xms dalam parameter lebih besar daripada -Xmx, atau nilai -XX:PermSize ialah lebih besar daripada -XX:MaxPermSize 2) - Jumlah nilai Xmx dan -XX:MaxPermSize melebihi had maksimum memori JVM, seperti had memori maksimum sistem pengendalian semasa, atau memori fizikal sebenar, dsb. <🎜>

    balas
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:55:19

    1. Ia bergantung pada situasi setiap aplikasi, seperti purata jumlah permintaan harian, purata saiz memori selepas fullgc, dll.
    2 memori sistem pengendalian

    balas
    0
  • Batalbalas