Melanjutkan serangkaian artikel yang menentang sesuatu terhadap sesuatu, kami akhirnya melihat sesuatu yang bermanfaat, yaitu server Minecraft. Pertimbangkan sistem operasi mana dan Java mana yang masih lebih baik untuk menjadi tuan rumah permainan umat manusia terbaik. Sebagai perbandingan, Ubuntu 18.04 LTS dan Server Core 2019 diambil. OpenJDK diinstal pada Ubuntu, dan Oracle Java dan AdoptOpenJDK diinstal pada Windows.
Seperti dalam semua tes komparatif lainnya, mesin virtual tidak memiliki tetangga, hanya satu VM yang selalu berjalan di host.
Server mulai dengan argumen:
-Xmx8G -server
Komponen Windows Defender telah dihapus pada Windows Server Core, seperti pada gambar kami dengan
Windows VDS untuk 99 rubel. Sebagai perbandingan, ini adalah apa yang Anda kehilangan ketika Anda menghidupkannya.
Untuk masing-masing distribusi Java, versi terbaru yang tersedia untuk publik dipasang, yaitu:
Oracle: "1.8.0_241"
AdoptOpenJDK: "1.8.0_242"
OpenJDK: "1.8.0_232"
Putaran nomor 1, generasi dunia
Dalam tes ini, kami menghasilkan dunia. Generator adalah Geographicraft dengan Biomes'O'Plenty, Dynamic Trees, PVG, gua worley, IC dan BC diinstal.
Dunia sama sekali tidak klasik dan dihasilkan terasa lebih lambat dari biasanya.
Dunia dengan 2.704 bidak dihasilkan:
Windows dengan AdoptOpenJDK melepaskan diri dari pesaingnya selama 5 detik.
Putaran nomor 2, mulai server
Pengukuran dilakukan dalam tiga lintasan untuk setiap mesin virtual. Setiap kali, masing-masing server menyelesaikan unduhan dunia kedua per detik dibandingkan dengan hasil sebelumnya.
OpenJDK pada Windows dan OpenJDK di Linux menunjukkan hasil yang sama.
Putaran nomor 3, memori yang ditempati
Proses mulai mengkonsumsi lebih banyak memori, semakin banyak inti yang diinstal di atasnya. Di bawah ini adalah tabel memori yang ditempati dari proses server kosong tanpa dunia dimuat di atasnya.
Oracle JRE mengkonsumsi rata-rata 80-100 megabita lebih banyak pada jumlah genap genap. Hal yang sama berlaku untuk AdoptOpenJDK, hanya pada jumlah inti yang ganjil.
Linux tidak menunjukkan keanehan seperti itu.
Putaran No. 4, 32 ayam dalam kotak 2 dengan 2
Adegan adalah perhitungan tabrakan 32 ayam dalam kotak 2 oleh 2. Adegan disiapkan di muka dan dunia yang sama tersebar di server sehingga semuanya jujur.
Satu inti dipasang untuk pengujian ini, dan prosesnya diatur ke prioritas waktu-nyata.
Perangkat kerja OpenJDK yang diatur dalam adegan ini adalah 40 megabyte lebih dari para pesaingnya.
Konsumsi prosesor rata-rata di Oracle dan AdoptOpenJDK adalah sama, tetapi sampah Oracle lebih sering mengumpulkan dan lebih intensif, yang sering menyebabkan ledakan aktivitas prosesor.
Untuk memperkirakan berapa banyak adegan yang bisa kami proses, mari kita tingkatkan laju tick server.
Dalam uji beban tinggi, Ubuntu c OpenJDK menyusul Windows c AdoptOpenJDk, dan Oracle sedang mengejar ketinggalan.
Di bawah beban yang lebih tinggi, OpenJDK pada Windows memberikan hasil yang lebih baik daripada di Ubuntu.
Server OpenJDK di Ubuntu terus-menerus terhapus dan adegan membeku. Windows sedikit lebih buruk pada OpenJDK yang sama. Oracle, bagaimanapun, menangani yang terbaik dengan paling sedikit pembekuan.
Antara lain, Oracle SE tetap dalam jumlah RAM yang sama dengan OpenJDK.
Round No. 5, 64 * 64 chunk dan Dynamic tree
Adegan ini berisi hutan dan beberapa lusin massa. Kilometer pohon terus tumbuh dan memperbarui posisi blok mereka.
Setiap pohon adalah ubin terpisah, tetapi pada awalnya memiliki tingkat centang yang rendah, hanya berdetak 1 kali dalam 20 pertandingan. Di bawah ini adalah grafik pemanfaatan prosesor per server.
Ubuntu + OpenJDK dan Windows Server dengan Oracle on board tidak dapat memulai server dalam argumen yang dibahas sebelumnya, sehingga mereka tidak masuk ke dalam jadwal.
Untuk memulai server, saya harus mengubah flag ke:
-Xms4g -Xmx8G -server -XX:+UseCompressedOops -XX:+AggressiveOpts
Ketiga instance awalnya bersandar pada 100% dari prosesor, tetapi hanya Windows Server + AdoptOpenJDK yang tidak menjatuhkan server. Setelah pengumpulan sampah, semuanya kembali ke jadwal di bawah ini.
Ketika beralih dari tingkat centang dari 60 ke 70, di Ubuntu, jadwal beban CPU mulai berperilaku seperti gelombang sinus, itulah sebabnya pemanfaatan CPU rata-rata tiba-tiba mulai turun karena meningkatnya kompleksitas tugas. Karena itu, jadwal harus dihentikan di tempatnya sekarang.
Ini mungkin perbedaan antara penjadwal Linux dan Windows.
Kesimpulan:
Meskipun terdapat perbedaan obyektif dalam distribusi OS dan JRE, tidak mungkin untuk memberikan rekomendasi khusus, yang secara obyektif lebih baik untuk mempertahankan server.
Dalam hal ini, mungkin ada baiknya memilih sistem operasi yang lebih Anda kenal.
