日期:2014-05-16  浏览次数:20976 次

救火必备linux命令小结

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

系统参数
cat /proc/cpuinfo? cpu相关参数

cat /proc/meminfo 内存相关参数

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

M:按内存使用排序

P:按CPU占用排序

1:显示各CPU的使用情况

k:kill进程

o:更多排序规则

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

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

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

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

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

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

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

netstat? -ln:显示所有监听状态的网络连接
存储
1)df -h:硬盘存储总体情况
2)du --max-depth=1 -h <路径>:指定路径下所有文件夹的大小(递归一层)
3)du -sh <路径>:指定目录的大小
内存
free -m
值得注意的是:空闲内存=free+buffers+cached=total-used
JVM

1)jstat
jstat -gccapacity? <jpid>:JVM各区的剩余状态
jstat -gcutil <jpid>:JVM各区的占用情况
jstat -gccause <jpid>:jstat -gcutil基础加上gc的原因
另外可以指定更新频率,如-h5 1s:每一秒更新一次,并每隔5条加上header显示
2)jps

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

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

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