Javaer运维快餐指令合集

这年头,大家都喜欢吃快餐,虽不健康,但是奈何真香!这里我把经常使用的运维指令总结成一套指令快餐。之所以称之为快餐是因为每个指令都是简单的一句或者两句话的简介。注意很多指令用法奇多,文中不会一一列出。

系统相关

df
查看磁盘剩余空间。一般 df -h

free
查看内存使用情况。一般 free -h

du
查看文件占用磁盘空间。一般 du -h

top
查看系统整体情况,包括CPU,内存,负载等等。直接 top即可。也可以这样top -H -p pid 查看某个进程下的线程情况。

ps
查看系统进程。直接命令行输入 ps -ef 或者 ps aux,将显示系统里面所有的进程。
一般我们会这样用 ps -ef|grep java|grep -v grep或者ps aux|grep tomcat|grep -v tomcat。查找出所有java进程或者tomcat进程。

kill
杀死进程。一般 kill -9 pid 强制杀死进程。也可以这样 ps -ef | grep java | grep -v grep | awk '{print $2}' | xargs kill -9
批量杀死所有Java进程。

pstree
查看一个进程下的线程数。一般 pstree -p pid |wc -l

mpstat
查看cpu 有关信息。直接命令行输入 mpstat,一般会这样使用,mpstat -P ALL 5 2,每5秒采集一次,采集2次。

vmstat
查看虚拟内存使用状态,及CPU等信息。用法和mpstat类似,vmstat 2 1 每两秒采集一次,一共采集一次。

pmap
查看一个进程是如何使用内存的。一般 pmap pid

iostat
查看机器IO情况,一般直接输入iostat指令。

lsof
查看进程打开的文件及网络端口。一般 lsof filename 查看哪个进程在使用该文件。lsof -i tcp:8083 列出哪个进程在使用8083端口

网络相关

curl
通过该指令可以访问URL地址。例如 curl http://url

wget
用于在命令行通过url下载文件,比如 wget http://url

ping
ping命令用来测试主机之间网络的连通性。ping ip

telnet
一般用于检查服务端某个端口联通性,比如 telnet ip port

ss,netstat
都可以显示网络系统的状态信息。一般netstat -anp|grep 8080 或者 ss -lnp。ss的优势是比较快。当服务器链接数过多时,netstat会很慢。

ifconfig
查看本机IP及硬件信息。一般 ifconfig -a

tcpdump
网络抓包,分析网络链接的细节问题。需要有sudo权限。
监听通过网卡 eth0 的网络包,并保存到 socketdump.dattcpdump -i eth0 tcp -w socketdump.dat 注意这个文件需要使用wireshark 来分析,你用肉眼是解读不出什么的。
监听某个主机某个端口 tcpdump tcp port 8089 and host hostname
监听某个网段的数据 tcpdump tcp -c 10 net 172.22

traceroute
用于追踪数据包在网络上的传输时的全部路径,它默认发送的数据包大小是40字节。 一般traceroute www.baidu.com

jvm相关

jps
查看运行中的java进程,一般的 jps -lv

jmap
查看JVM堆内存使用情况,包括GC算法等信息。一般jmap -heap pid
dump出内存文件,用jhat或者MAT进行分析。一般 jmap -dump:format=b,file=dumpFileName pid

jhat
分析堆内存文件。一般jhat -J-Xmx2G -port 9998 dumpFileName 然后在浏览器端通过9998端口访问。 建议不要在线上服务器上操作,会很占用内存和CPU。

jstack
查看Java进程内的线程堆栈信息。 一般的 jstack pid | grep "java.lang.Thread.state"| sort -nr| uniq -c。查看进程各个状态数量。注意jstack显示的线程号都是16进制的。我们需要把进程号转换为16进制,命令行直接输入printf '%x\n' 3528,然后查找对应线程信息,jstack pid | grep 'nid

jstat
可以看出堆内存及GC情况,一般的jstat -gcutil pid

结束

大家不要希望记住几个指令,就能解决线上所有问题,就能成为大牛。要想成为大牛还是要多实战,多看书。比如定位网络相关的问题,你最好多读几遍《TCP/IP详解》这本书,要想解决JVM相关的问题,你最好多去找几本JVM相关的书籍来看。快餐终究是快餐,解馋可以,对成长不利!


推荐阅读
你的内存够用吗
我是如何进行架构设计的

-------------本文结束-------------
坚持原创技术分享,您的支持将鼓励我继续创作!
0%