网站建设使用什么软件有哪些,如何在各网站做推广,wps网站超链接怎么做,wordpress 显示多媒体参考视频【java】jvm指令与工具jstat/jstack/jmap/jconsole/jps/visualVM_哔哩哔哩_bilibili
一、jps
我们再windows和linux都可以看到哪些java进程。 有小伙伴又会问了 这个类是java的 那其他的这么多进程18096 /8685 这些是啥啊 其实也是java进程#xff0c;只不过是其他程…参考视频【java】jvm指令与工具jstat/jstack/jmap/jconsole/jps/visualVM_哔哩哔哩_bilibili
一、jps
我们再windows和linux都可以看到哪些java进程。 有小伙伴又会问了 这个类是java的 那其他的这么多进程18096 /8685 这些是啥啊 其实也是java进程只不过是其他程序比如idea。 二 、jconsole
由于是图形化界面更加清晰 其实jconsole jstatjstack 点击test类再点击连接查看详细情况 /*** vmOptions* -Xms10m -Xmx10m* 最小 最大* -XX:HeapDumpOnOutOfMemoryError*/
public class TestJavaUtils {public static void main(String[] args) throws InterruptedException {int i0;while (true){System.out.println(put success);Thread.sleep(1000);}}
} 注意 要将vm options 设置为 -Xms10m -Xmx10m 否则基本看不到内存变化 可以看到的最大值是921610M*1024*0.9 这个0.9就不多说了 有兴趣的自己百度。
这里还可以看到GC。
这个时候有小伙伴就会问了我知道他GC了对我的工作有什么帮助呢 我以前也有这个疑问但是没人解答这里我告诉你。
为什么我要你设置堆才10M。一半来说就都是1G 2G 甚至10G的内存。因为设置大了你基本看不到GC或者GC的时间很短 这里比如我才1分钟就有0.049s的GC时间了而且我的代码非常简单复杂10倍不过分吧那就是0.5s的GC时间一分钟有0.5s在GC那么是会影响你的正常程序的。例如这篇文章最后就是GC时间太长CPU负载高导致任务慢
hadoop中NameNode节点CPU使用量高 解决方案亲测 - 爱码网
这时小伙伴又会说了 你再windows有图形界面那我在服务器怎么看 三、jstat
参考文章 https://danny-jiang.blog.csdn.net/article/details/105804076
jstat 是JDK中提供的一个命令行工具主要用来打印JVM 性能数据相关的统计数据。主要包含以下几个方面 垃圾回收(GC)方面数据 编译(Compilation)相关数据 类加载信息(Class Loader)
通过jps -l 找到 java的进程号 pid 然后
jstat -gcutil pid 10000 10 这个是看占的比例
jstat -gc pid 10000 10 这个看的是每个空间占的实际大小
jstat -gcnew pid 只看年轻代
jstat -gcold 查看老年代
参数解释
-gc :打印相关的统计参数
-t: 在每行日志之前加上JVM的启动时间
pid : 目标Java进程的ID
10000: jstat命令执行间隔时间(milliseconds)10000表示每10s打印一行日志
10: jstat命令的执行次数(和上面的时间间隔一起表示jstat会每10s执行1次总共执行10次). 可以不要 这张图可以看到 E区伊甸园区数据不断增多等到伊甸园区满了来个小GC就把数据放到幸存者s0区同时把S1区的数据放到老年代这时算搞了一次YGC多了快满的时候就会来个GC
等到老年代数据满了就会来一次OGC 参数意义
time : JVM启动时间(单位为秒)
S0C 年轻代中S0区的容量 字节
S1C 年轻代中S1区的容量 (字节)
S0U 年轻代中S0区目前已使用空间 (字节)
S1U 年轻代中S1区目前已使用空间 (字节)
EC 年轻代中Eden区的容量 (字节)
EU 年轻代中Eden区目前已使用空间 (字节)
OC 老年代的容量 (字节)
OU 老年代目前已使用空间 (字节)
M : MetaspaceSize元空间
CCS : CompressedClassSpaceSize压缩类
YGC 从应用程序启动到采样时年轻代中GC次数
YGCT 从应用程序启动到采样时年轻代中GC所用时间(s)
FGC 从应用程序启动到采样时老年代(全GC)GC次数
FGCT 从应用程序启动到采样时老年代(全GC)GC所用时间(s)
GCT从应用程序启动到采样时GC用的总时间(s)
这个用法在服务器上也是通用的。。。。通过查看GC次数和时间来检查某些服务是不是内存设置过小。 四、jstack
用法 jstack pid 五、jmap
内存状态可以down下来
jmap -dump:filefilename pid 把内存状态down到本地
jmap -heap pid 打印内存信息 这里打印的比较人性化其实和jstat差不多.
----后面有机会 找个案例来实战演练