This repository has been archived by the owner on Mar 14, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 218
scrach
zhongl edited this page Jun 14, 2012
·
21 revisions
HouseMD
是一款非常敏捷的Java
进程运行时的诊断调式命令行工具, 它具备安全易用高效的特点, 让它非常适合在要求严格的线上(生产)环境中使用.
- 交互式命令行
- 支持
Tab
自动补全或候选列表提示 - 支持命令历史
- 查看加载类
- 支持跟踪文件来源路径
- 支持跟踪类加载器层次
- 跟踪方法
- 支持类短名字(
SimpleName
)和方法名(可选)限定跟踪目标 - 支持根据抽象类或借口来限定其实现类的跟踪目标
- 支持实时显示跟踪目标的摘要统计
- 支持输出跟踪目标调用日志文件输出
- 支持输出跟踪目标调用栈文件输出
- 查看环境变量和属性(
Comming soon
)
- 仅一个
jar
包, 部署简单, 使用简单 - 无需编写脚本, 借助指令完成常见诊断操作, 且切换快速高效
- 借助命令行提示, 能够快速准确定位要跟踪的目标
- 支持查看加载类的信息, 这在容器的应用诊断场景非常有用
- 通过跟踪限时和限次数的机制, 来控制给跟踪过程带来的消耗
- 自动检测并解决容器应用中类加载的问题
- 自身源码精简短小, 易于阅读掌握, 易于定制扩展
在Linux
或Unix
的系统下, 在要安装HouseMD
的路径下, 运行:
> curl -Lk https://raw.github.com/zhongl/HouseMD/master/bin/install | bash
若在
Windows
下, 请尝试下载安装
- 点击这里 下载最新的版本
- 执行下面命令:
> java -Xbootclasspath/a:$JAVA_HOME/lib/tools.jar -jar housemd-assembly-x.x.x.jar
注意: 在 Mac OSX下, 选项
-Xbootclasspath
是不需要的.
假定你在 快速安装 好之后, 在命令行输入:
> housemd -h
你会看到HouseMD
的帮助信息, 如下:
Usage: housemd [OPTIONS] pid
a runtime diagnosis tool of JVM.
Options:
-h, --help
show help infomation of this command.
-p, --port=[INT]
set console local socket server port number.
default: 54321
Parameters:
pid
id of process to be diagnosing.
真正要用起来, 则需要拿到你要诊断的java
进程的ID
(通过jps
或ps
), 假设pid
是1234
, 然后执行:
> housemd 1234
在显示若干行INFO
信息后, 此时进入HouseMD
的Shell
提示符, 键入help
指令, 可以查看其支持的内置指令:
housemd> help
quit terminate the process.
help display this infomation.
trace display or output infomation of method invocaton.
loaded display loaded classes information.
在help
后加上命令的名字, 如loaded
, 便会显示具体命令的帮助信息:
housemd> help loaded
Usage: loaded [OPTIONS] name
display loaded classes information.
Options:
-h, --classloader-hierarchies
display classloader hierarchies of loaded class.
Parameters:
name
class name without package name.
TODO