jstatd 【options】

参数:options

  命令行参数,可以按任何顺序,但如果有多余的或者中有互斥的参数,最后制定的那个参数将有优先权

options:

  -nr 当一个存在的RMI Registry没有找到时,不尝试创建一个内部的RMI Registry   -p port RMI Registry将会被找到的端口,如果没有找到,而且-nr没有指定,则新建一个RMI Registry。默认为1099

  -n rminame remote RMI对象会被绑定到的RMI Registry的名字,默认的名字为JStatRemoteHost.如果多个jstatd服务在同一台机子上启动了,每个jstatd服务的对外的      RMI对象的名字可由该参数指定。这么做要求唯一的server name被包含在监控客户端的hostid和vmid串中。   -J 将参数传给被javac调用的java launcher。例如:-J-Xms48m设置了启动内存为48m,由-J传递java程序vm参数是一种惯例

Security

  jststd只能监控有适当的本地接入的JVM,因此jstatd进程必须用和目标jvm的相同的用户凭证。有些用户凭证,如unix系统下的root用户,有权限进入到系统里任何一个由   JVM启动的设备,用这种用户凭证启动的jstatd能够监控任何一个jvm,但会引入潜在的安全隐患。jstatd并不提供给任何一个远程客户端用户凭证,如此,运行一个jstatd    serve进程会将其有权限访问的jvm设备暴露给网络上的用户。这种暴露对用户来说并不受欢迎,在起订jstatd进程钱必须考虑本地安全策略。特别是在生产环境或者不安全    的网络中。如果没有安装其他的安全管理,并且要求指定一个安全策略文件,jstatd服务会安装一个RMISecurityPolicy。下面的策略将会允许jstatd服务在没有任何security   exception中运行:

  grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
  };

  将以上内容保存到jstatd.all.policy的文件中,文件位置可任意。启动jstatd:

jstatd -J-Djava.security.policy="xxxxx/jstatd.all.policy"   xxxxx代表的是绝对路径

远程监控:启动RMI服务样例:

(1)使用内部RMI Registry

jstatd -J-Djava.security.policy=all.policy  (默认端口为1099)

(2)使用外部RMI Registry

a)使用默认值

rmiregistry&

jstatd -J-Djava.security.policy=all.policy

b)使用2020端口

netstat -tulanp | grep 1099     查看1099端口是否被占用了,如果被占用,则需要选择其他端口来启动jstatd服务

rmiregistry 2020&

jstatd -J-Djava.security.policy=all.policy -p 2020

c)使用2020端口,使用rminame

rmiregistry 2020&

jstatd -J-Djava.security.policy=all.policy -p 2020 -n AlternateJstatdServerName

(3)RMI Registry已经启动,不创建内部RMI Registry

jstatd -J-Djava.security.policy=all.policy -nr

(4)RMI日志能力

jstatd -J-Djava.security.policy=all.policy -J-Djava.rmi.server.logCalls=true

而后在VisualVM中就添加远程连接,选择jstatd方式,就可以监控JVM的运行情况了。

远程监控tomcat服务:

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10201 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

而后在VisualVM中就添加远程连接,选择jmx方式,就可以监控tomcat的运行情况了

-------------------------------------------------------------------------------

好用的性能分析工具–VisualVM

下载地址:http://visualvm.java.net/download.html

插件安装

tools->plugin->Available Plugin 会有值得安装的插件,如:VisualGC JConsole

jstatd - Virtual Machine jstat Daemon的更多相关文章

  1. JVM常用命令和性能调优建议 [Could not create the Java virtual machine]

    一.查看jvm常用命令jinfo:可以输出并修改运行时的java 进程的opts. jps:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号. ...

  2. 《Remus: High Availability via Asychronous Virtual Machine Replication》翻译

    Abstract 想要让应用能够躲过硬件故障是一项非常昂贵的任务,因为这通常意味着对软件进行重构,使它包含复杂的恢复逻辑的同时需要部署专用的硬件,而这些对于提升大型的或者遗留的应用的可靠性是巨大的障碍 ...

  3. Java虚拟机(Java Virtual Machine)

    JVM(Java Virtual Machine),Java虚机机,是JDK最底层的东西.只要能将源代码编译成字节码(.class)文件,就可以由JVM在不同平台上解释成机器指令来执行.所以,Java ...

  4. Virtual Machine Definition File 2.2

    Virtual Machine Definition File 2.2 http://archives.opennebula.org/documentation:archives:rel2.2:tem ...

  5. 虚拟机(Virtual Machine)和容器(Container)的对比

    目前云计算平台常用的虚拟化技术有虚拟机(Virtual Machine)和容器(Container)两种.虚拟机已经是比较成熟的技术,容器技术作为下一代虚拟化技术,国内的各厂商应用还不广,但似乎其代表 ...

  6. Azure PowerShell (6) 设置单个Virtual Machine Endpoint

    <Windows Azure Platform 系列文章目录> 请注意: - Azure不支持增加Endpoint Range - 最多可以增加Endpoint数量为150 http:// ...

  7. Azure PowerShell (7) 使用CSV文件批量设置Virtual Machine Endpoint

    <Windows Azure Platform 系列文章目录> 请注意: - Azure不支持增加Endpoint Range - 最多可以增加Endpoint数量为150 http:// ...

  8. (学)解决VMware Taking ownership of this virtual machine failed

    原文:http://blog.csdn.net/fisher_jiang/article/details/6992588背景: 一次crash可能会造成虚拟机锁死的情况发生现象:点击take owne ...

  9. Azure Virtual Machine 之 如何利用Management Class Libraries 创建VM

    之前发的blog简单的介绍了如何使用Management Class Libraries 来控制Azure platform. 但由于官方并没有提供文档,所以我们只能够通过自己研究来摸索使用该类库的方 ...

随机推荐

  1. sed 给文件每行末尾追加相同字符

    给文件file1每行末尾追加字符 ; sed 's/$/;/' file1

  2. centos 修改时区及NTP时间同步

    在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...

  3. css学习日记

    相对偏移 指定left top等属性就能够够完美控制一个元素的位置 如: position:relative; left:2px; 今天遇到一个很好玩的问题,当两个并排浮动框,当一个框的长度太大时就会 ...

  4. 编程中检查IIS7组件的安装情况

    http://learn.iis.net/page.aspx/135/discover-installed-components/说明:ASP.NET网络应用程序在IIS7上部署的时候,经常会要求预装 ...

  5. 驳《编码规范是技术上的遮羞布》自由发挥==摆脱编码规范?X

    引子: 看了一坨文字<编码规范是技术上的遮羞布>,很是上火,见人见智,本是无可厚非,却深感误人子弟者众.原文观点做一个简单的提炼: 1.扔掉编码规范吧,让程序员自由发挥,你会得到更多的好处 ...

  6. 【pushlet学习】具体实战

    业务需求: 1. 前端界面需要实时显示空调.照明等设备的状态, 如:空调电压.空调电流.光照强度等,这些量每一个称作一个测点: 2. 不同的用户登录系统后,用户只能看到自己设备的运行状态,而看不到其他 ...

  7. Java-Runoob-高级教程-实例-数组:08. Java 实例 – 数组填充

    ylbtech-Java-Runoob-高级教程-实例-数组:08. Java 实例 – 数组填充 1.返回顶部 1. Java 实例 - 数组填充  Java 实例 以下实例我们通过 Java Ut ...

  8. 杂项-frame:Rails框架

    ylbtech-杂项-frame:Rails框架 Rails框架首次提出是在2004年7月,它的研发者是26岁的丹麦人David Heinemeier Hansson.不同于已有复杂的Web 开发框架 ...

  9. Discuz论坛管理的问题汇总

    Discuz论坛在Linux上搭建成功了, 不得不说, 其功能是非常强大的, 可以满足已知的绝大多数的需求. 搭建完成后也有一些问题, 在这里汇总一下, 以便将来查阅. 1. 显示未处理用户信息, 但 ...

  10. IE6 CSS高度height:100% 无效解决方法总结

    原文地址:http://www.cnblogs.com/huangyong8585/archive/2013/02/05/2893058.html   上面红色部分为 height:100%; 自动拉 ...