Menyediakan jawaban atas pertanyaan umum tentang Peluncur Perintah Azure untuk Java.
Bagaimana alat ini berbeda dari perintah java?
Perintah java menjalankan HotSpot JVM (Java Virtual Machine) dengan pengaturan default kecuali dikonfigurasi secara eksplisit oleh pengguna.
jaz adalah komponen Azure Command Launcher untuk Java yang meluncurkan java dengan default penyetelan JVM yang dioptimalkan untuk cloud dan sudah teruji, yang dirancang untuk meningkatkan performa dan efisiensi biaya pada VM dan wadah Azure.
Manfaat utama: pengembang tidak perlu menyetel JVM secara manual.
jaz melakukannya untuk mereka.
Apa yang terjadi jika saya sudah mengatur beberapa opsi JVM di lingkungan saya?
Jika beban kerja Anda menyertakan flag penyetelan JVM, perintah jaz tidak menerapkan default penyetelan bawaan sendiri.
jaz diluncurkan java dengan bendera yang Anda pilih.
Sebaiknya hapus bendera penyetelan beban kerja Anda dan biarkan Peluncur Perintah Azure untuk Java menerapkan benderanya sendiri.
Anda juga dapat mengonfigurasi jaz untuk mengabaikan parameter penyetelan Anda dan menggunakan nilai default penyetelannya.
Pertimbangkan untuk menggunakan konfigurasi ini untuk memvalidasi jaz dengan perubahan minimal pada konfigurasi beban kerja Anda.
Untuk melakukannya, atur variabel lingkungan berikut:
export JAZ_IGNORE_USER_TUNING=1
Pengaturan abaikan penyetelan pengguna berlaku untuk argumen baris perintah, variabel lingkungan yang dibaca oleh java, dan @-files.
Anda juga dapat mengonfigurasi jaz untuk melewati semua default penyetelannya dengan mengatur variabel lingkungan berikut:
export JAZ_BYPASS=1
Opsi bypass memungkinkan Anda untuk onboarding ke Peluncur Perintah Azure untuk Java tanpa memengaruhi pengaturan Anda saat ini, bahkan jika beban kerja Anda menggunakan perilaku default dari perintah java.
Perilaku ini mungkin berguna untuk memvalidasi perilaku alat sebelum membersihkan bendera penyetelan JVM.
Mungkin juga berguna untuk melewati penyetelan saat memecahkan masalah yang tampaknya terkait dengan penyetelan JVM.
Opsi JVM apa yang dianggap menyetel bendera?
Perintah jaz menganggap sebagian besar flag yang dimulai dengan -X atau -XX sebagai flag penyetelan, seperti -Xmx<size>.
Contoh penting dari bendera yang dimulai dengan -X tetapi bukan bendera penyetelan adalah -Xlog:<opts>.
Lebih tepatnya, setiap opsi JVM dievaluasi menggunakan logika dalam daftar berikut. Daftar ini menjelaskan logika dalam versi terbaru Azure Command Launcher untuk Java.
- Jika opsi dimulai dengan teks apa pun selain
-X, itu bukan bendera penyetelan. - Jika opsi cocok dengan salah satu ekspresi reguler ini, itu bukan parameter penyetelan:
^-Xlog.+$^-XX:ErrorFile=.*$^-XX:[+-]?HeapDump.*$^-XX:[+-].*OnOutOfMemoryError$
- Jika tidak, opsinya adalah parameter penyetelan.
Saat jaz mencari parameter penyetelan, ia memeriksa argumen yang diteruskan kepadanya dan variabel lingkungan yang java baca secara otomatis.
Variabel lingkungannya adalah:
- Java 8:
JAVA_TOOL_OPTIONS,_JAVA_OPTIONS - Java 9 dan yang lebih baru:
JAVA_TOOL_OPTIONS, ,JDK_JAVA_OPTIONS_JAVA_OPTIONS
jaz juga menangani @-files, juga dikenal sebagai file argumen baris perintah.
Bisakah saya meneruskan flag agen Java saat menggunakan alat?
Yes. Anda masih dapat meneruskan -javaagent dan bendera lain yang tidak menyetel bendera, dan jaz menghormatinya.
Anda dapat menyimpan bendera diagnostik yang berguna seperti:
-
-Xloguntuk pengelogan -
-javaagentuntuk Application Insights atau agen instrumentasi Application Performance Monitoring (APM) lainnya
Apakah alat ini kompatibel dengan lingkungan non-Azure?
jaz dirancang dan diuji terutama untuk Azure Containers dan Virtual Machines, tetapi secara teknis dapat berjalan di tempat lain.
Namun, beberapa pengoptimalan tingkat lanjut dan fitur di masa mendatang mungkin khusus Azure.
Apakah alat ini tersedia untuk Windows Server?
jaz saat ini tersedia untuk Linux di lingkungan x64 dan arm64.
Jika Anda memiliki kebutuhan langsung untuk Windows Server, silakan hubungi kami di openjdk-support@microsoft.com
Mengapa tidak berfungsi dengan runtime JRE atau jlink?
Peluncur Perintah Azure untuk Java telah diuji dan disertifikasi hanya dengan penginstalan JDK penuh. Ini mungkin tidak berfungsi dengan benar dengan:
- Penginstalan JRE (Java Runtime Environment)
- Jlink runtimes kustom
Penginstalan JDK lengkap mencakup semua alat dan pustaka yang jaz mengharuskan untuk bekerja dengan baik. Runtime kustom JRE dan jlink mungkin tidak memiliki beberapa komponen ini, yang dapat mencegah jaz berfungsi seperti yang diharapkan.
Jika Anda perlu menggunakan jaz, pastikan Anda menjalankan penginstalan JDK penuh dari build berbasis OpenJDK yang didukung.