github.com/kubewharf/katalyst-core@v0.5.3/pkg/config/agent/qrm/io_plugin.go (about)

     1  /*
     2  Copyright 2022 The Katalyst Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  
    17  package qrm
    18  
    19  type IOQRMPluginConfig struct {
    20  	// PolicyName is used to switch between several strategies
    21  	PolicyName string
    22  
    23  	WritebackThrottlingOption
    24  	IOCostOption
    25  	IOWeightOption
    26  }
    27  
    28  type WritebackThrottlingOption struct {
    29  	EnableSettingWBT bool
    30  	WBTValueHDD      int
    31  	WBTValueSSD      int
    32  	WBTValueNVME     int
    33  }
    34  
    35  type IOCostOption struct {
    36  	EnableSettingIOCost   bool
    37  	IOCostQoSConfigFile   string
    38  	IOCostModelConfigFile string
    39  }
    40  
    41  type IOWeightOption struct {
    42  	EnableSettingIOWeight         bool
    43  	IOWeightQoSLevelConfigFile    string
    44  	IOWeightCgroupLevelConfigFile string
    45  }
    46  
    47  func NewIOQRMPluginConfig() *IOQRMPluginConfig {
    48  	return &IOQRMPluginConfig{}
    49  }