开始实验 node_cpu_load.yaml 内容: apiVersion: chaosblade.io/v1alpha1 kind: ChaosBlade metadata: name: cpu-load 执行命令,开始实验: $ kubectl apply -f node_cpu_load.yaml 查看实验状态 执行 kubectl get blade cpu-load -o json 命令,查看实验状态 停止实验 执行命令:kubectl delete -f node_cpu_load.yaml 或者直接删除 blade 资源:kubectl delete blade cpu-load 节点网络相关场景
CLOCK_MONOTONIC-m:锁定内存,防止内存页交换到磁盘-t 8:创建8个测试线程-p 99:设置线程的优先级为99-D 12h:设置测试持续时间为12h压力测试:stress-ng -c8 --io 8 --cpu-load 100 -vm 4 --vm-bytes 512M --timeout 10000000s &参数介绍:-c 8:模拟8个CPU逻辑核心满负荷运行--io 8:模拟磁盘I/O压力--cpu-load
ken.io 这里只将Title设置为CPU-Load不做其他调整 图表面板的配置完成后,不要忘记保存仪表盘(Dashboard) ? 配置完成!
= nil { stressors += fmt.Sprintf(" --cpu-load %d", *in.CPUStressor.Load) } if in.CPUStressor.Options
= nil { stressors += fmt.Sprintf(" --cpu-load %d", *in.CPUStressor.Load)
如下所示当空载机器用stress-ng起四个进程时会均衡分布在两个NUMA上的各自两个物理core上: stress-ng --cpu 4 --cpu-load=60 使用stress-ng起少于vcpu 数量的一半进程比如stress-ng --cpu 62 --cpu-load=60,可以看到会均衡到所有物理core上 参考: https://github.com/gatieme/LDD-LinuxDeviceDrivers
完成以上配置后,开始抓trace文件 $ python systrace.py --cpu-freq --cpu-load --time=10 -o mytracefile.html 分析trace文件