search.yahoo.com
ubuntu下java home目录是
tianzhao@tianzhao-VirtualBox:~/hadoop-0.20.2-cdh3u0/conf$ echo $JAVA_HOME
/usr/
相关java-options: -server -Xmx40g -Xms40g -Xmn10g -XX:MaxDirectMemorySize=1024m -XX:PermSize=128m -XX:MaxPermSize=256m -XX:+UseConcMarkSweepGC
参数的含义
-vmargs -Xms128M -Xmx512M -XX:PermSize=64M -XX:MaxPermSize=128M
-vmargs 说明后面是VM的参数,所以后面的其实都是JVM的参数了
-Xms128m JVM初始分配的堆内存
-Xmx512m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=64M JVM初始分配的非堆内存
-XX:MaxPermSize=128M JVM最大允许分配的非堆内存,按需分配
http://engineering.linkedin.com/garbage-collection/garbage-collection-optimization-high-throughput-and-low-latency-java-applications
https://code.google.com/p/gclogviewer/
btrace
Byteman
bin/hadoop
HADOOP_OPTS="$HADOOP_OPTS -Dcom.sun.management.jmxremote.port=22801 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
-XX:+HeapDumpOnOutOfMemoryError
config/hadoop-env.sh
#export HADOOP_OPTS="-server -XX:+HeapDumpOnOutOfMemoryError -XX:+DisableExplicitGC -verbosegc -XX:+PrintGCDetails -XX:GCHeapFreeLimit=5 -Xms400m -Xmx400m -Xmn60m"
export HADOOP_OPTS="-server -XX:+HeapDumpOnOutOfMemoryError"
export HADOOP_OPTS="-server -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=./java_pid<pid>.hprof"
JVM Settings The following can be helpful for diagnosing GC issues:
-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCCause
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-XX:+PrintClassHistogramAfterFullGC
-XX:+PrintClassHistogramBeforeFullGC
-XX:PrintFLSStatistics=2
-XX:+PrintAdaptiveSizePolicy
-XX:+PrintSafepointStatistics
-XX:PrintSafepointStatisticsCount=1
netstat -na|grep 22801 查看22801端口是否已在监听。如果没有请检查你的配置。
jconsole
ip:22801
gc优化设置:
http://www.slideshare.net/cuonghuutran/gc-andpagescanattacksbylinux?from_search=37
$ jps
4704 Jps
12752 JobShell
$jps -mlVv
jps -l
jps -lm
$ jstack 12752
$ jstack -l 12752
$ jmap -heap 12752
$ jmap -dump:format=b,file=jmap.bin 12752
jinfo:打印JVM启动内部信息,譬如启动参数、JVM版本、操作系统信息等,具体可参见JVM Manage API的OperatingSystem和Runtime这两个Bean,本功能基于JVM Manage API实现。最常用的使用格式:
jinfo pid
jstat:一个内存和垃圾回收情况的统计工具
jmap:当前的堆内存信息dump,JDK6中支持dump到一个文件,由其他分析程序对堆内存进行分析(譬如jhat/Eclipse Memory Anaylzer)。
jmap -histo:live 30255 > jmapHisto.txt
jmap -histo 30255 //不会触发full gc, -histo:live会触发full gc
If you run jmap -histo:live, that will force a full GC on the heap before it prints anything out.
主动触发full gc 的脚本:
#!/bin/bash
for i in `ps aux | grep -F regionserver | grep -vF grep | awk '{print $2}'`; do
echo $i
jmap -histo:live $i > /dev/null
done
JConsole / Visual VM
java.io.tmpdir = /tmp
java.home = /usr/java/jdk1.6.0_21/jre
user.dir =
user.home =
user.name =
# 输出方式(Append)为覆盖方式
# DatePattern='.'yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:
# 1)'.'yyyy-MM: 每月
# 2)'.'yyyy-ww: 每周
# 3)'.'yyyy-MM-dd: 每天
# 4)'.'yyyy-MM-dd-a: 每天两次
# 5)'.'yyyy-MM-dd-HH: 每小时
# 6)'.'yyyy-MM-dd-HH-mm: 每分钟
log4j.appender.DRFA.DatePattern=.yyyy-MM-dd
javap 查看class文件的接口和实现方法。
jar xvf /home/hadoop/hive/lib/hive_contrib.jar
Mat、BTrace、YourKit Java Profiler
tcpdump
jmx
https://github.com/zhongl/jmxero/wiki/%E5%8F%AA%E7%94%A8%E4%BA%94%E5%88%86%E9%92%9F%E4%B8%BA%E7%B3%BB%E7%BB%9F%E5%AE%9E%E7%8E%B0%E5%9F%BA%E4%BA%8EJMX%E7%9A%84%E7%9B%91%E6%8E%A7
http://www.ibm.com/developerworks/cn/java/j-memoryanalyzer/index.html
编码:
深入分析 Java 中的中文编码问题
http://www.ibm.com/developerworks/cn/java/j-lo-chinesecoding/
使用 Java 语言进行 Unicode 代理编程
http://www.ibm.com/developerworks/cn/java/j-unicode/index.html
http://www.ibm.com/developerworks/cn/java/jsp_dbcsz/index.html
jar -tf test.jar
在 test.jar 已经存在的情况下,可以查看 test.jar 中的内容
perftools查看堆外内存并解决hbase内存溢出
http://www.85java.com/thread-16703-1-1.html
http://download.oracle.com/javase/6/docs/jdk/api/attach/spec/index.html
http://kenwublog.com/java6-jvm-options-chinese-edition-published
http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm
http://rdc.taobao.com/team/jm/
http://kenwublog.com/hbase-performance-tuning
理解Heap Profling名词-Shallow和Retained Sizes:
http://kenwublog.com/understand-shallow-and-retained-size-in-hprofling
分享到:
相关推荐
本文将从给定文件的标题和部分内容中提取出与Java命令相关的知识点。 首先,Java的可执行文件通常位于Java开发工具包(JDK)的bin目录中。这个目录下包含了多个重要的命令行工具,其中一些我们可以在给定文件的部分...
**WSDL2Java命令使用详解** 在Web服务开发中,WSDL(Web Service Description Language)是一种XML格式,用于定义服务接口、操作、消息结构等。它使得服务提供者和服务消费者可以进行互操作。Apache Axis是Java平台...
Java命令主要包括编译、运行、调试、性能监控等多个方面,其中`javac`用于编译源代码,`java`用于执行已编译的字节码,而`jps`、`jstat`等工具则用于系统监控和故障排查。本文主要关注`java`命令的高级用法,特别是...
在Java中,命令模式的应用非常广泛,尤其在需要解耦调用者和接收者时。 命令模式的核心组成部分包括:**命令接口**、**具体命令类**、**接收者**和**调用者**。 1. **命令接口**:定义了一个接收者需执行的操作,...
### 二、执行Java命令引入外部JAR包的方法 #### 方法1:修改系统环境变量 最常见的方式是通过修改系统环境变量`CLASSPATH`来添加外部JAR包。`CLASSPATH`环境变量告诉JVM在哪里可以找到用户自定义的类和资源。例如...
在这个例子中,我们将看到如何使用 Java 调用 Shell 命令,并介绍相关的知识点。 Java 调用 Shell 命令的必要性 在实际开发中,我们经常需要在 Java 应用程序中执行系统命令或脚本,例如备份数据、发送文件、执行...
在Java虚拟机运行过程中,我们可能需要使用各种命令工具来监控和诊断可能出现的问题。以下是一些常用的JVM命令工具及其知识点。 1. jps命令 jps(JVM Process Status Tool)命令用于列出正在运行的Java虚拟机进程...
Java相关命令 1. 查看Java进程:`ps aux | grep java` 查看所有Java进程。 2. 查看Java进程详细信息:`jps` 命令可以查看Java进程详细信息。 3. 查看Java堆栈信息:`jstack` 命令可以查看Java堆栈信息。 4. 查看...
在Java编程中,有时我们需要执行操作系统级别的命令,例如创建文件、操作目录或者调用系统工具。...如果你遇到了具体的编程问题或对某个部分不理解,可以进一步分析`Cmd.java`或查阅相关博客内容。
下面将详细介绍如何使用Java执行DOS命令以及相关知识点。 一、Runtime类 Runtime类是每个Java应用程序都有的一个实例,它提供了执行系统命令的方法。我们可以通过getRuntime()方法获取到Runtime实例,然后调用exec...
下面是一个简单的Java命令模式示例: ```java // 接收者接口 interface Receiver { void action(); } // 具体接收者类 class ConcreteReceiver implements Receiver { @Override public void action() { ...
在JAVA中实现FTP命令主要是通过使用Java的Socket编程和相关类库,如java.net.Socket和java.net.ServerSocket等。下面将详细介绍如何使用JAVA实现FTP命令以及相关知识点。 1. **FTP命令处理** FTP命令分为控制命令...
本文将深入探讨如何在Java中调用Windows CMD命令,并提供一个具体的代码示例——`FileProcessInShell.java`。 首先,我们来看Java是如何调用外部命令的。在Java中,有两种主要的方法可以执行系统命令: 1. **...
6. Java命令配合特定参数可用来查看JDK的版本以及JVM启动时的初始和最大堆大小。如`java -XX:+PrintFlagsFinal -version 2>&1 | grep MaxHeapSize`命令用于查看最大堆大小。 7. Java.lang.OutOfMemoryError是一种...
根据提供的文件信息,我们可以深入探讨如何在Java程序中调用Linux命令,并且解析与之相关的技术要点。 ### Java调用Linux命令 Java提供了一种强大的机制来执行操作系统级别的任务,其中包括调用Linux命令。实现这...
下面我们将深入探讨如何在Java中实现DOS命令的调用,并了解相关的重要知识点。 首先,Java提供了`Runtime`类和`ProcessBuilder`类来执行外部命令。`Runtime.getRuntime().exec()`方法是更传统的选择,而`...
Java JDK 常用命令详解 Java JDK 提供了多种命令来帮助开发者更好地使用 Java 语言,以下是 JDK 中常用的命令解释: 1. rmic 命令 rmic 命令用于生成 stub 和 skeleton,它可以将 Java 类编译成可供远程对象使用...
本文将详细讲解如何在Java中调用DOS命令以及相关的注意事项。 首先,调用DOS命令的基本语法如下: ```java Process process = Runtime.getRuntime().exec(command); ``` 这里的`command`是你要执行的DOS命令,...
标题"wsdl2java命令使用所需bin"暗示了这是一个关于如何使用`wsdl2java`工具的教程,该工具通常用于从WSDL(Web服务描述语言)文件生成Java客户端和服务端代码。这个过程被称为WSDL到Java的绑定,是SOA(面向服务...