快速定位Linux服务器性能问题

1、查看系统当前网络连接数

netstat -n | awk ‘/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}’

2、查看堆内对象的分布 Top 50(定位内存泄漏)

jmap –histo:live $pid | sort-n -r -k2 | head-n 50

3、按照 CPU 的使用情况列出 Top 10 的进程

ps -aeo pcpu,user,pid,cmd | sort -nr | head -10

4、按照 内存 的使用情况列出 Top 10 的进程

ps axo %mem,pid,euser,cmd | sort -nr | head -10

5、显示系统整体的 CPU 利用率和闲置率

grep "cpu " /proc/stat | awk -F ’ ’ ‘{total = $2 + $3 + $4 + $5} END {print “idle \t used\n” $5100/total "% " $2100/total “%”}’

6、按照 Swap 分区的使用情况列出 Top 10 的进程

for file in /proc/*/status ; do awk ‘/VmSwap|Name|^Pid/{printf $2 " " $3}END{ print “”}’ $file; done | sort -k 3 -n -r | head -10

7、按线程状态统计线程数

jstack $pid | grep java.lang.Thread.State:|sort|uniq -c | awk ‘{sum+=$1; split(KaTeX parse error: Undefined control sequence: \t at position 19: …,":");gsub(/^[ \̲t̲]+|[ \t]+/, “”, a[2]);printf “%s: %s\n”, a[2], $1}; END {printf “TOTAL: %s”,sum}’

8、显示垃圾收集信息(间隔1秒持续输出)

jstat -gcutil $pid 1000

9、显示老年代容量

jstat -gcoldcapacity $pid

10、显示新生代容量及使用情况

jstat -gcnewcapacity $pid

11、显示各个代的容量及使用情况

jstat -gccapacity $pid

12、显示最后一次或当前正在发生的垃圾收集的诱发原因

jstat -gccause $pid

13、查找/目录下占用磁盘空间最大的 Top 10 文件

find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10

14、快速杀死所有的 Java 进程

ps aux | grep java | awk ‘{ print $2 }’ | xargs kill -9

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值