赞
踩
之前遇到过功耗问题,朝着CPU工作频率方向思考,发现功耗过高的原因:
为了性能让程序跑在大核上
以下为查看、设置cpu动态工作频率的命令:
查看cpu0的当前工作频率:
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq
查看cpu0的最大工作频率:
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq
查看cpu0的最小工作频率:
cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq
查看cpu0可以支持的工作频率:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies
查看cpu0当前设置的工作频率值:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
查看cpu0当前最大可达到的工作频率值:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
查看cpu0当前最小可达到的工作频率值:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
查看cpu0调节工作频率可用的变频策略:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors
工作频率可用的策略有以下几种:
- conservative
- ondemand //按计算量任务快速动态调整CPU频率在设定的最低频率与最高频率之间切换
- userspace //用户自定义模式(用户态应用通过相应接口决策cpu工作频率)
- powersave //节能模式,以cpu当前可达到的最低频率进行工作
- performance //性能模式,以cpu当前可达到的最高频率进行工作
- schedutil
手动设置频率
echo "userspace" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
echo (cpu可选的工作频率) > /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed
查看设定是否生效:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
以上仅仅是尝试分析功耗问题时,手动设置cpu工作频率的相关命令;
若要深入理解,应当学习“Linux 的cpufreq子系统”;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。