当前位置: 首页 > news >正文

企业网站开发报价表网店运营培训哪里好

企业网站开发报价表,网店运营培训哪里好,怎样在内网建设一个网站,淘宝客wordpress末班常用命令 1、jps查看当前 java 进程2、jinfo实时查看和调整 JVM 配置参数3、jstat查看虚拟机统计信息4、jstack查看线程堆栈信息5、jmap查看堆内存的快照信息 JVM 日常调优总结起来就是:首先通过 jps 命令查看当前进程,然后根据 pid 通过 jinfo 命令查看…

常用命令

  • 1、jps查看当前 java 进程
  • 2、jinfo实时查看和调整 JVM 配置参数
  • 3、jstat查看虚拟机统计信息
  • 4、jstack查看线程堆栈信息
  • 5、jmap查看堆内存的快照信息

JVM 日常调优总结起来就是:首先通过 jps 命令查看当前进程,然后根据 pid 通过 jinfo 命令查看和修改 jvm 参数,通过 jstat 命令查看 class 的加载信息以及 GC 信息,通过 jstack 命令查看线程堆栈信息,通过 jmap 命令查看堆内存信息。

1、jps查看当前 java 进程

jps 是 Java 虚拟机自带的命令行工具,用于显示当前运行的所有Java进程及其相关信息,包括进程 ID、主类、进程状态等。其基本用法为:

jps [options]
其中,常用的选项有:
-l:显示主类的完整路径名。
-p:显示进程的当前线程所在的工作进程组。
-s:显示进程的启动时间。
-v:显示进程的虚拟机信息,如JVM版本、GC类型等。

  • 要查看当前所有正在运行的Java进程及其相关信息,可以输入命令:jps
  • 要查看主类的完整路径名,可以输入命令:jps -l
  • 要查看进程的启动命令行参数字符串,可以输入命令:jps -m
  • 需要注意的是,由于 jps 命令直接读取 Java 虚拟机的内部数据,因此需要确保当前用户具有足够的权限才能使用。

2、jinfo实时查看和调整 JVM 配置参数

jinfo 是 Java 虚拟机自带的命令行工具,用于查看和调整Java虚拟机的配置参数和运行状态。它可以用来检查Java虚拟机的内存使用情况、垃圾回收情况、类加载情况等。要使用 jinfo 命令,您可以在 Java 程序运行的终端或命令行界面中输入以下命令:

jinfo < pid> [options]

其中,"pid"是Java进程的进程ID,可以通过"jps"命令查看
例如,要查看Java虚拟机的内存使用情况,可以使用以下命令:

jinfo < pid> -dump:live

这将输出Java虚拟机的运行状态信息,包括内存使用情况、线程信息等。
要查看Java虚拟机的堆区信息,可以使用以下命令:

jinfo < pid> -printHeapRegions

这将输出Java虚拟机的堆区信息,包括堆区的使用情况、空闲情况等。
jinfo 使用实例
使用 jps 查看当前 java 进程

D:>jps
10232 Jps
20264 TestJvm
1668

使用 jinfo 实时查看 JVM 参数,使用方法:jinfo -flag

D:>jinfo -flag MaxHeapSize 16684
-XX:MaxHeapSize=1073741824
D:>jinfo -flag MaxHeapSize 20264
-XX:MaxHeapSize=4261412864
D:>jinfo -flag UseG1GC 20264
-XX:-UseG1GC
D:>jinfo -flag UseConcMarkSweepGC 20264
-XX:-UseConcMarkSweepGC
D:>jinfo -flag UseParallelGC 20264
-XX:+UseParallelGC

使用 jinfo 可以在不重启虚拟机的情况下,动态的修改 jvm 的参数,只有被标记为 {manageable}的参数可以被实时修改,尤其在线上的环境特别有用。
Boolean 类型使用方法:
jinfo -flag [+|-]

需要指定参数值的类型使用方法:
jinfo -flag =value

1、查看进程 16116 是否开启 GC 打印,
输出 -XX:-PrintGC 表示没有开启
D:>jinfo -flag PrintGC 16116
-XX:-PrintGC
2、使用 jinfo 命令修改进程 16116
开启 GC 打印
D:>jinfo -flag +PrintGC 16116
3、 修改后再次查看进程 16116 是否开启 GC 打印,
输出 -XX:+PrintGC 表示开启
D:>jinfo -flag PrintGC 16116
-XX:+PrintGC

使用 jinfo 查看修改过值的参数,使用方法:jinfo -flags
在这里插入图片描述

3、jstat查看虚拟机统计信息

jstat 是 Java 虚拟机自带的命令行工具,用于查看 Java 虚拟机的运行状态和性能统计信息。它可以用来监测 Java 虚拟机的内存使用情况、垃圾回收情况、类加载情况等。ID,可以通过"jps"命令来获取。"interval"是两次统计之间的时间间隔(单位为毫秒),"count"是要统计的次数。
官网链接:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstat.html#BEHHGFAE

jstat 使用方法:jstat <间隔时间> <统计次数>
例如,要查看类加载信息,可以使用以下命令:

jstat -class < pid>

这将输出Java虚拟机的类加载信息,包括已加载的类数、已卸载的类数、当前正在加载的类等。
使用 jstat 查看类加载器的统计信息,默认的间隔时间是毫秒,如下:
在这里插入图片描述
例如,要查看Java虚拟机的内存使用情况,可以使用以下命令:

jstat -gcutil < pid>

这将输出Java虚拟机的垃圾回收器的统计信息,包括堆区的使用情况、空闲情况等。
使用 jstat 查看垃圾收集统计信息的摘要,如下:
在这里插入图片描述

4、jstack查看线程堆栈信息

官网链接:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jstack.html#BABGJDIF

使用 jstack 方便排查线程问题,使用方法:jstack < pid>
1、下面看一个经典的死锁问题:

package jvm;import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;public class LockDemo {// 定义锁对象static Lock LOCK1 = new ReentrantLock();static Lock LOCK2 = new ReentrantLock();public static void main(String[] args) throws Exception {new Thread(new DeadLock(true), "线程1").start();Thread.sleep(1);new Thread(new DeadLock(false), "线程2").start();}
}//模拟死锁
class DeadLock implements Runnable {private boolean flag;public void run() {if (flag) {while (true) {synchronized (LockDemo.LOCK1) {System.out.println(Thread.currentThread().getName() + "获得LOCK1锁");synchronized (LockDemo.LOCK2) {System.out.println(Thread.currentThread().getName() + "获得LOCK2锁");}}}} else {while (true) {synchronized (LockDemo.LOCK2) {System.out.println(Thread.currentThread().getName() + "获得LOCK2锁---");synchronized (LockDemo.LOCK1) {System.out.println(Thread.currentThread().getName() + "获得LOCK1锁---");}}}}}DeadLock(boolean flag) {this.flag = flag;}
}

在这里插入图片描述
我们通过 jstack 命令查看一下线程的堆栈信息:

D:>jps
5288 Jps
7896 LockDemo
16684
D:>jstack 7896

在堆栈信息的最后可以发现死锁的产生,如下:
在这里插入图片描述
2、利用 jstack 定位某个进程中 CPU 占用高的线程问题
步骤一:使用 top 命令查看 CPU 占用高的进程,假设找到 %CPU 占比高的进程 PID 为 17896。(小技巧:top 显示界面,输入大写 P,结果按 CPU 占用降序排序;输入大写 M,结果按内存占用降序排序。【大写 P 可以在 caps lock 状态输入 p,或者按 Shift+p】)

步骤二:使用 top -H -p 命令查看某个进程内部 CPU 占用高的线程 ,top -H -p 17896,假设找到 %CPU 占比高的线程 PID 为 17935

步骤三:使用 printf “%x\n” 命令转换线程 PID 为16进制,printf “%x\n” 17935 ,16进制结果为 460F

步骤四:使用 jstack 命令查看 CPU 占用高的线程信息,jstack 17896 | grep 460F -A 50

5、jmap查看堆内存的快照信息

使用 jmap -heap < pid> 查看堆内存信息,启动程序时配置 JVM 参数,-Xms30M -Xmx30M
在这里插入图片描述
1、dump 出堆内存信息

手动 dump 使用方法:-dump:format=b,file=filename

注意:-dump:format=b,是固定格式,如果设置 dump 文件到某个文件夹下,则该文件夹必须存在

D:>jmap -dump:format=b,file=d:/dump/heap.hprof 11092
Dumping heap to D:\dump\heap.hprof …
Heap dump file created

生成的 heap.hprof 文件可以结合工具来分析,后面介绍。
自动 dump 使用方法:启动程序时配置以下的 JVM 参数,当内存溢出时会自动在指定的目录生成 dump 文件,这个一般在生产环境很有用。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=d:/dump/heap.hprof

2、演示 OOM 时,自动 dump

package jvm;import java.util.ArrayList;
import java.util.List;//测试代码
public class TestHeap {public static void main(String[] args) {List<Heap> list = new ArrayList<Heap>();while (true) {list.add(new Heap());}}
}class Heap {String HeapName = "Java Heap 测试";
}

在这里插入图片描述
由于生成内存快照文件会占用大量的磁盘空间,因此在使用时需要注意磁盘空间的的使用情况。

JVM 调优工具

http://www.tj-hxxt.cn/news/76023.html

相关文章:

  • 桂林做网站多少钱seo网站推广招聘
  • 供应链金融网站开发公众号推广接单平台
  • 湖南网站建设公司 在线磐石网络学校教育培训机构
  • 深圳全国网站制作哪个好黑帽seo培训
  • 做团队网站源码有哪些百度指数app下载
  • 做网站一个月20g流量够吗灰色项目推广渠道
  • 单页设计图片模板seo快速排名软件品牌
  • 建一个购物网站需要什么条件跨境电商seo什么意思
  • 网站付款接口这么做网页设计工作室长沙
  • 深圳网站品牌推广百度信息流广告平台
  • 怎么用lamp做网站海口seo网络公司
  • 寮步做网站公司手机百度下载
  • 网站做任务给钱的惠州网络推广
  • 岳阳企业网站建设四川seo平台
  • 怎样建设个自己的网站首页北京百度搜索排名优化
  • 网上有做口译的网站么产品销售推广方案
  • 南阳做网站多少电话国内打开google网页的方法
  • 长春优惠做网站近三天发生的重要新闻
  • 网站建设与维护学什么科目小学生关键词大全
  • 廊坊网站建设联系青橙网络企业如何注册自己的网站
  • 济南企业网站搭建软件外包网站
  • 南水北调中线干线工程建设管理局网站怎么去推广一个产品
  • 接外包网站排名检测
  • asp网站做视频教程seo关键字排名
  • php动态网站开发练习题网络推广seo公司
  • 网站 微信小程序怎么做在线优化seo
  • wordpress 多站点建站教程软件外包公司排行
  • 范文网站学校技防 物防建设免费观看行情软件网站下载
  • 网站建设一条龙全包顶呱呱关键词分词工具
  • 上海专业高端网站建设服互联网营销案例分析