些个查问题命令小结

线上查问题的时候有些命令是必备,有必要把一些常用命令总结一下(这类命令和相关参数相当多,只总结自己常用得到的),查找问题一般可以分为系统参数、性能参数、进程、内存、网络、存储、内存和jvm这么几类:

[b]系统参数[/b]
cat /proc/cpuinfo cpu相关参数

cat /proc/meminfo 内存相关参数

cat /proc/loadavg 负载情况
[b]性能参数[/b]
1)top

M:按内存使用排序

P:按CPU占用排序

1:显示各CPU的使用情况

k:kill进程

o:更多排序规则

回车:刷新数据
2)ulimit
ulimit -a:显示本用户的系统限制参数

ulimit -Hn :更改最大Hard open file数

ulimit -Sn :更改最大Soft open file数
3)vmstat
vmstat 5 -S m:以5秒的数据刷新vmstat数据(单位为m)
[b]进程[/b]
1)ps
ps aux:显示所有用户进程详情

ps -ef:显示所有用户进程详情另一种风格

如果显示不全可以通过-w加宽,如ps aux -www
[b]网络[/b]
1)netstat
netstat -na:显示所有网络连接

netstat -nap:显示所有网络连接,并带上进程相关信息

netstat -nat:显示所有tcp类型的网络连接

netstat -ln:显示所有监听状态的网络连接
[b]存储[/b]
1)df -h:硬盘存储总体情况
2)du --max-depth=1 -h <路径>:指定路径下所有文件夹的大小(递归一层)
3)du -sh <路径>:指定目录的大小
[b]内存[/b]
free -m
值得注意的是:空闲内存=free+buffers+cached=total-used
[b]JVM[/b]
1)jstat
jstat -gccapacity :JVM各区的剩余状态
jstat -gcutil :JVM各区的占用情况
jstat -gccause :jstat -gcutil基础加上gc的原因
另外可以指定更新频率,如-h5 1s:每一秒更新一次,并每隔5条加上header显示
2)jps

目前正在运行中的java进程
3)jmap

jmap -dump:format=b,file=jmap.log :生成heap dump文件
jmap -heap :显示jvm heap总体情况
jmap -histo:live :显示类实例占用内存情况

4)jstack
jstack -l :显示线程阻塞/死锁情况

[b]抓包[/b]
tcpdump -D : 显示机器网卡
tcpdump -i eth0 -n -c 1000 -s0 -w xx_log.pcap host xxx.xxx.xxx.xxx : 抓取包含主机IP为xxx.xxx.xxx.xxx的1000个数据包,生成xx_log.pcap文件

[b]取maven dependency源码[/b]
mvn dependency:get -Dartifact=net.sf.json-lib:json-lib:2.2.1:jar:jdk15:sources
mvn dependency:get -Dartifact=org.apache.commons:commons-jexl:2.0.1:jar:sources
[b]install源码[/b]
mvn source:jar install

to be continue ... ...

你可能感兴趣的:(java)