谷粒商城-高级-45 性能监控-jvisualvm 的使用

一、jvisualvm

Jdk的两个小工具 jconsole、jvisualvm(升级版的 jconsole);通过命令行启动,可监控本地和远程应用。远程应用需要配置。

jvisualvm 能干什么?

监控内存泄漏,跟踪垃圾回收,执行时内存、CPU分析、线程分析...

测试

Mac系统自带了工具,只需运行该命令即可:

jvisualvm

file

线程监视名词解释:

  • 运行:正在运行的
  • 休眠:sleep
  • 等待:wait
  • 驻留:线程池里面的空闲线程
  • 监视:阻塞的线程,正在等待锁

安装插件方便查看gc:

  • 启动 jvisualvm
  • 工具-》插件
    file

可用插件-》更新插件
file

如果报 503 错误提示,则需要更改源:

  • 打开网址 https://visualvm.github.io/pluginscenters.html
  • cmd 查看自己的jdk版本,找到对应的 visualVM
    ➜  ~ java -version
    java version "1.8.0_221"
    Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

    我的Java版本号是:1.8.0_221,小版本号是 221, 那木就应该用对应区间的版本,即 131-231区间。
    file

插件中心就用这个地址:

https://visualvm.github.io/uc/8u131/updates.xml.gz

更改设置中心的路径:
file

压测项目

Nginx服务是在虚拟机的docker上部署的,如何查看其性能呢?执行下面的命令就可以看到docker内存占用和CPU使用情况了。

docker status

file

Jmeter

打开Jmeter添加一个用户组:
file

设置线程属性:
file

在线程组添加取样器Http请求:
file

然后设置测试的HTTP相关参数,并开启线程组的监听器:
file

然后观察虚拟机中Nginx的统计情况:
file

我们可以看到 Nginx的CPU使用率非常高,占到了 90%。

然后再看我们的监听器的汇总报告:
file

聚合报告:
file

聚合报告满足符合正态分布。

为者常成,行者常至