定位服务器性能问题
转载自:https://www.mscodecloud.com/document/linux
查看系统当前网络连接数
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看堆内对象的分布 Top 50(定位内存泄漏)
jmap –histo:live $pid | sort-n -r -k2 | head-n 50
按照 CPU 的使用情况列出 Top 10 的进程
ps -aeo pcpu,user,pid,cmd | sort -nr | head -10
按照 内存 的使用情况列出 Top 10 的进程
ps axo %mem,pid,euser,cmd | sort -nr | head -10
显示系统整体的 CPU 利用率和闲置率
grep "cpu " /proc/stat | awk -F ' ' '{total = $2 + $3 + $4 + $5} END {print "idle \t used\n" $5*100/total "% " $2*100/total "%"}'
按照 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
按线程状态统计线程数
jstack $pid | grep java.lang.Thread.State:|sort|uniq -c | awk '{sum+=$1; split($0,a,":");gsub(/^[ \t]+|[ \t]+$/, "", a[2]);printf "%s: %s\n", a[2], $1}; END {printf "TOTAL: %s",sum}'
显示垃圾收集信息(间隔1秒持续输出)
jstat -gcutil $pid 1000
显示老年代容量
jstat -gcoldcapacity $pid
显示新生代容量及使用情况
jstat -gcnewcapacity $pid
显示各个代的容量及使用情况
jstat -gccapacity $pid
显示最后一次或当前正在发生的垃圾收集的诱发原因
jstat -gccause $pid
查找/目录下占用磁盘空间最大的 Top 10 文件
find / -type f -print0 | xargs -0 du -h | sort -rh | head -n 10
快速杀死所有的 Java 进程
ps aux | grep java | awk '{ print $2 }' | xargs kill -9
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!