参数包
参数包详解如表1所示。
param |
描述 |
输入/输出 |
类型 |
取值范围 |
默认值 |
---|---|---|---|---|---|
detect_points |
被检测的源数据点数。 |
输入 |
int |
[1 ~ ∞) |
120 |
valid_factor_default |
控制模型灵敏度的默认参数。 |
输入 |
float |
(0.0 ~ ∞) |
1.0 |
detection_window |
用于检测的滑动窗口大小。 |
输入 |
int |
[1 ~ ∞) |
5 |
slide_window |
用于检测的滑动窗口滚动步长。 |
输入 |
int |
[2 ~ 待检测盘总数] |
5 |
train_model_min |
DBSCAN算法最小半径参数。 |
输入 |
float |
(0.0 ~ ∞) |
0.3 |
log_file |
日志文件路径。 |
输入 |
String |
- |
/var/log/smartmaintainkit.log |
慢盘检测的效果主要由两个指标决定。
- 滑动窗口的宽度与步长。
被检测的所有源数据被分割成一个个滑动窗口,每个滑动窗口的值被打包成一个测试点。
- 慢盘检测的精度。
该指标由DBSCAN算法的半径决定,而该半径由valid_factor_default,train_model_min两个参数决定。
valid_factor_default是一个因子,它与每个检测点的值进行计算,最终得出DBSCAN算法的半径。valid_factor_default越大,DBSCAN算法的半径越大,慢盘检测的精度越低,反之亦然。
但是DBSCAN算法的半径必须大于0,所以需要一个最小值来控制valid_factor_default因子计算得出的DBSCAN算法的半径。
如果发现日志中出现“WARNING: Model is too low, set model with train_model_min”,则代表通过valid_factor_default最终计算出的DBSCAN算法半径,低于train_model_min值。然后则会将DBSCAN算法的半径设置为train_model_min的值。
例如对慢盘的时延精度要求较高,慢盘的时延与正常盘的时延差距较小,执行如下命令使用默认参数调用无法检测出慢盘。
slow_detect(r'slow_test.data', r'result.data')
此时可以通过降低valid_factor_default的值来达到预期的效果。
param = {'valid_factor_default': 0.5} slow_detect(r'slow_test.data', r'result.data', param)
如果发现日志中出现“WARNING: Model is too low, set model with train_model_min",则表明已经达到train_model_min最小半径下限,如需继续提高精度,则可以继续降低train_model_min参数的下限值。
param = {'valid_factor_default': 0.5, 'train_model_min': 0.1} slow_detect(r'slow_test.data', r'result.data', param)