CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 10932|回复: 11

关于CB的负载总是很高的解释!觉得卡的同学也可以看一下!

[复制链接]
发表于 2013-7-8 15:44:08 | 显示全部楼层 |阅读模式
本帖最后由 fy0 于 2013-7-8 15:46 编辑

可能大家已经注意到,cb的负载总是非常高,无论是PHP探针,还是登陆进去之后用htop等查看,都能得到相同的结论。

这是因为自动变频引起的。当没啥事的时候,CPU频率就会维持在很低的水准。

我们可以通过一个工具来查看和调整cpu频率:
sudo apt-get install cpufrequtils
sudo cpufreq-info

fy > cpufreq-info                                                   
...
maximum transition latency: 2.00 ms.
  hardware limits: 60.0 MHz - 1.01 GHz
...
current CPU frequency is 204 MHz.
...

关于cpufrequtils这一套工具,我就不多说了。可以看看这篇文章:
http://blog.csdn.net/share_idea/article/details/7548037

利用这套工具可以查看CPU信息、调整频率、设定性能方案、超频等等。

===========================================

除此之外,可能有人注意到板子上执行一些实时性要求较高的程序比较卡,例如VIM。

我调查了一下,认为这个与动态变频有关。
板子上默认的linaro或者是android镜像,动态变频时最低频率设定为60Mhz。
而我使用的 cubian 更为极端,最低频率为 30 Mhz。

变频的延迟导致了卡顿的问题,这一点在低频率下启动一个稍大的程序时较为明显。
vim非常常用,所以比较突出,我第一时间注意到了。在PageUp PageDown还有上下滚动时候都能轻松复现。

附上一组我的环境数据:
tmux 开四个子窗口,里头的terminal是zsh
其中两个窗口开启vim,一个运行非常简单的python-tornado server,另一个闲置。

此时卡顿十分明显,将变频的最低频率调整为200Mhz时,问题得以解决。

希望cubie团队重视一下,究竟是内核算法问题,还是涉及到硬件问题?
同时也希望遇到与我有相同困扰的同学得以解决问题。




评分

参与人数 1威望 +5 金钱 +5 贡献 +5 收起 理由
cubieplayer + 5 + 5 + 5 很给力!

查看全部评分

回复

使用道具 举报

发表于 2013-7-8 16:52:27 | 显示全部楼层
这种问题很难定位,下版cubian修掉这个问题
回复 支持 反对

使用道具 举报

发表于 2013-7-8 18:03:57 | 显示全部楼层
果断,顶一个。。。。
回复 支持 反对

使用道具 举报

发表于 2013-7-8 23:44:30 | 显示全部楼层
本帖最后由 Cannikin 于 2013-7-9 08:53 编辑

关于频率的卡顿可以这样解决    我的是针对自己环境的设置,从搭建到现在几个月了,一直很稳定流畅。

nano /etc/rc.local     #编辑rc.local文件 将下面的命令添加在 "exit 0" 前面即可

echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

echo 600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

echo 25 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor
echo 1 > /sys/devices/system/cpu/cpufreq/ondemand/io_is_busy
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-9 01:35:47 | 显示全部楼层
Cannikin 发表于 2013-7-8 23:44
关于频率的卡顿可以这样解决

nano /etc/rc.local     #编辑rc.local文件 将下面的命令添加在 "exit 0" 前 ...

这一组参数太疯狂了。

# 每次变频的最小值是 600 Mhz ,默认值是60Mhz
echo 600000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq

# 当CPU负载为25%时进行升频!默认值为95%!
echo 25 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold

# 降速采样系数为10,例如默认2秒检测一次频率和负载并升频,那么要至少20秒才可能降到原频率
echo 10 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor


还有一个参数我不清楚其确切效果。假设这个参数不能参与作用,那么这一组参数依然可能存在2秒的卡顿,这是采样率决定的。





下面这一组是对我而言够用的参数:

echo 140000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq  # 默认值 60000

echo 85 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold # 默认值 95

echo 1000000 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_rate  # 默认值 2000000

echo 2 > /sys/devices/system/cpu/cpufreq/ondemand/sampling_down_factor # 默认值 1


不管怎么说 问题姑且解决了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-9 01:36:35 | 显示全部楼层
cubieplayer 发表于 2013-7-8 16:52
这种问题很难定位,下版cubian修掉这个问题

调了一组参数 可以参考一下
回复 支持 反对

使用道具 举报

发表于 2013-7-9 08:16:31 | 显示全部楼层
每句话代码都翻的这么清楚,省了我很多查资料时间
回复 支持 反对

使用道具 举报

发表于 2013-7-9 08:50:24 | 显示全部楼层
Cannikin 发表于 2013-7-8 23:44
关于频率的卡顿可以这样解决

nano /etc/rc.local     #编辑rc.local文件 将下面的命令添加在 "exit 0" 前 ...

大神膜拜一下~
回复 支持 反对

使用道具 举报

发表于 2013-7-9 08:50:55 | 显示全部楼层
fy0 发表于 2013-7-9 01:35
这一组参数太疯狂了。

# 每次变频的最小值是 600 Mhz ,默认值是60Mhz

我的是针对自己环境的设置,从搭建到现在几个月了,一直很稳定流畅。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-7-9 13:52:09 | 显示全部楼层
本帖最后由 fy0 于 2015-11-17 20:43 编辑
Cannikin 发表于 2013-7-9 08:50
我的是针对自己环境的设置,从搭建到现在几个月了,一直很稳定流畅。

这参数略极端,我不建议用。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-5-20 20:01 , Processed in 0.027111 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部