top命令 实时显示正在执行进程的 CPU 使用率、内存使用率以及系统负载等信息。其中上半部分显示的是系统的统计信息,下半部分显示的是进程的使用率统计信息。
top -Hp pid 查看具体线程使用系统资源情况
vmstat 多用来观测进程的上下文切换 r:等待运行的进程数; b:处于非中断睡眠状态的进程数; swpd:虚拟内存使用情况; free:空闲的内存; buff:用来作为缓冲的内存数; si:从磁盘交换到内存的交换页数量; so:从内存交换到磁盘的交换页数量; bi:发送到块设备的块数; bo:从块设备接收到的块数; in:每秒中断数; cs:每秒上下文切换次数; us:用户 CPU 使用时间; sy:内核 CPU 系统使用时间; id:空闲时间; wa:等待 I/O 时间; st:运行虚拟机窃取的时间。
pidstat Sysstat 中的一个组件 通过yum install sysstat 安装该监控组件 用来监测线程的性能 -u:默认的参数,显示各个进程的 cpu 使用情况; -r:显示各个进程的内存使用情况; -d:显示各个进程的 I/O 使用情况; -w:显示每个进程的上下文切换情况; -p:指定进程号; -t:显示进程中线程的统计信息。
如:pidstate -p 28557 -r 1 3 (1表示每秒,3表示采样次数) Minflt/s:任务每秒发生的次要错误,不需要从磁盘中加载页; Majflt/s:任务每秒发生的主要错误,需要从磁盘中加载页; VSZ:虚拟地址大小,虚拟内存使用 KB; RSS:常驻集合大小,非交换区内存使用 KB。
jstat
jstat -gc pid 查看堆内存的使用情况 S0C:年轻代中 To Survivor 的容量(单位 KB); S1C:年轻代中 From Survivor 的容量(单位 KB); S0U:年轻代中 To Survivor目前已使用空间(单位 KB); S1U:年轻代中 From Survivor 目前已使用空间(单位 KB); EC:年轻代中 Eden 的容量(单位 KB); EU:年轻代中 Eden 目前已使用空间(单位 KB); OC:Old 代的容量(单位 KB); OU:Old 代目前已使用空间(单位 KB); MC:Metaspace 的容量(单位 KB); MU:Metaspace 目前已使用空间(单位 KB); YGC:从应用程序启动到采样时年轻代中 gc 次数; YGCT:从应用程序启动到采样时年轻代中 gc 所用时间 (s); FGC:从应用程序启动到采样时 old 代(全 gc)gc 次数; FGCT:从应用程序启动到采样时 old 代(全 gc)gc 次数; GCT:从应用程序启动到采样时 gc 用的总时间 (s)。
**jstack pid ** 线程堆栈分析工具
jmap 查看堆内存初始化配置信息以及堆内存的使用情况。 jmap -histo[:live] pid 查看堆内存中的对象数目、大小统计直方图,如果带上 live 则只统计活对象。
