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

各省施工备案网站网站评论源码

各省施工备案网站,网站评论源码,旅游加盟网站建设,哪些网站是专做合租的java虚拟机常用命令工具 博客分类#xff1a; 虚拟机 虚拟机jvmjava 一、概述 程序运行中经常会遇到各种问题#xff0c;定位问题时通常需要综合各种信息#xff0c;如系统日志、堆dump文件、线程dump文件、GC日志等。通过虚拟机监控和诊断工具可以帮忙我们快速获取、分… java虚拟机常用命令工具 博客分类 虚拟机 虚拟机jvmjava  一、概述    程序运行中经常会遇到各种问题定位问题时通常需要综合各种信息如系统日志、堆dump文件、线程dump文件、GC日志等。通过虚拟机监控和诊断工具可以帮忙我们快速获取、分析需要的数据进而提高问题解决速度。 本文将介绍虚拟机常用监控和问题诊断命令工具的使用方法主要包含以下工具:jps显示系统中所有Hotspot虚拟机进程jstat收集Hotspot虚拟机各方面运行数据jstack显示虚拟机的线程栈信息jinfo显示虚拟机的配置信息jmap用于生成虚拟机的内存快照信息 以上工具的官方文档地址: http://docs.oracle.com/javase/1.5.0/docs/tooldocs/图形化工具如jconsole,jvisualvm将另文介绍。二、示例代码为方便大家使用各工具进行实战提供样例代码如下:Java代码   package com.leanworld;    import java.util.ArrayList;  import java.util.List;    /**  * 虚拟机常用工具使用示例代码 启动参数: -Xmn10m -Xms40m -Xmx40m  *   * author learnworld 2012-1-30 下午01:37:14  */  public class JVMTools {        public static void createList(int count) throws InterruptedException {          for (int j  0; j  count; j) {              List_1MObject list  new ArrayList_1MObject();              Thread.sleep(100);              list.add(new _1MObject());          }      }        public static void main(String[] args) throws InterruptedException {          createList(5000);      }    }    /**  * 一个大约1M的对象  */  class _1MObject {        public byte[] _1M  new byte[1024 * 1024];  }   三、工具介绍1.  jpsJVM Process Status Tool该命令用于列出正在运行的虚拟机进程显示main类的名称和虚拟机进程id。该命令受当前用户的访问权限影响比如linux下非root用户只列出当前用户启动的虚拟机进程。命令格式:jps  [options]  [hostid]执行示例:$ jps -l 3733 sun.tools.jps.Jps 3700 com.leanworld.JVMToolscom.leanworld.JVMTools即为上面的示例代码执行类。常用参数:-l输出主类全名-v输出虚拟机进程启动的jvm参数-m输出启动时传递给main函数的参数 2.  jstatJVM Statistics Monitoring Tool用于监控各种运行状态信息的命令。在只有文本控制台的环境中(如企业中的生产环境)该工具非常有用。 可以用来显示系统中类装载、垃圾回收、运行期编译状况等运行数据。命令格式: jstat [ generalOption | outputOptions vmid [interval[s|ms] [count]] ]vmid表示虚拟机唯一标识符如果是本地虚拟机进程与LVMID一致通常为本地虚拟机进程号。 interval表示查询间隔时间count表示查询次数。如果省略interval和count参数表示查询一次。执行示例:$ jstat -gcutil 3700 500 4   S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   50.00   0.00  60.78   0.50  12.76    214    0.049     0    0.000    0.049   0.00  25.00  20.27   0.50  12.76    215    0.049     0    0.000    0.049   0.00  25.00  70.91   0.50  12.76    215    0.049     0    0.000    0.049 50.00   0.00  20.27   0.50  12.76    216    0.049     0    0.000    0.049 S0和S1表示Survivor0和Survivor1E表示新生代EdenO表示老年代Old,P表示持久代Permanent以上各参数值表示已使用空间占比。 YGC表示young gc次数YGCT表示young gc总耗时。FGC表示Full gc次数FGCT表示full gc总耗时。GCT表示所有gc总耗时时间。常用参数:class类装载相关信息.compilerJIT编译器编译过的方法、耗时等.gcjava堆信息和垃圾回收状况.gccapacity关注java堆各个区的最大和最小空间.gccause类似gcutil额外输出导致上一次gc的原因.gcnew新生代gc状况.gcnewcapacity关注新生代gc使用的最大和最小空间.gcold老年代gc状况.gcoldcapacity关注老年代gc使用的最大和最小空间.gcpermcapacity关注持久代gc使用的最大和最小空间.gcutil关注已使用空间占总空间比例.printcompilation输出已经被JIT编译的方法. 3.  jstackStack Trace for Java用于生成虚拟机当前的线程快照信息包含每一条线程的堆栈信息。该命令通常用于定位线程停顿原因当出现线程停顿时可通过stack查看每个线程的堆栈信息进而分析停顿原因。命令格式:jstack [ option ] pid执行示例:$ jstack 3700 2012-01-30 16:36:05 Full thread dump Java HotSpot(TM) Server VM (17.0-b16 mixed mode): Attach Listener daemon prio10 tid0xaca16c00 nid0x1384 waiting on condition [0x00000000]    java.lang.Thread.State: RUNNABLE Low Memory Detector daemon prio10 tid0xaca00c00 nid0x1366 runnable [0x00000000]    java.lang.Thread.State: RUNNABLE CompilerThread1 daemon prio10 tid0x08e58800 nid0x1365 waiting on condition [0x00000000]    java.lang.Thread.State: RUNNABLE CompilerThread0 daemon prio10 tid0x08e56800 nid0x1364 waiting on condition [0x00000000]    java.lang.Thread.State: RUNNABLE Signal Dispatcher daemon prio10 tid0x08e54c00 nid0x1363 runnable [0x00000000]    java.lang.Thread.State: RUNNABLE Finalizer daemon prio10 tid0x08e39000 nid0x1361 in Object.wait() [0xac943000]    java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on 0xb10e0230 (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118) - locked 0xb10e0230 (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159) Reference Handler daemon prio10 tid0x08e34400 nid0x1360 in Object.wait() [0xacb94000]    java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on 0xb10e30d0 (a java.lang.ref.Reference$Lock) at java.lang.Object.wait(Object.java:485) at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116) - locked 0xb10e30d0 (a java.lang.ref.Reference$Lock) main prio10 tid0x08d7bc00 nid0x135a waiting on condition [0xb6a8a000]    java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at com.leanworld.JVMTools.createList(JVMTools.java:23) at com.leanworld.JVMTools.main(JVMTools.java:29) VM Thread prio10 tid0x08e31c00 nid0x135f runnable GC task thread#0 (ParallelGC) prio10 tid0x08d83800 nid0x135b runnable GC task thread#1 (ParallelGC) prio10 tid0x08d85000 nid0x135c runnable GC task thread#2 (ParallelGC) prio10 tid0x08d86400 nid0x135d runnable GC task thread#3 (ParallelGC) prio10 tid0x08d87c00 nid0x135e runnable VM Periodic Task Thread prio10 tid0xaca02c00 nid0x1367 waiting on condition JNI global references: 854通过输出信息可以看出当前main线程处于TIMED_WAITING状态因为执行到示例代码中Thread.sleep(100);这行的缘故。常用参数:-l除堆栈外显示锁的附加信息-F当请求不被响应时强制输出线程堆栈-m混合模式打印java和本地C调用的堆栈信息 4. jinfoConfiguration Info for Java用于查看和修改虚拟机的各项参数信息。命令格式jinfo [ option ] pid执行示例$jinfo 3700 Attaching to process ID 5081, please wait... Debugger attached successfully. Server compiler detected. JVM version is 17.0-b16 Java System Properties: java.runtime.name Java(TM) SE Runtime Environment sun.boot.library.path /home/learnworld/software/jdk1.6.0_21/jre/lib/i386 java.vm.version 17.0-b16 java.vm.vendor Sun Microsystems Inc. java.vendor.url http://java.sun.com/ path.separator : java.vm.name Java HotSpot(TM) Server VM file.encoding.pkg sun.io sun.java.launcher SUN_STANDARD user.country CN sun.os.patch.level unknown java.vm.specification.name Java Virtual Machine Specification user.dir /home/learnworld/workspace/concurrency java.runtime.version 1.6.0_21-b06 java.awt.graphicsenv sun.awt.X11GraphicsEnvironment java.endorsed.dirs /home/learnworld/software/jdk1.6.0_21/jre/lib/endorsed os.arch i386 java.io.tmpdir /tmp line.separator ... VM Flags: -Xmn10m -Xms40m -Xmx40m -Dfile.encodingGBK -Xbootclasspath:/home/learnworld/software/jdk1.6.0_21/lib/tools.jar:/home/learnworld/software/jdk1.6.0_21/lib/sa-jdi.jar:/home/learnworld/software/jdk1.6.0_21/lib/jconsole.jar:/home/learnworld/software/jdk1.6.0_21/lib/htmlconverter.jar:/home/learnworld/software/jdk1.6.0_21/lib/dt.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/rt.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/resources.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/plugin.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/management-agent.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/jsse.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/jce.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/javaws.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/deploy.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/charsets.jar:/home/learnworld/software/jdk1.6.0_21/jre/lib/alt-rt.jar可以看出该命令可以方便我们查找需要的虚拟机信息包含System.getProperties()信息。常用参数:-flag name打印虚拟机该参数对应的值.-flag [\-]name使该参数生效或失效.-flag namevalue修改相应参数的值.-flags打印传给jvm的参数值.-sysprops打印System.getProperties()信息. 5. jmapMemory Map for Java可以产生堆dump文件查询堆和持久代的详细信息等。命令格式:jmap [ option ] pid执行示例$ jmap -dump:formatb,filedump.tmp 3700Dumping heap to /home/learnworld/dump.tmp ... Heap dump file created上面这个命令生成了dump.tmp这个dump文件。生成的dump文件可以使用Eclipse Memory Analyzer/jhat等工具进行分析。$ jmap -permstat 3700Attaching to process ID 3700, please wait... Debugger attached successfully. Server compiler detected. JVM version is 17.0-b16 1355 intern Strings occupying 183024 bytes. finding class loader instances ..Finding object size using Printezis bits and skipping over... done. computing per loader stat ..done. please wait.. computing liveness....done. class_loader classes bytes parent_loader alive? type bootstrap 320 1437208   null  live internal 0xb1170250 10 77120 0xb11706b8 live sun/misc/Launcher$AppClassLoader0xad34eb70 0xb11706b8 0 0   null  live sun/misc/Launcher$ExtClassLoader0xad303d40 total 3 330 1514328     N/A    alive3, dead0     N/A常用参数:-dump生成堆dump文件格式为: -dump:[live,]formatb,filefilename-heap显示java堆的详细信息包括垃圾回收期、堆配置和分代信息等-histo显示堆中对象的统计信息包括类名称对应的实例数量和总容量-permstat统计持久代中各ClassLoader的统计信息。 四、遇到的问题我的操作系统为ubuntu10.10初次使用jinfo和jmap时出现以下错误:引用Attaching to process ID 3538, please wait... Error attaching to process: sun.jvm.hotspot.debugger.DebuggerException: Cant attach to the process解决方法:1. echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope该方法在下次重启前有效。2. 永久有效方法sudo vi /etc/sysctl.d/10-ptrace.conf编辑下面这行: kernel.yama.ptrace_scope 1修改为:kernel.yama.ptrace_scope 0重启系统使修改生效。该bug详细信息请参考官方文档: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id7050524
http://www.yutouwan.com/news/118534/

相关文章:

  • 网站 制作登录网站建设中所涉及的所有链接建设
  • o2o商城网站搭建做文献ppt模板下载网站
  • 黄陂建设网站国企网站建设合同
  • 山西自助建站费用低上海建设单位工程备案网站
  • 安贞网站建设公司wordpress建站系统视频教程
  • 滨州j建设局网站投诉电话wordpress自动压缩图片大小
  • 一站式建站企业网站和手机能制作网站吗
  • 全球网站开发者大会电商网站要素
  • 做外贸主要在那些网站找单深圳设计网站排名
  • 湘西网站建设wordpress+修改邮箱
  • 对网站建设和维护好学吗wordpress 非插件分页
  • php 网站模板智联招聘网站怎么做两份简历模板
  • 国际电子商务网站建设wordpress安装到子目录
  • 个人免费网站建站排名网页免费模板
  • 如何做网站创业wordpress 万网
  • 如何查询网站备案号企查查企业信息查询网站
  • 网站开发团队人员配置网络推广渠道分类
  • 网站建设如何收费怎样制作一个个人网站
  • 后台企业网站模板下载网上国网app
  • 苏州网站制作计划如何是wordpress
  • 网站icon图标怎么设置wordpress 农业主题
  • 做双语网站用什么cms系统好wordpress 做的官网
  • 深圳网站建设三把火在centos上搭建wordpress
  • 温州公司网站开发国家住房城乡建设厅网站
  • 易营宝网站建设商城类网站建设方案
  • 商城网站建设方案 2017除了dw还有什么可以做网页
  • 辉县市建设局网站网站制作哪家实惠
  • 贝智康积分网站开发河北省保定市唐县城乡建设网站
  • 门户网站建设平台趣头条自媒体平台
  • 郴州网站建设推广公司含山微信搭建网站建设