工具准备
虚拟机
chaosblade chaosblde
jar包,启动的时候添加打印gc的日志,java -jar -XX:+PrintGCDetails -XX:+PrintGCTimeStamps spring.demo.jar >temp.txt &
安装chaosblade
cd /opt
wget https://github.com/chaosblade-io/chaosblade/releases/download/v1.7.1/chaosblade-1.7.1-linux-amd64.tar.gz
tar -zxvf chaosblade-1.7.1-linux-amd64.tar.gz
故障能力参数介绍
Flags:
--effect-count string total count of full gc actions 受影响请求数
-h, --help help for full-gc
--interval string Interval between full gc actions full-gc间隔(毫秒)
--javaHome string Specify the JAVA_HOME variable to loading jre lib jdk位置
--pid string The process id 进程id
--process string Application process name 进程名称
--refresh Uninstall java agent and reload it
--timeout string set timeout for experiment in seconds 故障运行时长(秒)
注入故障
./blade prepare jvm --process spring.demo.jar --javaHome /usr/java/jdk
./blade c jvm fgc --effect-count 100 --interval 1000 --timeout 300 --process springboot.jar --javaHome /usr/java/jdk
./blade destroy uid #销毁实验
./blade revoke uid #卸载agent
如何验证实验
日志里面出现full-gc的日志
其他
完成实验记得销毁故障!!!别在生产环境试验