性能排查命令

本文介绍了一系列系统监控命令及Java性能分析工具,涵盖了进程、CPU、内存、磁盘和网络监控,以及如何利用这些工具进行Java应用程序的性能分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

进程相关

CPU监控

内存监控

磁盘监控

网络监控

JAVA性能分析命令

分析java gc日志

其他命令


进程相关

ps -ef|grep 'java' 或者 jps

查看java进程

ps -eo pid,lstart | grep pid

查看某个进程的启动时间,,java垃圾回收日志有的以系统启动时间为基准

ps -eo pid,lstart | grep 18289

查看某个进程的启动时间

netstat -anp | grep pid

查看进程占用端口

netstat -nap|grep "ESTABLISHED"|grep 8304

查看某端口已建立的连接信息

CPU监控

top

看进程内存占用,cpu消耗等

top -Hp pid

查看某个进程中的线程,按Shift+P按cpu耗时排序,再结合jstack -l pid|grep -C 5 '转16进制后的线程id' 分析 出耗时的java线程

printf "%x\n" pid

这个命令放在这里是上个命令有说到16进制,将10进制转16进制

vmstat 1

监控系统内存,cpu,io等状况

ps -eo pid,pcpu,args|grep java|grep -v 'grep'|sort -nrk 2|head -n 10

打印出最耗cpu的10个Java应用

cat /proc/cpuinfo

查看cpu信息

cat /proc/cpuinfo | grep "physical id" | sort | uniq

查看cpu个数

cat /proc/cpuinfo|grep 'cores'|sort|uniq

查看cpu的核数量

内存监控

cat /proc/meminfo

查看内存占用

free -m

内存使用情况

磁盘监控

iostat -x

IO监控

iotop -p pid

查看进程io消耗情况

blktrace

io分析工具,可定位到到底是读或写哪个(或哪些)文件造成了iowait高

df -h 

查看磁盘已使用情况

du -sh directory_name

查看某个目录的大小,当磁盘容量不足时,可以用该命令列出储存占用比较大的目录(du -sh *)

列出比较大占用的目录

du -h --max--depth=1|sort -rh

网络监控

tcpdump -i eth0 port 7510

查看某个端口是否接受到网络数据

iftop

流量监控 

sar -n DEV -u 1 10

查看网卡流量情况

sar -n DEV

网卡资源使用率

ethtool eth0

查看网卡带宽

curl ifconfig.me/all

查看机子公网ip

sysctl -a | grep tcp

linux 内核TCP参数查看

lspci | grep -i ether

查看网卡型号

nicstat 5

网络接口流量监控

JAVA性能分析命令

jmap -dump:format=b,file=test.bin pid

转储java堆内存数据,使用jdk自动工具jhat -J-mx1024m xx.bin,访问http://localhost:7000分析,或者使用用eclipse内存分析工具mat分析

jcmd 23681 VM.flags

查看某个java进程jvm启动参数

jmap -histo:live pid

查看类对象数量,占用内存大小汇总

jmap -heap pid

查看堆使用情况

jstat -gcutil pid

查看java新生代,老年代,以及对应的gc情况

jstat -gccapacity pid

查看虚拟机各个代的容量和相关统计信息,当-Xms == -Xmx的时候,OC +NGC 等于总堆大小

jstack -l pid

查看某个java进程的线程快照

分析java gc日志

可以将gc日志压缩成.zip文件上传到GC analysis 网站分析.

其他命令


mysqladmin -uroot -p variables |grep max_connections

在linux 上查看mysql 最大连接数

lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more

查看进程打开文件描述符情况

ulimit -n 

限制程序能打开的最大文件描述符数量,可以用来限制创建socket数量

stat fileName

查看文件或者文件系统状态,,,包括文件访问,修改,文件属性改变时间等

find . -type d -name xxx

查找文件夹

### 常见的Linux系统性能排查命令 对于Linux系统的性能问题,有多种工具和命令可以帮助识别并解决问题。这些工具提供了关于CPU、内存、磁盘I/O以及网络活动的关键指标。 #### 使用`top`监控实时进程状态 `top`是一个动态显示Linux任务管理器的应用程序,可以查看当前运行的任务及其资源消耗情况[^1]。 ```bash top ``` 此命令会持续更新屏幕上的信息,默认情况下每三秒刷新一次列表。通过观察各个进程占用的CPU时间百分比和其他参数来判断是否存在异常高负载的情况。 #### 利用`vmstat`获取虚拟内存统计报告 `vmstat`能够提供有关操作系统内核调度队列长度、平均负载等方面的统计数据;同时也可用于监测物理内存与交换空间的状态变化趋势[^4]。 ```bash vmstat 2 5 ``` 上述指令表示每隔两秒钟打印五行数据,其中包含了详细的输入/输出操作次数等重要字段。 #### 调用`iostat`分析设备利用率 当遇到磁盘读写速度慢等问题时,可借助于`iostat`了解具体硬盘的工作效率如何。它不仅支持展示单个分区或整个存储子系统的吞吐量表现,还能反映出等待访问磁盘的时间比例是否过高而影响整体响应速率。 ```bash iostat -xz 3 ``` 这里设置采样间隔为三秒,并且只关注那些非零活跃度的相关数值(即带有`-x`选项)。 #### 执行`netstat`检查网络连接状况 尽管现代版本可能推荐使用替代品如`ss`,但在某些场景下依旧适用传统的`netstat`来进行初步诊断工作。特别是想要快速浏览监听端口或是建立中的TCP连接概况之时[^3]。 ```bash netstat -tulnp ``` 该组合开关意指:传输层协议(`tcp`)、用户级服务(`udp`)、本地地址(`l`)、外部地址(`r`)加上所属进程ID(`p`)。 #### 应用`sar`收集历史记录日志 如果希望回顾过去一段时间内的服务器运作情形,则不应错过`sar`(System Activity Reporter)所提供的强大功能——定时保存各项硬件设施的表现详情至文件之中以便日后查询分析之需。 ```bash sar -u ALL 1 3 ``` 此处设定采集频率为一秒三次,目标对象涵盖了所有的CPU核心单元(-u),从而形成一份详尽的日志条目供后续研究参考价值极大。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值