一、CUP定位分析
CPU使用情况的监控命令很多,如下所示,个人使用top、vmstat 命令较多
idle:空闲的
二、内存定位分析
内存使用情况的监控命令很多,如下所示,个人使用top、free -m 、vmstat 命令较多
三、磁盘IO定位分析
磁盘IO使用情况(磁盘IO使用率)的监控命令很多,如下所示,个人使用iostat、vmstat 命令较多
四、网络定位分析
磁盘IO使用情况的监控命令很多,如下所示,个人使用netstat 命令较多
netstat命令监控图如下:
Active Internet connections 有源TCP连接,其中"Recv-Q"和"Send-Q"指接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列中堆积。这种情况只能在非常少的情况见到。
五、JVM监控
如果要检查JVM的整体运行情况,比较实用的工具之一,就是jstat
他可以轻易的让你看到当前运行中的系统,他的JVM内的Eden、Survivor、老年代的内存使用情况,还有Young GC和Full gC的执行次数以及耗时。通过这些指标,我们可以轻松的分析出当前系统的运行情况,判断当前系统的内存使用压力以及GC压力,还有就是内存分配是否合理。
命令详解::
jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]]
#<>里面的参数必填 []里面的参数非必填
option参数选项:
-class 用于查看类加载情况的统计
-compiler 用于查看HotSpot中即时编译器编译情况的统计
-gc 用于查看JVM中堆的垃圾收集情况的统计
-gccapacity 用于查看新生代、老生代及持久代的存储容量情况
-gcmetacapacity 显示metaspace的大小
-gcnew 用于查看新生代垃圾收集的情况
-gcnewcapacity 用于查看新生代存储容量的情况
-gcold 用于查看老生代及持久代垃圾收集的情况
-gcoldcapacity 用于查看老生代的容量
-gcutil 显示垃圾收集信息
-gccause 显示垃圾回收的相关信息(通-gcutil),同时显示最后一次仅当前正在发生的垃圾收集的原因
-printcompilation 输出JIT编译的方法信息
其它参数:
-t:可以在打印的列加上Timestamp列,用于显示系统运行的时间
-h:可以在周期性数据输出的时候,指定输出多少行以后输出一次表头
vmid:Virtual Machine ID( 进程的 pid)
interval:执行每次的间隔时间,单位为毫秒
count:用于指定输出多少次记录,缺省则会一直打印
举例说明:
jstat -gc 82 1000 #每1 秒一次显示进程号为82的 java进成的 GC情况
jstat -gcutil 82 1000 10 #每1 秒一次显示进程号为82的 java进程垃圾回收统计情况,显示10次