线上问题排查常用工具

一、系统常用工具
1. netstat
查看系统通信端口以及网络连接状态等等信息,常用参数为 -t(tcp通信端口及连接) -u(udp通信端口) -n(直接显示IP地址和端口号,不做名字解析) -a
2. ps
(1)查看系统进程/线程信息
(2)常用参数为 -ef(显示所有进程) -eLf(显示所有线程)
(3)常见用法为:ps -eLf|grep java -c(查看java线程数); ps -ef|grep java(查看java进程信息)
3. wc
(1)用于统计指定文件中的字节数、单词数或者行数等等信息
(2)常用参数为 -l(统计行数) -c(统计字节数) -w(统计单词数)
4. uptime
(1)显示系统已经运行了多长时间,它依次显示下列信息:现在时间、系统已经运行了多长时间、目前有多少登陆用户、系统在过去的1分钟、5分钟和15分钟内的平均load
(2)常用参数(无)
(3)常见用法:watch -n 1 'uptime'
(4)相关命令:w(显的信息比uptime要全)
5. vmstat
(1)实时的性能监测工具
(2)常用参数 n(信息刷新频率,1代表每秒刷新一次,2代表每2秒刷新一次)
6. top
(1)实时查看系统中各个进程/线程的资源占用情况
(2)常用参数 -H(显示线程信息) -p(后面跟上指定的PID,则可查看指定进程的资源占用情况)
7. cat /proc/cpuinfo
(1)查看CPU信息
8. cat /proc/meminfo
(1)查看内存信息
9. sar
(1)查看系统各资源的使用情况,可以查看历史数据,也可以查看实时数据
(2)常用参数:
interval(信息刷新频率,1代表每秒钟刷新一次,2代表每2秒刷新一次)
count(总共刷新次数,0代表无数次)
-q(查看load状况)
-u(查看cpu使用率)
-r(查看内存和swap区的使用率)
-R(查看内存统计信息)
-b(查看io统计信息)
-B(查看页统计信息)
-n(查看网络统计信息,可以查看网卡吞吐率,网络连接资源等等,后面需要带上具体的统计对象,包括DEV/EDEV/NFS/NFSD/SOCK/ALL)
-f(查看历史某一天的数据,后面跟上历史日志文件 /var/log/sa/saxx, xx暂代具体的日期)
10. tsar
(1)查看系统各资源的使用情况,可以查看历史数据,也可以查看实时数据。可理解为是sar工具的封装版本
11. df
(1)检查文件系统的磁盘空间占用情况
(2)常用参数为 -a(显示所有挂载的文件系统的情况) -h(以human-readable方式展示空间容量数据)
12. du
(1)显示指定目录下的子目录所占用的磁盘空间大小
(2)常用参数为 -a(展示指定目录下所有子目录及文件所占空间容量) -h(以human-readable方式展示空间容量数据) --max-depth(遍历的深度)
13. ifconfig
(1)查看网络配置信息
14. ping
(1)查看网络上的主机是否在工作,以及网络时延等等信息
15. lsof
(1)列出被进程所打开的文件的信息
lsof -p pid
(2)查看占用指定端口的进程
lsof -i :port
(3)查看指定用户打开的文件
lsof -u uid
16. curl
(1)curl是利用url语法在命令行方式下工作的文件传输工具,它支持很多协议包括FTP、HTTP、TELNET等等
17. watch
(1)周期性地执行后面所跟的linux命令(几乎适用于任何命令)
18. tail
(1)实时查看指定日志文件
19. gdb
强大的系统调试工具,可以用来调试指定进程,包括c、python等进程

二、java常用工具
1. jstack pid
(1)查看jvm中当前所有线程的运行情况和线程当前状态
2. jmap -option pid
(1)查看jvm中物理内存的占用情况
(2)常用参数:
-heap(打印jvm heap情况)
-histo(打印jvm heap直方图,其输出信息包括类名,对象数量,对象占用大小)
-histo:live(只输出存活对象的情况)
-permstat(只输出permanent generation heap情况)
-dump:format=b, file=xxx.hprof(dump指定java进程的内存信息)
3. jstat -<option> <vmid> [<interval> [<count>]]
(1)查看jvm内存使用情况
(2)常用参数:
-gcutil(查看gc相关信息)
-gcnew(查看new对象的信息及占用量)
-gcold(查看old对象的信息及占用量)
-class(查看JVM中加载的class的数量,及所占空间等信息)
-compiler(查看JVM实时编译的类数量等信息)

猜你喜欢

转载自markshow.iteye.com/blog/2020510