linux中的热感知调度程序
目前我正在为我的大学项目制作一个温度敏感的linux版本。现在我必须创建一个温度感知调度程序,它可以考虑处理器温度并执行一些调度。是否有任何通用的方法来获取处理器内核的温度,或者我是否可以以任何方式将coretemp驱动程序与linux内核集成(我在互联网上没有找到这样做的方法)。lm sensors仅使用内核导出的一些设备文件来计算CPU温度,您可以读取这些设备文件在内核中作为备份变量的任何内容,以获取温度信息。对于调度器,我不会从头开始编写,而是从内核CFS实现开始,在您的情况下,修改负载平衡器检查以包括温度(目前它使用一个指标,即根据缓存问题等将任务从一个核心移动到另一个核心的计算成本。我不确定您是否希望保留此指标).温度控制非常困难。困难在于温度和电导。读取温度非常容易。如何控制温度取决于系统模型。a或更高阶的过滤器会很有帮助。你不知道linux中的热感知调度程序,linux,linux-kernel,scheduling,scheduler,Linux,Linux Kernel,Scheduling,Scheduler,目前我正在为我的大学项目制作一个温度敏感的linux版本。现在我必须创建一个温度感知调度程序,它可以考虑处理器温度并执行一些调度。是否有任何通用的方法来获取处理器内核的温度,或者我是否可以以任何方式将coretemp驱动程序与linux内核集成(我在互联网上没有找到这样做的方法)。lm sensors仅使用内核导出的一些设备文件来计算CPU温度,您可以读取这些设备文件在内核中作为备份变量的任何内容,以获取温度信息。对于调度器,我不会从头开始编写,而是从内核CFS实现开始,在您的情况下,修改负载平
CPU
本身进行测量,硬盘驱动器可能在10分钟前过热,但热量现在才到达CPU。在这种情况下,对CPU
进行节流是没有帮助的。只有获得系统的良好热模型才能控制热量。然而,您说您没有真正控制热量我知道这个系统吗?我不知道调度器本身是如何做到这一点的
我曾开发过移动式冷冻柜应用程序,在该应用程序中,操作员将冰激凌等托盘从冷冻柜装载到卡车上。传感器和控制元件之间的距离非常小,可能会对控制系统造成严重破坏。此外,如果可能,您希望立即读取环境温度。存在大量滞后ode>在温度控制中。一小段距离可能会使读数延迟5-15分钟(即,热量传递1厘米需要5-15分钟)
我看不出你的建议有什么用处。如果你想把它用于个人电脑,那么视频卡、硬盘驱动器、电源、声卡等可以产生与CPU一样多的热量。你不能一般地为个人电脑建模;也许你可以用苹果产品建模。我认为你不会取得很多成功,但你会从尝试中学到很多东西!Do你是说每个内核的温度?还取决于你是想在用户空间还是内核空间这样做。是的,要求是尝试在多核系统中使用它,如果这是你的意思,则在内核中使用调度程序(对不起,我对这一计算领域很陌生)我认为您的项目可以在不修改内核的情况下完成,前提是您愿意牺牲直接进程和IO调度来设置好的值和设置最大处理器频率。您可能有兴趣了解cpufreqd并将其修改以考虑温度。谢谢,我将研究负载平衡()
方法更接近于此,我同意您使用一些实际存储温度值的变量,而不是需要单独安装的lm传感器。但是,到目前为止,我无法找到它,除了一些热文件位于/sys/class/thermal/
check/sys/devices下/platform/coretemp.#/temp1_input
我忘了sysfs在内核中的支持位置,我手头没有代码可供检查。是的,我可以从那里获得值,这比使用单独的应用程序要好得多,谢谢!如果您发现sysfs在内核中的支持位置,请告诉我。