2011-01-17 17:43:23 iteye_5645 阅读数 264
[color=red]jinfo[/color]:可以输出并修改运行时的java 进程的opts。
[color=red]jps[/color]:与unix上的ps类似,用来显示本地的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。
[color=red]jstat[/color]:一个极强的监视VM内存工具。可以用来监视VM内存内的各种堆和非堆的大小及其内存使用量。
[color=red]jmap[/color]:打印出某个java进程(使用pid)内存内的所有'对象'的情况(如:产生那些对象,及其数量)。
[color=red]jconsole[/color]:一个java GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM。

详细:在使用这些工具前,先用JPS命令获取当前的每个JVM进程号,然后选择要查看的JVM。
jstat工具特别强大,有众多的可选项,详细查看堆内各个部分的使用量,以及加载类的数量。使用时,需加上查看进程的进程id,和所选参数。以下详细介绍各个参数的意义。
jstat -class pid:显示加载class的数量,及所占空间等信息。
jstat -compiler pid:显示VM实时编译的数量等信息。
jstat -gc pid:可以显示gc的信息,查看gc的次数,及时间。其中最后五项,分别是young gc的次数,young gc的时间,full gc的次数,full gc的时间,gc的总时间。
jstat -gccapacity:可以显示,VM内存中三代(young,old,perm)对象的使用和占用大小,如:PGCMN显示的是最小perm的内存使用量,PGCMX显示的是perm的内存最大使用量,PGC是当前新生成的perm内存占用量,PC是但前perm内存占用量。其他的可以根据这个类推, OC是old内纯的占用量。
jstat -gcnew pid:new对象的信息。
jstat -gcnewcapacity pid:new对象的信息及其占用量。
jstat -gcold pid:old对象的信息。
jstat -gcoldcapacity pid:old对象的信息及其占用量。
jstat -gcpermcapacity pid: perm对象的信息及其占用量。
jstat -util pid:统计gc信息统计。
jstat -printcompilation pid:当前VM执行的信息。
除了以上一个参数外,还可以同时加上 两个数字,如:jstat -printcompilation 3024 250 6是每250毫秒打印一次,一共打印6次,还可以加上-h3每三行显示一下标题。

jmap是一个可以输出所有内存中对象的工具,甚至可以将VM 中的heap,以二进制输出成文本。
命令:jmap -dump:format=b,file=heap.bin <pid>
file:保存路径及文件名
pid:进程编号
•jmap -histo:live pid| less :堆中活动的对象以及大小
•jmap -heap pid : 查看堆的使用状况信息


jinfo:的用处比较简单,就是能输出并修改运行时的java进程的运行参数。用法是jinfo -opt pid 如:查看2788的MaxPerm大小可以用 jinfo -flag MaxPermSize 2788。

jconsole是一个用java写的GUI程序,用来监控VM,并可监控远程的VM,非常易用,而且功能非常强。使用方法:命令行里打 jconsole,选则进程就可以了。
JConsole中关于内存分区的说明。

Eden Space (heap): 内存最初从这个线程池分配给大部分对象。
Survivor Space (heap):用于保存在eden space内存池中经过垃圾回收后没有被回收的对象。
Tenured Generation (heap):用于保持已经在 survivor space内存池中存在了一段时间的对象。
Permanent Generation (non-heap): 保存虚拟机自己的静态(refective)数据,例如类(class)和方法(method)对象。Java虚拟机共享这些类数据。这个区域被分割为只读的和只写的,
Code Cache (non-heap):HotSpot Java虚拟机包括一个用于编译和保存本地代码(native code)的内存,叫做“代码缓存区”(code cache)

•jstack ( 查看jvm线程运行状态,是否有死锁现象等等信息) : jstack pid : thread dump
•jstat -gcutil pid 1000 100 : 1000ms统计一次gc情况统计100次;

另外推荐一款查看jmap dump 的内存对象工具 MemoryAnalyzer
网址:http://www.eclipse.org/mat/,可以查看dump时对象数量,内存占用,线程情况等。
2016-12-13 17:38:46 qq_22901055 阅读数 3942

原文地址:

http://www.darrenfang.com/2013/11/find-and-kill-linux-process/


可以使用 ps 查看系统中正在运行的进程, kill 命令可以结束进程。以前习惯用 ps aux | grep java 查找java进程, 然后再使用 kill -9 强制结束进程。但是有没有办法可以只用一条命令就可以完成这2步操作呢? 答案是肯定的。

可以使用如下命令查找出java进程的pid。得到PID后只需要传递给kill做参数就可以了。

ps -ef | grep java | grep -v grep | awk ’{print $2}’

完整的命令如下:

kill -9 $(ps -ef | grep java | grep -v grep | awk '{print $2}')

这样就可以只用一条命令查找并结束Linux进程。

ps的使用说明: http://zh.wikipedia.org/wiki/Ps_(Unix)

grep的使用说明: http://zh.wikipedia.org/wiki/Grep

awk的使用说明: http://zh.wikipedia.org/wiki/Awk

kill的使用说明(英文):http://en.wikipedia.org/wiki/Kill_(command)

参考文章: http://leifmadsen.wordpress.com/2011/09/15/return-just-pid-of-script-with-ps-and-awk/

同时也推荐看看下面的这个文章 http://www.commandlinefu.com/commands/view/1138/ps-ef-grep-process-grep-v-grep-awk-print-2-xargs-kill-9

2019-02-03 14:53:11 outsanding 阅读数 164
常用基础指
  1. ps -ef|grep java
    ps (process search ) 进程查看
    -ef 全部进程 全格式
    | 管道命令
    grep 文本查询

  2. lsof -i:9000
    查询这个端口是否被占用。也可以明确自己的某个具体端口程序是否被启动。List open file

  3. tail -f test.log
    应用程序启动时候,可以看见像IDE的控制台显示的信息。

  4. nohup java -jar test.jar &
    nohup 表示不挂断运行,输出都将附加到当前目录的 nohup.out 文件中;&表示后台运行应用程序。

  5. 解压
    tar -xvf file.tar 解压 tar包
    tar -xzvf file.tar.gz 解压tar.gz

  6. 压缩
    tar -czf txt.tar.gz *.txt 将目录里所有txt文件打包成txt.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包

  7. df -h 显示已经挂载的分区列表 。

  8. YUM 软件包升级器 - (Fedora, RedHat及类似系统)
    yum install package_name 下载并安装一个rpm包

  9. APT 软件工具 (Debian, Ubuntu 以及类似系统)
    apt-get install package_name 安装/更新一个 deb 包

  10. 查看想开的端口是否已开
    firewall-cmd --query-port=666/tcp
    提示no表示未开
    如果有些服务是udp的协议,需要相应更改
    firewall-cmd --query-port=666/udp

  11. 开永久端口号
    firewall-cmd --add-port=666/tcp --permanent
    提示 success 表示成功

  12. 重新载入配置
    firewall-cmd --reload 比如添加规则之后,需要执行此命令

  13. 再次查看想开的端口是否已开
    firewall-cmd --query-port=666/tcp
    提示yes表示成功

  14. 若移除端口
    firewall-cmd --permanent --remove-port=666/tcp

  15. temctl start firewalld 开启防火墙

  16. temctl stop firewalld 关闭防火墙

2018-12-14 13:41:00 weixin_30516243 阅读数 10

通过jdk1.5以后内置的一个指令,可以快速查找java进程pid,该命令是:jps

位置在:JAVA_HOME/bin/目录下面

功能

jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。

先执行jps –help 查看一下此命令的使用方法

jps [ options ] [ hostid ] 
选项 

-q 仅输出VM标识符,不包括class name,jar name,arguments in main method 
-m 输出main method的参数 
-l 输出完全的包名,应用主类名,jar的完全路径名 
-v 输出jvm参数 
-V 输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 

-Joption 传递参数到vm,例如:-J-Xms48m

实例

jps命令:

jps异常:

Jps有问题, 使用 jps -J-Djps.debug=true -J-Djps.printStackTrace=true 可以获得Jps错误详细信息

另外:jdk版本与运行的进程不符也会导致jps出现

特殊说明

jps仅查找当前用户的Java进程,是一个查看java进程的快捷方式,而不是查找当前系统中的所有进程。

在Linux环境下显示一个进程的信息常用ps命令,比如用以下命令来显示当前系统执行的Java进程:

 ps -ef | grep java

 

转载于:https://www.cnblogs.com/javabg/p/10118961.html

2015-07-09 20:43:25 u011794238 阅读数 810

通过 ps -ef|grep java 来得到真正运行的线程


通过kill -9 XXXXX来杀死正在运行的线程,其中XXXXX是上面java线程的序号。


另外还有2个指令我也不熟悉,一个是cat,一个是vi,用这个指令的时候用:q来退出,进去退不出来了,我惆怅

其中都可以看一个文件,但是cat本身就是查看,当然vi也可以看但是这个指令主要是进去用来编辑的。



Linux里面的实用指令

阅读数 10610

没有更多推荐了,返回首页