线上问题排查
1.磁盘空间不足问题
先从总体查看磁盘状态:df -h
找到不足的磁盘,进入目录查看具体文件大小:du -sh *(ls -lh只能看文件大小,文件夹的看不出来)
2.cpu和内存使用率过高问题
查看所有进程:top
查看单个进程:top -p pid
查看单个进程的线程:top -p pid -H
只看内存使用情况:free -h
只看交换区:swapon
3.网络延迟
查看所有连接中的 socket:netstat -a
查看所有 tcp 连接的信息,包括进程号: netstat -tnpa
得到进程号后就好说了配合 top 命令,ps -ef 命令,查看相关进程信息
实时流量数据:iftop -P
4.java进程问题
查看java进程号:jps
查看堆内存设置与当前使用情况:jmap -heap pid
统计当前堆内对象使用情况:jmap -histo:live pid
dump堆快照文件,后续用mat等工具分析:jmap -dump:format=b,file=heapdump.phrof pid
查看 jvm 线程运行信息(推荐一个分析stack文件的网站fastthread.io):jstack
直接用第三方工具也很方便,推荐阿里的arthas
5.一些无法本地debug的调式技巧
对于一些线上问题不方便本地调试,这里推荐一个阿里的工具:arthas
- watch 命令可以实时观察一个方法的入参和出参。
- trace 命令可以跟踪某个方法的耗时,而且可以深入这个方法所调用的方法的各个耗时。
- dashboard 全局监控
- thread 查看所有线程信息,包括状态和 CPU 使用率
- thread -b 甚至可以直接定位到死锁信息
- jad 命令进行反编译
甚至可以代码热替换,更多详细功能可以参考arthas官网的文档
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!