10 Važnih JVM mogućnosti za proizvodnju JAVA aplikacijskog sustava

Upoznajte osnovne JVM (Java Virtual Machine) opcije za bolje performanse i ispravljanje pogrešaka.


Ako ste Java programer ili administrator srednjeg softvera, tada biste trebali znati što znače JVM opcije, zajedno s njihovom važnošću i kako utječu na vašu aplikaciju. Otkrijmo ih.

Pregled opcija JVM-a

Kada govorimo o JVM opcijama, tada postoje tri vrste opcija koje možete uključiti u svoje JVM, standardne, nestandardne i napredne opcije. Ako isprobate naprednu opciju, uvijek koristite opciju sa -XX. Slično tome, ako primjenjujete nestandardnu ​​opciju, koristite -X. Standardne opcije ne dodaju ništa na tu mogućnost.

Koje opcije JVM koristi vaša aplikacija?

Ako se aplikacija izvodi na Linuxu, možete koristiti ps -ef | grep java za prepoznavanje Java procesa i pogled na JVM opcije ispisane kao argumente procesa. Ako se u sustavu odvija više od jednog Java procesa, možda ćete morati zahtijevati ključnu riječ koja je jedinstvena za vašu Java aplikaciju.

Ako je vaš argument predug, pokušajte koristiti ps -auxww jer će i ova naredba prikazati dugačak popis argumenata.

Nakon što imate popis JVM zastava, možete dobiti predstavu o ponašanju bilo koje Java aplikacije, npr., Tomcat.

Veličina Java heap

 -XMS – postavite početnu veličinu Java heap
-Xmx – postavite maksimalnu veličinu Java heap
-XSS – postavite veličinu snopa javanskih niti

-Xms – Ova je opcija definiranje početne veličine hrpe za JVM, npr., Xms2048m, što znači da je početna veličina hrpe JVM-a oko 2 GB. Kada se pokrene JVM, heap memorija će biti toliko velika. Začudo da! Ovo je predviđeno radi sprečavanja promjene veličine tijekom pokretanja i poboljšanja vremena pokretanja JVM-a.

-Xmx – Ova je opcija definirati maksimalnu veličinu gomile JVM-a, npr. Xmx2048m što znači da će maksimalna veličina JVM-a biti 2 GB.

U osnovi ćete uvijek imati Xmsand-Xmx zajedno.

Postavite Postotak gomile

-XX: MaxHeapFreeRatio – postavlja maksimalni postotak bez gomile nakon GC-a kako bi se izbjeglo smanjivanje.

-XX: MinHeapFreeRatio – postavlja minimalni postotak bez gomile nakon GC-a kako bi se izbjeglo širenje; za nadzor upotrebe hrpe možete koristiti JCosole.

Omogući dijeljenje podataka klase

Navedite opciju Xshareclasses da biste omogućili dijeljenje podataka klase u predmemoriji klase. JVM se povezuje na postojeću predmemoriju ili stvara predmemoriju ako ne postoji. Možete imati više predmemorija, a ispravnu predmemoriju možete odrediti dodavanjem podupracije u opciju -Xshareclasses.

PermGen Veličina

Ranije opcije JVM definiraju veličinu heap memorije, ali -XX: PermSize je odrediti veličinu prostora PermGen, gdje se spremaju nizovi stringova i metapodaci klase. Ova je opcija posebno učinkovita za web poslužitelj poput Tomcat koji često učitava klase web aplikacije tijekom implementacije.

Usput, vrijedi shvatiti da je PermGen prostor preuzeo Metaspace u Javi 8, a ova opcija nije primjenjiva ako se trčite s JRE 8 JVM.

Ispis GC

-opširnije: GC – evidentira prikupljanje smeća i koliko dugo traju.
-XX: + PrintGCDetails – uključuje podatke iz -verbose: gc, ali također dodaje podatke o veličini nove generacije i preciznijim tajmingima.
-XX: -PrintGCTimeStamps – Ispišite vremenske oznake pri odvozu smeća.

Ove JVM opcije koriste se za omogućavanje evidentiranja odvoza smeća, što je vrlo učinkovito za rad osjetljiv na kašnjenje. Bili smo u sustavima u kojima tražimo mikrosekunde kašnjenja, a ako prepoznate, veliko odvoz smeća može trajati nekoliko milisekundi.

Dakle, mi tražimo GC besplatnu arhitekturu poput LMAX razarača, ali ako ne idete za ultra latencijalno osjetljivu aplikaciju, ova će vam zgodna opcija savjetovati važne GC statistike. Dobićete informaciju da li je to veliko ili manje odvoz smeća, kakav se skupljač smeća primjenjuje, koliko često se pamćenje obnavlja i koliko vremena drži itd..

Rukovanje s pogreškom “OutOfMemory”

Za aktiviranje deponije iz memorije možete koristiti -XX: + HeapDumpOnOutOfMemoryError

Ova opcija JVM stvara ispis snopa kada vaš JVM umre s pogreškom OutOfMemory. Nema troškova osim ako se stvarno ne dogodi OOM. Ova je zastava potreban za proizvodne sustave jer je obično jedini način dubokog utvrđivanja problema.

Dump heap će biti postavljen u “trenutnom imeniku” JVM-a prema zadanim postavkama. Ako želite stvoriti gomile otpada na određenom direktoriju, pokrenite

-XX: HeapDumpPath = [katalog puta-do-heap-dump]
-XX: + UseGCOverheadLimit
-XX: OnOutOfMemoryError ="< cmd argove >;< cmd argove >"

Datoteka heap dump može biti ogromne veličine, do gigabajta, tako da osigurajte da ciljni datotečni sustav omogućuje dovoljan kapacitet.

Ako želimo ponovno pokrenuti poslužitelj odmah nakon što se pojavi memorija, možemo postaviti ovaj parametar iste namjene –

XX: OnOutOfMemoryError ="isključivanje -r"

Praćenje klađenja i istovara

-XX: + TraceClassLoading i -XX: + TraceClassUnloading dvije su JVM opcije koje koristimo za ispis podataka o zapisu kad god se klasa učita u JVM ili istovari iz JVM. Ove JVM zastave su korisne ako imate bilo kakvu vrstu propuštanja memorije koja je povezana s učitavačem razreda i sumnjate da klase ne istovaraju niti se skupljaju smeće..

Java učionica

Govoreći o JAVA Classpath-u, Xbootclasspath specificira zapise klase koje želimo učitati bez provjere. JVM provjerava sve klase koje učitava kako bi se osiguralo da ne pokušava skinuti objekt s int, iskočiti dodatne unose s hrpe ili gurnuti previše, itd.. 

Stavljanje klase na bootclasspath takođe preskače troškove, ali treba ga koristiti samo ako znate da su klase već mnogo puta provjerene. U JRuby-u je ovo skraćeno vrijeme pokretanja za pola i više za jednostavnu skriptu.

profiliranje

Java profiliranje je proces nadziranja različitih parametara razine JVM-a kao što su Izvođenje metoda, Izvršavanje niti, Skupljanje smeća i Stvaranje objekata. Java profiliranje pruža vam i finiji prikaz izvršavanja ciljne aplikacije i njene upotrebe resursa.

-Xprof
-Xrunhprof

64-bitno okruženje

U OS okruženju u kojem su instalirana 32 i 64-bitna paketa, JVM automatski bira 32-bitne ekološke pakete kao zadane.

Ako želimo ručno postaviti okruženje na 64 bitno, možemo to učiniti pomoću parametra -d. I očito, OS bit može biti ili 32 ili 64.

Zaključak

Nadam se da će vam ovo pomoći u konfiguriranju JVM parametara za vašu aplikaciju. Ako vas zanima dubinsko učenje o upravljanju java memorijom, pogledajte ovo Udemy tečaj.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map