1、安装低延迟内核
如下图所示输入命令:
安装成功后:
2、关闭CPU变频功能(Disable CPU Frequency scaling)
首先,安装 cpufrequtils:
sudo apt-get install cpufrequtils
其次,编辑下列文件(如果不存在在,则进行创建):
sudo nano /etc/default/cpufrequtils
并在文件中添加如下一行:
GOVERNOR="performance" //意思是以最大频率运行
保存并退出即可。
为了防止重启系统后,上述设置被还原,需要进行如下操作:
sudo update-rc.d ondemand disable //ondmand是动态调控频率
出现的问题:
can not find a LSB script for ondemand
看来此命令不适用于此时的情况,试试接下来的第二句命令。
sudo /etc/init.d/cpufrequtils restart
可以检查一下频率设置的命令:
cpufreq-info
输入命令后,将显示CPU所具有的每个内核的信息。只需检查所有设置是否都处于性能模式,并以处理器的最大速度就可以了。
扩展
Linux内核支持的所有调控器:
- performance以最大频率运行CPU。
2)powersave以最小频率运行CPU。
3)userspace以用户指定的频率运行CPU。
4)ondemand根据当前负载动态缩放频率。跳到最高频率,然后可能随着空闲时间的增加而减小。 - conservative根据当前负载动态缩放频率。比按需逐步调整频率。
6)schedutil调度程序驱动的CPU频率选择
关于调控的详细介绍,可以看这个文档:
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt
3、电源管理(Power management)
首先,先查看一下自己的CPU核心数以及频率。
终端输入命令:watch grep “cpu MHz” /proc/cpuinfo
查询结果如下:可以发现CPU为12核(实际上每个核心的频率是实时在变的)
sudo vi /etc/default/grub
#在末尾添加:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_pstate=disable"
GRUB_CMDLINE_LINUX_DEFAULT="quiet processor.max_cstate=1 intel_idle.max_cstate=0 idle=poll"
sudo vi /etc/modprobe.d/blacklist.conf
#在末尾添加:(将Intel的电源管理加入黑名单)
blacklist intel_powerclamp
重启电脑
sudo reboot
接下来,安装i7z utility 去检查电脑CPU
sudo apt-get install i7z
输入
sudo i7z
下面是i7z的示例输出。CPU的频率变化不应该超过1-2赫兹,并且不应该是除C0以外的任何C状态。
由结果可以发现,此步安装成功了。
扩展:关于Vim文件编辑器中使用到的常见命令
因为多个地方用到了vim命令,所以需要花一定时间了vi编辑器的常用命令。
vi编辑器有三种状态:命令模式、末行模式、编辑模式。我们目前使用到的是编辑模式,以下是常用的命令:
命令模式切入编辑模式命令如下:
i:从光标处之前插入
I:跳到光标所在行行首插入
a:从光标之后插入
A:跳到光标所在行行末插入
o:(字母o)在光标所在行,及其下一行之间新增一空白行,光标跳到空白行行首
O:(字母O)在光标所在行,及其上一行之间新增一空白行,光标跳到空白行行首
:q :不保存已有的编辑,退出vi编辑器
:wq :保存编辑并退出
注意:
由于不同的内核/程序包冲突,不能在同一台计算机上运行OAI eNB和OAI EPC。所以,如果要搭建整个OAI仿真环境,需要两台电脑分别安装eNB和corenetwork模块进行配置仿真。搭建EPC的系统需要将更换内核,由于eNB对系统的性能要求较高,所以搭建eNB的系统需要将内核换成低延时内核(更换低延时内核在上面的步骤中已经完成)。
因为完整的OAI环境可进行的仿真模式有三种,我只需要用到eNB + UE仿真模式(主要用来验证PRACH仿真):eNB + UE两者都只用到了物理层(PHY),MAC 及以上的层都没有用到。适合用来验证和实现物理层的算法。