php怎么做网站程序,建工网和环球网哪个好,wordpress手机 不适应,邯郸网站建设效果在java的/bin目录下有许多java自带的工具。 我们常用的有
基础工具
jar:创建和管理jar文件 java#xff1a;java运行工具#xff0c;用于运行class文件或jar文件 javac#xff1a;java的编译器 javadoc#xff1a;java的API文档生成工具
性能监控和故障处理
jps jstat…在java的/bin目录下有许多java自带的工具。 我们常用的有
基础工具
jar:创建和管理jar文件 javajava运行工具用于运行class文件或jar文件 javacjava的编译器 javadocjava的API文档生成工具
性能监控和故障处理
jps jstat jinfo jmap hstack
可视化故障处理工具
JConsole JHSDB
jps用于显示当前运行的Java进程的PID
jps命令显示的Java进程IDPID就是操作系统中的进程IDProcess ID。这是每个进程在操作系统中的唯一标识符。jps列出的PID与ps、top等操作系统工具列出的PID是一致的。
常用参数
-l显示主类的全限定名或JAR文件的完整路径。
jps -l 示例输出 12345 com.example.MyJavaApp 67890 sun.tools.jps.Jps
-v显示传递给Java虚拟机的参数。
jps -v 示例输出 12345 MyJavaApp -Xmx1024m 67890 Jps -Dapplication.home/usr/lib/jvm/java-14
-m显示传递给主类的参数。
jps -m 示例输出 12345 MyJavaApp arg1 arg2 67890 Jps
jstat虚拟机的类加载信息内存信息垃圾回收运行时编译的统计信息
查看类加载信息
jstat -class 12345 输出示例 Loaded Bytes Unloaded Bytes Time(ms)1000 5000 50 200 300查看垃圾回收信息jstat -gc 12345 S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
1024.0 1024.0 512.0 0.0 8192.0 4096.0 10240.0 8192.0 5120.0 2048.0 640.0 320.0 5 0.050 2 0.100 0.150S0C (Survivor 0 Capacity)第一个幸存区的容量单位是KB。 S1C (Survivor 1 Capacity)第二个幸存区的容量单位是KB。 S0U (Survivor 0 Utilization)第一个幸存区的已使用空间单位是KB。 S1U (Survivor 1 Utilization)第二个幸存区的已使用空间单位是KB。 EC (Eden Capacity)Eden区的容量单位是KB。 EU (Eden Utilization)Eden区的已使用空间单位是KB。 OC (Old Capacity)老年代的容量单位是KB。 OU (Old Utilization)老年代的已使用空间单位是KB。 MC (Metaspace Capacity)元数据区的容量单位是KB。 MU (Metaspace Utilization)元数据区的已使用空间单位是KB。 CCSC (Compressed Class Space Capacity)压缩类空间的容量单位是KB。 CCSU (Compressed Class Space Utilization)压缩类空间的已使用空间单位是KB。 YGC (Young Generation GC Count)年轻代垃圾收集的次数。 YGCT (Young Generation GC Time)年轻代垃圾收集的总时间单位是秒。 FGC (Full GC Count)完全垃圾收集的次数。 FGCT (Full GC Time)完全垃圾收集的总时间单位是秒。 GCT (Total GC Time)垃圾收集的总时间年轻代和完全垃圾收集的总和单位是秒。
每1秒输出一次gc快照输出5次jstat -gcutil 30500 1000 5
jstat -gcutil命令的输出以百分比形式显示各个内存区域的利用率即已使用内存占总内存的比例
jvm的内存配置情况jstat -gccapacity 30500 NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC512.0 10240.0 8192.0 1024.0 1024.0 6144.0 10240.0 20480.0 10240.0 10240.0 512.0 1024.0 512.0NGCMN新生代最小容量。 NGCMX新生代最大容量。 NGC当前新生代容量。 S0C、S1C第一个和第二个幸存区的容量。 ECEden区的容量。 OGCMN老年代最小容量。 OGCMX老年代最大容量。 OGC当前老年代容量。 OC当前老年代容量通常和OGC相同。 MCMN元数据区最小容量。 MCMX元数据区最大容量。 MC当前元数据区容量。
jstat -gcold,-gcnew等
jinfo
jvm的常用参数
内存
jvm的最大使用内存最小使用内存 jvm的新生代的最大最小使用内存 元空间的最大最小使用内存 栈的最大最小内存
性能调优相关参数
-XX:ParallelGCThreads: 设置并行垃圾收集器的线程数。 -XX:ConcGCThreads: 设置并发垃圾收集器的线程数。 -XX:SurvivorRatio: 设置新生代中Eden区与Survivor区的比例。 -XX:MaxTenuringThreshold: 设置对象在新生代中经过多少次GC后进入老年代。
jinfo -flags显示所有JVM标志及其值
VM Flags: -XX:CICompilerCount12 //设置即时编译器JIT线程数为12用于提升编译性能。 -XX:ConcGCThreads3 //分层编译最多只进行到级别1通常意味着只进行简单的编译优化。 -XX:UseG1GC //启用 G1 垃圾收集器 -XX:G1ConcRefinementThreads13 //设置 G1 垃圾收集器的并发精炼线程数为13用于处理记忆集的并发更新 -XX:G1EagerReclaimRemSetThreshold16 //设置 G1 垃圾收集器在回收记忆集时的早期阈值 -XX:G1HeapRegionSize2097152 //设置 G1 垃圾收集器堆区域的大小为2MB -XX:G1RemSetArrayOfCardsEntries16 -XX:G1RemSetHowlMaxNumBuckets8 -XX:G1RemSetHowlNumBuckets8 -XX:GCDrainStackTargetSize64 -XX:InitialHeapSize266338304 //堆大小 -XX:ManagementServer -XX:MarkStackSize4194304 -XX:MaxHeapSize4236247040 -XX:MaxNewSize2541748224 -XX:MinHeapDeltaBytes2097152 -XX:MinHeapSize8388608 -XX:NonProfiledCodeHeapSize0 -XX:-ProfileInterpreter -XX:ProfiledCodeHeapSize0 -XX:SoftMaxHeapSize4236247040 -XX:TieredStopAtLevel1 -XX:UseCompressedClassPointers -XX:UseCompressedOops -XX:UseFastUnorderedTimeStamps -XX:-UseLargePagesIndividualAllocation
jinfo -flag MaxHeapSize 30500查看特定标志的值 jinfo -flag MaxHeapSize2147483648 12345修改特点的标志值
jmap查看jvm内存使用情况
1. 生成堆转储Heap Dump
使用 jmap 可以生成 Java 进程的堆转储文件以便后续分析和诊断内存问题。
jmap -dump:formatb,filedump_file_path -dump:formatb,filedump_file_path: 指定生成堆转储文件的格式为二进制b并指定转储文件的路径。 : Java 进程的进程号PID。 例如要生成一个名为 heapdump.bin 的堆转储文件可以执行以下命令
jmap -dump:formatb,fileheapdump.bin
2. 查看堆内存使用情况
可以使用 jmap 查看堆内存的使用情况和统计信息包括堆的大小、使用量、空闲量等。
jmap -heap 例如
jmap -heap
3. 查看堆中对象统计信息
jmap 可以输出堆中各个类的实例数量和占用内存等信息。 jmap -histo 例如 jmap -histo
4. 查看类加载器信息
可以使用 jmap 查看已加载类的详细信息和类加载器的关系。 jmap -clstats 例如 jmap -clstats
jstack线程状态定位线程死锁、查看线程状态、分析线程间的互相等待
查看所有线程
jstack 30500
检测死锁
jstack -l -F
jConsole
JHSDB