linux内核修改电流,内核调教指南(CPU调速器以及I/O调速器模式说明)

CPU调速器

ondemand

【按需模式】

官方及xray内核默认为此项调节模式,顾名思义,按需调节cpu频率,不操作手机的时候控制在最低频率,滑屏或进入应用后会迅速提升至最高频率,当空闲时迅速降低频率,性能较稳定,但因频率变化幅度过大,省电方面只有一般的水平。

powersave

【省电模式】

按设定最低频率运行,日常没有使用价值,除非配合setcpu情景模式,关屏睡眠时使用此调节模式。正如其名字一样,很省电,因为它的作用就是把频率锁定在设定范围的最小值,负载再高也不升高频率。

userspace

【用户隔离】

严格来说它并不是一个模式,是允许非内核进程控制cpu频率的设置,现在已经不需要它了,setcpu官方的建议是,“不要使用此选项”。这个调速器不包含任何CPU变化规则,所以全靠自己设定,不推荐。

为防止沉帖,更多内容还是设置一下回复可见把。

wheatey

较新的一款调速器,它的规则和Ondemand一样,但是响应速度稍慢,比Ondemand省电。

conservative

【保守模式】

和ondemand模式的调频设定类似,不过有操作时提升cpu频率的速度较慢,空闲时迅速降频,所以名字叫保守模式,性能较低,省电程度略好于ondemand,总体不推荐。很常见的调速器,规则是“慢升快降”,注重省电,当有高需求时逐渐提高频率,当低需求迅速跳至低频率。

hotplug

ray没有此模式,多核机型上可用,在不需要的时候关闭多余核心,其他部分调节方式与ondemand相同,当有高需求时直接跳到最高频率,当需求见效时逐级降低频率。interactive

【交互模式】

相对于保守模式,这个模式算是高性能版的ondemand,开始操作手机后,频率升至最高,可以带来更好的响应速度,空闲时缓慢降至设定最低频率。电量自然也是要多费一点。规则和Conservation相反,是“快升慢降”,注重响应速度(性能),当有高需求时迅速跳到高频率,当低需求时逐渐降低频率。

interactivex

交互模式的修改优化版,开屏后进入更好的频率管理方式,比交互模式略省电。

userspace

【用户隔离】

严格来说它并不是一个模式,是允许非内核进程控制cpu频率的设置,现在已经不需要它了,setcpu官方的建议是,“不要使用此选项”。这个调速器不包含任何CPU变化规则,所以全靠自己设定,不推荐。

smartass

【智能调节模式】

相当于是一个预置的profile,交互模式的另一个修改版,更加省电。根据资源使用智能提供一个适中的频率,空闲时自动降频,锁屏时自动固定频率。特色是锁屏后非常省电。缺点是部分机型锁屏一段时间后容易睡死。

smartassv2

【智能调节模式v2】

aire内核默认,smartass的升级版,最近很流行的模式。能利用cpu设定的所有频率值。算是对cpu利用充分的条件下最省电的一个模式。同系列的优缺点依旧存在。SmartassV2会使频率趋近与某一特定的值,使CPU频率大部分维持在这一特定值附近。同时SmartassV2在屏幕开启和关闭时有不同的特定值,以达到省电的目的。

lazy

很少用的调速器,对于频率上升和下降的响应都很迟缓,可以忽略掉部分迅速变化的频率变化,优点是省电。smoothass

介绍是比smartass“更有活力的渐进式频率调节”,没用过不太清楚。

brazilianwax

与smoothass相同的模式。

savagedzen

基于smartass的另一模式,在耗电和性能间取得更佳的均衡点。

Lulzactive

较新的一款调速器,根据负载逐级升高或降低频率,每一级频率有一个限制值,负载高于限制值就提高一级频率,低于限制值就降低一级频率。所以这个调速器在各个频率上的停留时间都很短。这个调速器的特点是在各个频率之间频繁变动,但是运行于最高和最低频的时间最多。

minmax

保守模式的优化配置版,耗电略高于smartassv2,性能较好。规则很简单,要么最高要么最低。

scary

基于保守模式,同时具有smartass的特点。看介绍是很奇怪的一个模式,有人说不错,不过自己没有试过。

lagfree

【无延迟模式】

基本基于保守模式的频率调节机制,频率上升缓慢,不同之处在于唤醒屏幕后会直接跳跃到一个合适的频率,减少亮起以后的延迟现象。但日常使用性能不高。简单的描述就是不紧不慢型,无论负载变化快慢与否,CPU都按一定的停顿时间逐级升高或降低频率。

intellidemand

【智能按需调节模式】

这个模式有点意思,可根据GPU使用情况来针对性调节cpu频率,GPU负载高时,比如运行游戏和测试的时候,cpu频率会迅速升至最高,这时的调节模式类似于ondemand;当GPU空闲时则会自动限制cpu最高频率,更加省电。要游戏性能好,又要省电的可以用下试试。

pregasusq

源自三星猎户座处理器的一个调速器,可以单独调控单个CPU内核,理论上性能不错也很省电。

在此推荐一下CPU调速器

注重性能的玩家:Ondemand,Interactive,Minmax,Hotplug

注重性能和电量平衡的玩家:SmartassV2,Lulzactive,Pegasusq

注重电量的玩家:Conservative,Wheatley

I/O调度模式(内存调速器)

i/o即input/output的缩写,关于数据的读写操作,不同进程请求数据的优先顺序等等。

noop

这个调度模式会把所有的数据请求直接合并到一个简单的队列里。不适合有机械结构的存储器,因为没有优化顺序,会增加额外的寻道时间。属于最简单的一个调度模式,无视io操作优先级和复杂性,执行完一个再执行一个,如果读写操作繁多的话,就会造成效率降低。

anticipatory

其实这个有点类似于pc硬盘的NCQ功能,执行有预测性的调度,看起来似乎可以提高效率,不过因为它的预测机制会在进程将要结束一个读写操作时时开始准备下一个的预处理,所以会打乱系统正常的连续io调度,降低随机存取效率。用的人很少,不推荐。

deadline

顾名思义,用过期时间来排序io操作顺序,保证先出现的io请求有最短的延迟时间,相对于写操作,给读操作更优先的级别。是比较好的一个调度模式。

cfq

完全公平队列,是anticipatory模式的替代品,没有过多的做预测性调度,而是根据给定的进程io优先级,直接来分配操作的顺序。这个模式在linux上表现良好,但也许并不是最适合android的io调度模式,太强调均衡,而降低了连续读写数据的性能。

vr

具有和deadline相似的操作排序机制,有着最高的峰值读写速度,但是性能比较不稳定,也就是说可能跑出最高的分数,但是也会出现最低值。

sio

虽然基于deadline,但是它和noop一样,不会对io操作进行排序,所以有着noop那样快速的存取速度,但并没有过多优化io操作。如果不喜欢noop完全不参与调度,也可以选择这个。

row

顾名思义ROW=Read over write

(这个调度器的解释可以总结为:最大限制减少IO响应时间,并且重排执行操作,直接进行读写操作,给予IO最高优先值。在移动设备中,它将不会在桌面上有尽可能多的并行线程。通常它是一个单一的线程或最多2个同时工作的线程读写。有利于阅读的请求通过写入读取的延迟大大降低。比deadline好用,但是如果线程过多有可能会带来瞬间卡顿)

总体而言,推荐指数依次为sio=deadline(两种趋向,一种少干预,一种多干预)>vr(性能可以达到最高峰值)>cfq=noop>anticipatory

cpu内核调度模式! deadline指的不不超越

内核bfq 、cfq、 noop、 dealine的任务调度区别

任务调度有两种相对的极端,一种是重视并提高前台任务性能,

相对的就是前后台任务均衡调度,这五种调度策略跟两个极端关系是这样:

提高前台任务性能-noop-sio-deadline-cfq-bfq

noop最强调前台性能,bfq最强调前后台性能的均衡,

这里的五个调度策略其实是i/o的调度策略!

noop是最简单的i/o调度策略,本质上就是先来先服务,意思就是哪个进程先请求i/o系统就先为哪个进程服务,有最好的连续存取性能(具体原因下面讲),

bfq会均衡考虑各进程i/o请求的任务量,适当调整完成i/o请求的顺序(也就是说服务顺序和请求顺序不一样),保进程在最短时间内能得到i/o响应(但不保证每

次响应都能完成),也就是有最好的随机存取,延时低。

noop不考虑i/o请求的任务量(通俗点说就是不考虑读写的文件是大还是小),按照i/o请求的顺序依次进行服务。这种策略在pc上的执行过程中主要有两个问题,

第一个是i/o请求任务量很大(要读写的某个文件很大)造成其他i/o请求长期得不到响应,第二个是相邻两次的i/o请求涉及的文件在磁盘上的物理位置较远造成处理这i/o请求时磁头需要频繁移动导致性能严重降低。

第一个应该很好理解,i/o任务量不管大小依次排队,当处理到一个很大的任务时,系统将一直处理下去,后面的请求就得不到响应了,

第二个问题举个例子,有4个相邻的i/o请求分别涉及1、2、3、4这四个文件,

而1、2、3、4分别位于磁盘的内圈、外圈、内圈、外圈,也是说处理这4个请求时磁盘上的磁头必须先移到内圈,

然后移到外圈,接着移到内圈再移到外圈,如此反复导致大量的时间用于移动磁头造成性能降低。

反过来看手机,一般手机上的i/o任务都不会很大,很少有需要连续读几百M甚至更大文件的情况,即便要读通常也是正在玩游戏需要读数据文件(我相信手机上不会有一边上网聊qq,手机后台还有个程序需要连续读几百M文件的情况),这时用户通常希望系统尽快把文件读完从而继续玩游戏。

由于noop在处理大任务时会使后续的i/o请求得不到响应,因此具有较好的连续性能,这个特点正好满足了上面这种用户的求。

关于上面说的第二个问题,由于手机上用的是闪存芯片,也就不存在磁头移动的问题,像其他策略那样考虑磁头的移动问题对于采用闪存芯片的存储介质完全是浪费,所以对于随机性能很好的闪存芯片来说noop是最好的i/o调度策略。

下面看bfq,bfq指的是budgetfair queuing,从名字上就能看出来这个策略对于各i/o请求是公平的(fair),不会有上面说的noop的第一种问题。

这里指的公平就是尽量使各进程的i/o请求都能得到尽快响应不会长期搁置,但因为系统资源有限,所以只能保证尽快响应但不保证可以尽快完成。

不难看出bfq适合多进程同时发出多i/o请求的状况,因为它不会像noop那样无视后续的i/o请求。直观的看就是手机程序开的很多时系统还能对各进程有不错的响应速度,

这就是为什么bfq适合多进程,可以均衡协调前后台任务性能的原因。bfq实际上是cfq的改进!

充电电流

系统调整设置为boeffla tweaks才有效。

在设备允许(5V2A充电器+LG神线等)的情况下,建议AC充电电流在1A-1.5A,即1000mA—1500mA之间。氢测试不了息屏充电电流,如有疑问,请默认为0=stock逻辑。

GPU

笔者不玩游戏,GPU直接放到了最大330,最小27。

这里的调节器对照CPU调节器看即可。

热插拔zzmove据说很好用,楼主没有什么特别大的感觉。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值