首页 > 系统相关 >Android Linux EAS优化-schedtune

Android Linux EAS优化-schedtune

时间:2024-08-17 13:04:43浏览次数:8  
标签:stune prefer 调度 CPU idle schedtune Android EAS

SchedTune

SchedTune是一项与CPU调频相关的性能提升技术,它实现为一个cgroup控制器。

这个控制器提供了一个名称为schedtune.boost的配置参数,运行时系统可以使用它来更改该组中的进程的调度方式。

每当调整这个参数的时候,它会使受影响的进程看起来比实际更重(或更轻)。如果一个组被提升了25%,那么调度程序将期望它使用的CPU时间比它实际上要多25%,并且CPU频率调控器将相应地对处理器提速。因此,以这种方式“提升”进程不会影响其调度优先级,但会影响其最终运行的CPU的速度。

SchedTune扩展仅适用于负载较轻的系统。当系统饱和时,SchedTune应当自动禁用。

Pixel XL上/vendor/etc/init/init.rc文件中的相关配置如下:

# set default schedTune value for foreground/top-app (only affects EAS)
write /dev/stune/foreground/schedtune.prefer_idle 1
write /dev/stune/top-app/schedtune.boost 10
write /dev/stune/top-app/schedtune.prefer_idle 1
write /dev/stune/rt/schedtune.boost 30
write /dev/stune/rt/schedtune.prefer_idle 1
  • /dev/stune/: 某些系统中用于替代 /sys/fs/cgroup/schedtune/ 的路径。

可以看到,这里为rttop-app两个进程组设置了处理器提速。

schedtune提供了一套用户接口的工具,用于功耗-性能调节。schedtune是cgroup的一个子系统。所以在cgroup的mount节点下,stune分别为每个group,都提供了2个调节开关:

  • schedtune.boost

boost的值用int型表示,范围为[0, 100]。
boost默认值为0,代表CFS调度器会工作在能耗最低的状态。这也意味着schedutil使task跑在最低的OPP。
boost值100,则表示调度器为工作在性能最高的状态,同时OPP也处在最大。
0-100的范围可以根据其他场景来进行适当调节。比如,优化交互的响应、电池电量变化等

  • schedtune.prefer_idle

这是一个控制调度器节省功耗优先,还是性能优先的flag。
默认值0,会让CFS调度器根据energy-aware wakeup策略来分配在group中的task。(功耗优先)
当值设为1,会让CFS调度器分配task时,有最小的wakeup延迟。(性能优先)
android平台下使用这个flag用来表示正在和用户交互的应用。
设为1的节点:
dev/stune/foreground/schedtune.prefer_idle
dev/stune/top-app/schedtune.prefer_idle
设为0节点:
dev/stune/background/schedtune.prefer_idle
dev/stune/rt/schedtune.prefer_idle
schedtune.prefer_idle是一个标志位,它向调度器指示用户空间希望调度器更关注功耗或者更关注性能。当这个值设为1,表示希望调度器尽可能减少改组中进程唤醒延迟(倾向于性能)

  1. boost

    • 说明:控制任务的性能增强级别,通常是一个百分比值,用于增加任务的负载。该参数决定了调度器在选择 CPU 频率时应考虑的额外负载,从而影响任务的执行速度和响应时间。
    • 范围:通常为 -100100,其中 0 表示没有提升,负值表示减少负载,正值表示增加负载。
  2. prefer_idle

    • 说明:决定任务是否更倾向于在空闲 CPU 上执行。如果设置为 1,则调度器将尝试将任务调度到空闲的 CPU 上,以减少任务在同一 CPU 上竞争资源的情况,从而降低延迟。
    • 范围01
  3. prefer_high_cap

    • 说明:用于指定调度器是否优先选择具有较高计算能力的 CPU。这对任务的执行效率有重要影响,尤其是对计算密集型任务来说。
    • 范围01
  4. prefer_idle_hint

    • 说明:用于提示调度器任务可能在短时间内进入空闲状态。如果启用,调度器可能会为这些任务选择更合适的 CPU,以提高整体系统的能效。
    • 范围01
  5. spreading

    • 说明:决定任务在多个 CPU 上的分布程度。如果启用,调度器将尝试将任务均匀分布在多个 CPU 上,以防止某些 CPU 过载。
    • 范围:通常为 01
  6. sync_flag

    • 说明:用于调整同步任务的调度行为。同步任务往往要求快速响应,因此调度器会考虑给这些任务分配更多的 CPU 资源。
    • 范围01
  7. margin

    • 说明:控制任务的边际性能需求。这个参数通常用于调整任务在满足最低性能要求时所需的额外 CPU 资源,以确保任务可以在合理的时间范围内完成。
    • 范围:具体值依赖于系统配置。
  8. group

    • 说明:将任务分组,以便应用相同的 schedtune 参数设置。这对于管理一组具有相似性能需求的任务非常有用。
    • 范围:具体取值依赖于系统配置。
  9. idle_exit_boost

    • 说明:用于在 CPU 退出空闲状态时对调度器进行增强,以提高响应速度。
    • 范围:通常为 01

这些参数可以通过调节来优化系统的性能和功耗,尤其是在 Android 设备中,以提供更好的用户体验和电池寿命。

标签:stune,prefer,调度,CPU,idle,schedtune,Android,EAS
From: https://www.cnblogs.com/linhaostudy/p/18364252

相关文章

  • Cisco NX-OS Software Release 10.5(1)F - 网络操作系统软件
    CiscoNX-OSSoftwareRelease10.5(1)F-网络操作系统软件NX-OS网络操作系统请访问原文链接:https://sysin.org/blog/cisco-nx-os-10/,查看最新版。原创作品,转载请保留出处。CiscoNX-OSCiscoNX-OS操作系统助力网络紧跟业务发展步伐。功能和优势NX-OS网络操作系统为现代......
  • easy-es:java: 程序包org.dromara.easyes.core.core不存在
    问题描述:运行easy-es官网的springboot集成demo时报错:java:程序包org.dromara.easyes.core.core不存在问题分析:Ctrl+鼠标左键进入org.dromara.easyes.core下,查找发现BaseEsMapper在org.dromara.easyes.core.kernel目录下,而非org.dromara.easyes.core.core下解决方法......
  • 腾讯地图SDK Android版开发 3 显示定位
    地图SDKAndroid版开发3显示定位前言概念定位数据定位模式定位样式类显示定位地图包相关类和接口TencentMapLocationSourceLocationSource.OnLocationChangedListener示例代码模拟定位显示效果图获取定位定位包相关类和接口TencentLocationManagerTencentLocationRe......
  • 腾讯地图SDK Android版开发 5 地图交互操作
    腾讯地图SDKAndroid版开发5地图交互操作前言控件介绍控件介绍接口控件常量地图控件点击事件示例代码效果图地图手势地图手势方法说明地图手势开关地图手势事件当地图被点击时回调接口当地图被长按时回调接口地图手势识别的回调地图状态地图状态类地图状态构造类地......
  • 基于flask+vue框架的基于Android的大学校园车辆管理系统统后[开题+论文+程序]-计算机
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着大学校园规模的不断扩大与师生数量的激增,校园内的车辆管理问题日益凸显。传统的人工管理方式不仅效率低下,难以满足高峰时段的车辆进出......
  • 智慧社区新视界:EasyCVR视频汇聚平台下的数字化治理实践
    在当今科技飞速发展的时代,“数字城市智慧社区”这个概念正逐渐走进我们的生活。那么,数字城市智慧社区到底是什么样子的呢?随着城市化的不断推进,数字城市建设已成为提升城市管理效率、改善居民生活质量的重要手段。智慧社区作为数字城市建设的重要组成部分,正逐步融入各种高科技手段......
  • EasyCVR视频汇聚平台构建远程安防监控:5大亮点解析,助力安防无死角
    随着科技的飞速发展,远程安防监控系统已经成为现代社会中不可或缺的一部分,无论是在小区、公共场所还是工业领域,安防监控都发挥着至关重要的作用。而EasyCVR作为一款功能强大的视频监控综合管理平台,其在构建远程安防监控系统方面展现出了诸多显著优点。1、灵活部署与扩展性EasyCVR......
  • EasyCVR视频汇聚平台:打造全栈视频监控系统的基石,解锁可视化管理与高效运维
    随着科技的飞速发展,视频监控已成为现代社会不可或缺的一部分,广泛应用于社区、公共场所、工业领域等多个场景。EasyCVR视频汇聚平台,作为一款高性能的视频汇聚管理平台,凭借其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。本文将深入探讨EasyCVR视频......
  • 将Android手机的屏幕投屏到macos系统上
    技术分享点: 将Android手机的屏幕投屏到macos上 先安装scrcpy: 1.在macos终端安装scrcpy brewinstallscrcpy---在macos上执行 若macos上没有adb、则需要安装 brewinstallandroid-platform-tools 进行相关配置 WIFI使用: 1.确保PC和手机在同一Wifi中 ......
  • 【GiraKoo】Android Studio替换gradle中的JCenter源
    由于JCenter关闭,一些陈旧的库需要替换Jcenter源。在C://users/xxxx/.gradle/init.gradle(如果没有,需自行创建)中更新以下内容。allprojects{repositories{defALIYUN_REPOSITORY_URL='https://maven.aliyun.com/repository/public'defALIYUN_JCENTER_U......