服务器运维相关命令

目录

一、相关命令

二、具体使用

1.top

介绍

命令功能

命令格式

2.jstack

介绍

命令格式

和jmap的区别

jstack(查看线程)、jmap(查看内存)和jstat(性能分析)

类似命令kill -3 pid

3.jps

介绍

命令格式

jps -v 示例

4.jmap

介绍

命令格式

示例

5.kill -3 pid

介绍

命令格式

示例

其他


一、相关命令

top、jstack、jps、jmap(arthas用heapdump来替代)、 kill -3 pid、thead dump、jinfo

二、具体使用

1.top

top -p 8379(进程id) -H

或者

top -Hp pid

arthas的dashboard相当于综合了top、top -Hp pid和xx命令的组合


 

介绍

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器。

说明:top命令用来显示执行中的程序进程,使用权限是所有用户。按q键退出

命令功能

显示当前系统正在执行的进程的相关信息,包括进程ID、内存占用率、CPU占用率等

命令格式

top [参数]

格式:top [-] [d delay] [q] [c] [S] [s] [i] [n]

主要参数:

d:指定更新的间隔,以秒计算。

q:没有任何延迟的更新。如果使用者有超级用户,则top命令将会以最高的优先序执行。

c:显示进程完整的路径与名称。

S:累积模式,会将己完成或消失的子行程的CPU时间累积起来。

s:安全模式。

i:不显示任何闲置(Idle)或无用(Zombie)的行程。

n:显示更新的次数,完成后将会退出top。

-h | -v: 显示帮助或者版本信息】
** -c:** 命令行列显示程序名以及参数
-d: 启动时设置刷新时间间隔
-H: 设置线程模式
-i: 只显示活跃进程
-n: 显示指定数量的进程
-p: 显示指定PID的进程
-u: 显示指定用户的进程

top命令每个字段的详细解释如下:

cpu使用率彪高以及top命令详解_top命令的cpu占用率怎么算的_你的小伙伴啊的博客-CSDN博客

2.jstack

介绍

  1. jstack命令用于打印指定Java进程、核心文件或远程调试服务器的Java线程的Java堆栈跟踪信息[1]
  2. jstack命令可以生成JVM当前时刻的线程快照。线程快照是当前JVM内每一条线程正在执行的方法堆栈的集合,生成线程快照的主要目的是定位线程出现长时间停顿的原因,如线程间死锁、死循环、请求外部资源导致的长时间等待等。
  3. 如果java程序崩溃生成core文件,jstack工具可以用来获得core文件的java stack和native stack的信息,从而可以轻松地知道java程序是如何崩溃和在程序何处发生问题。
  4. 当指定的进程在64位Java虚拟机上运行时,可能需要指定-J-d64选项,例如:jstack -J-d64 -m pid。
  5. 该命令可能在未来的版本中不可用!!!

命令格式

jstack pid

和jmap的区别

jstack(查看线程)、jmap(查看内存)和jstat(性能分析)

两个工具的区别在于jstack是用于调试线程间的关系,解决阻塞,锁,cpu飙高等问题
而jmap用于输出对象,适用于解决对象内存溢出等问题。

类似命令kill -3 pid

kill -3 PID和jstack得到的结果类似。

当linux服务器出现异常情况(响应缓慢,负载持续飙升)并且服务器没有安装对应的包而无法使用jstack等命令时,可以使用linux的kill相关命令打印堆栈信息。

命令格式:kill -3 PID

kill -3 PID命令只能打印那一瞬间java进程的堆栈信息,适合在服务器响应慢,cpu、内存快速飙升等异常情况下使用,可以方便地定位到导致异常发生的java类,解决如死锁、连接超时等原因导致的系统异常问题。该命令不会杀死进程。
 

3.jps

介绍

jps(Java Virtual Machine Process Status Tool)

是java提供的一个显示当前所有java进程pid的命令,适合在linux/unix平台上简单察看当前java进程的一些简单情况。

很多人都是用过unix系统里的ps命令,这个命令主要是用来显示当前系统的进程情况,有哪些进程以及进程id。

jps 也是一样,它的作用是显示当前系统的java进程情况及进程id。

我们可以通过它来查看我们到底启动了几个java进程(因为每一个java程序都会独占一个java虚拟机实例)

并可通过opt来查看这些进程的详细启动参数。

命令格式

jps [options ] [ hostidh3

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

jps -v 示例

java -jar 带jvm参数启动如下:

java -Xmx512m  -jar xxx.jar  

如果要加入spring的参数应该追加在xxx.jar后面:

 java -Xmx512m -jar paotui-coupon-exec.jar --spring.profiles.active=test

jps -v示例如下:

1.带jvm参数启动:

 jps -v:如下,看到了jvm参数

4.jmap

介绍

arthas用heapdump来替代

jmap(Java Virtual Machine Memory Map)是JDK提供的一个可以生成Java虚拟机的堆转储快照dump文件的命令行工具。除此以外,jmap命令还可以查看finalize执行队列、Java堆和方法区的详细信息,比如空间使用率、当前使用的什么垃圾回收器、分代情况等等。

命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列

命令格式

jmap [options] pid

示例

jmap -dump:live,format=b,file=/root/xhw/arthas/data/java-heap-dump.hprof  23985

 已输出dump文件如下:

5.kill -3 pid

介绍

kill -3 PID和jstack得到的结果类似,都是查看当前进程/线程的情况。

当linux服务器出现异常情况(响应缓慢,负载持续飙升)并且服务器没有安装对应的包而无法使用jstack等命令时,可以使用linux的kill相关命令打印堆栈信息。

命令格式:kill -3 PID

kill -3 PID命令只能打印那一瞬间java进程的堆栈信息,适合在服务器响应慢,cpu、内存快速飙升等异常情况下使用,可以方便地定位到导致异常发生的java类,解决如死锁、连接超时等原因导致的系统异常问题。该命令不会杀死进程。

kill -3 pid打印的进程信息在哪里:

(1)如果项目通过Tomcat进行发布(普通的web项目),则对应的堆栈信息会打印在catalina.out文件中。

(2)如果项目是基于SpringBoot并且使用nohup java -jar xxx.jar & 命令运行,则java堆栈信息会在jar包所在的nohup.out文件中。

命令格式

kill -3 PID

示例

kill -3 pid 得到的进程信息会存入一个文件夹

通过 nohup java -jar humanEnv.jar &  命令启动的jar包,会把进程信息存入jar包所在位置的nohup.out文件中

如下:nohup.out

 scp下载到本地查看:

找到这个位置,就是线程相关的信息了

这里对比了一下,通过kill -3 pid打印进程和没有打印进程的文件,打印进程的文件大了不少

并且在未打印进程的文件中确实也找不到进程相关的信息。

其他

jinfo(Configuration Info for Java) 查看虚拟机配置参数信思,也可用于调整虚拟机的配置参数。

top----Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况
uptime----查看系统负载
free----显示Linux系统中空闲的、已用的物理内存及swap内存,及被内核使用的buffer
iostat----用于输出CPU和磁盘I/O相关的统计信息
netstat----用于显示各种网络相关信息
df----列出文件系统的整体磁盘空间使用情况
du----用于显示目录或文件的大小
ps----命令用于显示当前进程 (process) 的状态
ping----常用的网络命令,它通常用来测试与目标主机的连通性
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值