获取所有节点信息
使用命令:
stash raftinfo
这将显示所有节点的详细信息,包括ID、地址、内存使用情况、磁盘空间使用情况、负载、角色等。
根据条件设置筛选标志
Stash支持多种筛选标志,可以根据需要组合多个条件。
内存使用
-apply:限制应用内存使用量。-gc:限制Golang垃圾回收内存使用。
磁盘空间
-data:限制数据目录的磁盘使用量。-wal:限制写附录目录的磁盘使用量。-temp:限制临时目录的磁盘使用量。
负载
-load:限制每秒应用的操作次数(QPS)。
网络带宽
-bw:限制网络带宽使用。
角色
-role:筛选特定角色,如主节点、备用节点或临时节点。
时间
-since:筛选自某个时间点开始的节点信息。-until:筛选到某个时间点结束的节点信息。
性能
-qps:筛选高QPS的节点。-latency:筛选低延迟的节点。
组合筛选条件
使用逻辑与(-and)和逻辑或(-or)来组合多个条件。
stash raftinfo -and "-apply=100M" "-data=50G"
这将筛选出内存使用不超过100MB且数据目录磁盘使用不超过50GB的节点。
执行筛选命令
结合以上条件执行筛选:
stash raftinfo -and "-apply=100M" -gc -data=50G -load=100
这将筛选出内存使用不超过100MB、Golang垃圾回收内存正常、数据目录磁盘不超过50GB且负载不超过100的节点。
处理输出结果
根据需要设置输出格式:
stash raftinfo -and "-apply=100M" -output json
这将以JSON格式输出符合条件的节点信息。
分批处理(可选)
如果节点数量过多,可以分批处理:
for i in $(seq 1 100); do stash raftinfo -and "-apply=100M" -output none | head -n $((50*$i)) > filtered_nodes_$i.txt; done
这样可以将结果分成多个文件处理。
示例
筛选内存使用低于100MB且磁盘空间充足的主节点:
stash raftinfo -and "-apply=100M" -role=main -data=+infinity
筛选负载低于100且网络带宽充足的备用节点:
stash raftinfo -and "-load=100" -bw=+infinity -role=raft
通过以上步骤,你可以根据具体需求筛选出符合条件的Stash节点。









