2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
JVM parametri forma occasus programmatis Verni Booz (Tomcat startup directe additur fasciculi catalina.sh in indice bin):
java -Xms2048M -Xmx2048M -Xmn1024M -Xss512K -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -jar microservice-eureka-server.jar
finitione:
Minor occasus -Xss, minor numerus aestimatus, qui significat quod pauciores tabulae acervus in ACERVUS filo collocari possunt, at numerus filorum qui aperiri potest, plus in toto JVM erit.
-Xss: ACERVUS magnitudinem cuiusque sequelae, defaltam 1M
-Xms: Pone initialem magnitudinem praesto acervus, defectus 1/64 memoriae corporis
-Xmx: pone magnitudinem maximam praesto acervus, defectus 1/4 corporis memoriae
-Xmn: novae generationis magnitudo
- XX: NewRatio: Defectus 2 significat novam generationem computare pro 1/2 generationis veteris et 1/3 totius cumulum memoriae.
-XX:SurvivorRatio: Defectus 8 significat spatium superstes occupare memoriam Eden 1/8, id est, 1/10 novae generationis memoriam.
Duo JVM parametri circa metaspace sunt: -XX: MetaspaceSize=N et -XX:MaxMetaspaceSize=N
-XX: MaxMetaspaceSize: Metaspatii magnitudinem maximam constitue. Defalta est -1, quod significat terminum non esse, vel solum magnitudine locali limitatum.
- XX: MetaspaceSize: Limen initialem metaspace ad felis Fullgc denota (nulla enim metaspatii magnitudo certa est), in bytes collector hunc valorem accommodet: Si magna spatii quantitas dimissa est, valorem convenienter minuat; Hoc aliud significat ac -XX: PermSize parametrum in versionibus prioribus jdk. -XX: PermSize significat capacitatem initialem generationis permanentis.
Cum metaspace resisiendo plenam GC requirat, haec operatio valde pretiosa est. Si numerus plenae GC incidit in applicatione incipiente, plerumque ex resisione generationis permanentis vel metaspace plerumque commendatur in parametris JVM, MetaspaceSize et MaxMetaspaceSize eiusdem valoris pone, easque majores quam valorem constituo.
In Apparatu virtuali HotSpot, propositio rerum in memoria conditarum in tres areas dividi potest: obiectum capitis (Header), instantia data (Instantiae Data) et alignment Nullam (Padding). Obiectum princeps machinae virtualis HotSpot duas notitias partes includit. Prima pars adhibetur ad reponendas notitias runtimes obiecti ipsius, ut codicem Nullam (HashCode), GC aetatem generationis, vexillum status cincinnum, lock tentum filo. , obversis stamina ID , Favor indiciis , etc. Altera pars obiecti header est ratio monstratoris, quae regula obiecti suo genere metadata.
1. Utens 32-bit indicibus (repono usus 64-bit) in HotSpot in 64-bit suggestu fere 1.5 temporibus plus memoria utens simul etiam GC erit sub pressione maiore
2. Ad memoriam reducendam consummationem in suggestis 64-bit, munus compressionis monstratorem da
3. In jvm, 32-bit inscriptiones usque ad 4G memoriae (2 ad 32 potentiam), quae optimized comprimendo et descriptam objecti monstratorem cum in acervo memoriae reponitur, et decocendo sumendo. ad cpu registri (obiectum monstratorem in acervo Est 32 frena, 35 frena in registro, 2 ad 35 = 32G), praebens jvm ad ampliores figurationes memoriae (minus quam vel 32G) tantum utendo. XXXII frenum oratio
4. Cum acervus memoria minor est quam 4G, non opus est ut monstratorem compressionem efficiat. JVm directe removebit altam 32-bit inscriptionem, hoc est, humilem spatium virtualis inscriptionis utere.
5. Cum acervus memoria maior est quam 32G, monstrator pressio irrita fiet et 64-bit (i.e. 8 bytes) compellare debet obiectum Javae acervus ejua major 32G.
In hoc casu, JVM potest optimize objecti destinatio memoriae locum convertendo in parametri analysi evadendi (-XX:+DoEscapeAnalysis), ut collocatur in ACERVUS primum per repositum scalarem (prouinciam in ACERVUS). conversus est per default post JDK7.
Repositum scalare: Cum per analysin effugium determinatur objectum extrinsecus accedere non posse, objectum ulterius dissolvi, JVM objectum non creabit, sed membrum objectum variabiles in plures variabiles variabiles hac methodo adhibitas dissolvet. His substitutis membrum variabilium variabilium spatium in ACERVUS vel tabularium collocant, ut nulla sit insufficiens memoria pro obiecto destinatio quia magnum spatium contiguum non est. Admitte scalares parametros repositos (-XX:+ EliminateAllocations), quod est per defaltam post JDK7.
Scalaris et aggregatio quantitatis: scalaris est quantitas quae ulterius dissolvi non potest, et species fundamentalis Iavae scalaris est (ut int, longa et aliae rationes fundamentales notae et species referentiae, etc.). est quantitas quae ulterius dissolvi potest, et haec quantitas vocatur polymerization moles. In JAVA, objecta sunt aggregata quae ulterius dissolvi possunt.
Magnae res sunt obiectae quae magnam quantitatem spatii memoriae continuae requirunt (ut chordae et vestitus). JVM parameter -XX: PretenureSize Threshold magnitudinem rerum magnarum constituere potest. Si obiectum magnitudinis statutum excedit, protinus in antiquam generationem intrabit et iuvenum generationem non ingredietur.
Exempli gratia: parametros JVM pone: -XX: PretenureSize Threshold=1000000 (unitas est bytes) -XX:+UseSerialGC. Si primum programmata superius exequeris, invenies magnum obiectum directe ad veterem generationem.
Cur sic se habet?
Ad vitandum operationes describendas, cum collocandi memoriam rerum magnarum et efficientiam reducendi.
In area superstes ubi objectum nunc ponitur (unum ex areis, aream ubi objectum ponitur), tota moles objectorum massae major est quam 50% magnitudinem memoriae hujus areae Superstitis (-XX. :TargetSurvivorRatio specificari potest), tunc maior est quam Objecta, quae maximam aetatem huius objecti massam directe ingredi possunt senectutem summa multae aetatis obiecta cum aetate 1 + aetas 2 + aetas n excedit 50 superstes area. Quae quidem regula sperat ea quae diu supersint obiiciet quamprimum senectutem intraturum. Obiectum dynamicae aetatis iudicium mechanismum plerumque utitur post gc minor.
Ante singulas gc minores in generatione novella, JVM reliquum spatium liberum in generatione antiqua computabit.
Si spatium vacuum minus est quam summa magnitudinum omnium objectorum in iuvenibus generationibus (including objecta purgamenta)
Hoc reprehendo num modulus "-XX:-HandlePromotionFailure" (per defaltam in jdk1.8) constituatur.
Si hic modulus praesens est, inspiciet an magnitudo memoriae in generatione antiqua praesto sit maior quam mediocris rerum magnitudo quae post unamquamque gc priorem minorem aetatem inveteraverunt.
Si effectus prioris gradus minor est quam vel parametri ante non positi, tunc plena gc Urguetur, et vetus generatio et iuvenum generatio simul colligentur obiecti post redivivus "OOM" occurret.
Sed si magnitudo reliquarum rerum superstitum quae movenda sunt ad veterem generationem post gc minorem, adhuc maior est quam spatium in generatione veteri, plena gc etiam Urguet post plenum gc adhuc nullum spatium obiectorum superstitum post gc minorem, erit etiam "OOM" occurs
Complures classis principalis tomcat onerantes:
commonLoader: Tomcat's oneratus classium fundamentalissimus.
catalinaLoader: Classis privata oneratus receptaculi Tomcat.
sharedLoader: classis oneratus ab unoquoque Webapp communicatur. Classes in via loading omnibus Webapps patent, sed non tomcat continente;
WebappClassLoader: Quisque Webapp scriptor privatus classi oneratus. Classes in itinere onerantium solum apparent in Webapp currenti, sicut onerantium genera in sarcina bellica relatas habent applicationes.