统计每秒钟Nginx收到多少请求:
cat access.log | grep 2019:20:19:50 | wc -l
解释:access.log为Nginx的日志,通过Nginx的配置文件nginx.conf查看日志文件名称和位置,2019:20:19:50 表示获取20点19分50秒接收的请求数,去掉秒则可以得到每分钟收到的请求数
查看GC情况:
jstat -gc PID 300 20
解释:PID是进程号,300表示300毫秒收集一次,20表示收集次数
jstack -l PID > a.txt
解释:将java堆栈输出到a.txt文件中
jcmd PID Thread.print >a.txt
解释:jcmd是JDK1.8以上版本才能用,和jstack的效果一样,也是将java堆栈文件打印到a.txt文件中
pstack PID >a.txt
解释:pstack命令表示将进程为PID的本地堆栈打印到a.txt文件中,文件中的LVMID 与top -Hp PID中的线程号是一致的
top -Hp PID
解释:打印进程号为PID的线程信息,可以得到最耗资源的线程号,执行printf %x PPID得到线程号的16进制,与java堆栈中的nid匹配
printf %x PPID
解释:将十进制线程号转换成十六进制
iostat -x 1
解释:iostat主要用于监控系统设备的IO负载情况,iostat首次运行时显示自系统启动开始的各项统计信息,之后运行iostat将显示自上次运行该命令以后的统计信息。用户可以通过指定统计的次数和时间来获得所需的统计信息。-x表示显示和io相关的扩展数据,检查awai列,如果该列在负载下持续超过10ms,说明磁盘过慢或磁盘过载
iostat -d -k 2
解释:-d表示显示设备(磁盘)使用状态;-k某些使用block为单位的列强制使用Kilobytes为单位;2表示,数据显示每隔2秒刷新一次。
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
解释:查看linux系统中tcp连接的状态和连接数量统计,当结果中出现大量FINA_WAIT2时,表示服务器已经不堪重负
netstat -s|grep -i listen
解释:Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。-s 按各个协议进行统计。