You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PI控制器磁盘I/O负载调控问题:超调后无法回落至目标值

PI控制器调控磁盘I/O压力的异常问题

我正在用Python实现PI控制器以调控系统磁盘I/O压力,已编写负载生成代码,但遇到控制器行为异常:当磁盘I/O压力达到目标占比(如85%)时会出现小幅超调(如升至90%),且超调后压力保持恒定,无法回落至目标值。尝试过读写文件两种负载生成方式,问题依旧。

负载生成代码

def generate_load(self, sleep_time):
    current_stress = self.controller.getDisk()
    target_stress = (self.controller.getDiskTarget())*100
    stress_difference = (target_stress) - current_stress

    target_size = int(stress_difference * 1024 * 1024)  # 将压力差值转换为字节
    interval = time.time() + self.period - sleep_time
    

    while time.time() < interval:
        #print("target",target_size)
        with open("sample.txt", "wb") as f:
            f.write(b"\0" * target_size)

        try:
            os.remove("sample.txt")
        except OSError:
            pass

        #time.sleep(self.period / 10)  # 根据间隔影响调整睡眠时间

time.sleep(sleep_time)  # 控制器执行

磁盘I/O统计代码

def getDiskUage(self):
    p_io = psutil.Process()
    io_counters = p_io.io_counters()
    disk_usage_process = io_counters[2] + io_counters[3] # 读取字节数 + 写入字节数
    disk_io_counter = psutil.disk_io_counters()
    disk_total = disk_io_counter[2] + disk_io_counter[3] # 读取字节数 + 写入字节数
    usage = math.ceil(disk_usage_process/disk_total * 1000)
    return usage

内容的提问来源于stack exchange,提问作者Ab Danyia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:47:34