参数包
参数包详解如表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的值。
例如对慢盘的时延精度要求较高,慢盘的时延与正常盘的时延差距较小,执行如下命令使用默认参数调用无法检测出慢盘。
1slow_detect(r'slow_test.data', r'result.data')
此时可以通过降低valid_factor_default的值来达到预期的效果。
1 2
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参数的下限值。
1 2
param = {'valid_factor_default': 0.5, 'train_model_min': 0.1} slow_detect(r'slow_test.data', r'result.data', param)