openEuler预言
openEuler特性
- 融进了中科院软件所贡献的 RISC-V 新指令集架构支持
- 内核的多核扩展性能力大大增强,提升了 CPU 多核的并行度,性能提升 20%
- 采用轻量级虚拟化引擎 StratoVirt,一套架构支持虚机、安全容器、Serverless 三种场景,单虚机启动时间小于 50ms
- 可通过Preempt_RT内核补丁支持实时系统
- 进程调度优化:优化进程负载均衡算法,减少负载均衡过程中的开销,提升性能
- 内核动态抢占:新增启动选 preempt=none/voluntary/full,允许内核动态切换抢占模式
- mremap 性能优化:通过移动 PMD/PUD 级别的表项,加速映射大块内存的速
- TLB 并发刷新支持:本地 TLB 和远端 TLB 刷新并行,优化 TLB shootdown 流程加速 TLB 刷新,提升业务性能
- 大页 vmalloc 性能优化:对于超过 huge page 的最小 size 的空间进行 vmalloc() 分配时,将会尝试使用 huge
page 而不是 base page 来映射内存,改善 TLB 的利用,降低 TLB miss - SVA(Shared Virtual Addressing)支持:进程虚拟地址在主机进程和设备间共享,实现资源跨主机与设备免拷
贝复用,提升跨主机和设备业务通讯性能 - XDP(eXpress Data Path)支持:基于 ebpf 的一种高性能、用户可编程的网络数据包传输路径,在网络报文还未
进入网络协议栈之前就对数据进行处理,提升网络性能。可用于 DDOS 防御、防火墙、网络 QOS 等场景 - OOM 内存回收算法:在发生 OOM 时,优先对低优先级的进程组进行内存回收,保障在线业务的正常运行
- 支持 PAC (Pointer Authentication Code)特性:在使用寄存器的值作为指针访问数据或代码之前验证其内容,抵
御 ROP/JOP 攻击 - 内存可靠性分级技术:通过对不同可靠性等级的内存分级管理,可以支持内核、关键进程、内存文件系统、文件缓
存使用高可靠内存,避免内存多 bit 故障引起内核复位 - 动态大页技术:支持对大页进行拆分和合并的功能,从而使得绑定到 memcg 的进程可以使用 1G/2M/4K 三种页。
当大页资源不足时,可以动态配置大页资源,避免系统重启,减少业务中断时间 - 内存 RAS 容错增强:支持 copy_from_user 读操作时,发生内存多 bit 错误,系统不复位。可以通过杀掉受影响
的进程,而避免内核复位 - per memcg lru lock:采用 per memcg lru_lock,减少云原生容器实例锁竞争,提升系统性能
- 大页内存管理优化:通过共享映射方式将 HugeTLB 管理页中无实际作用的 tail 页释放掉,降低大页内存管理结构的
开销 - 内存分级扩展: 内存分级扩展通过 DRAM 和低速内存介质,如 SCM、AEP,以及 RDMA 远端内存等形成多级内存,通过内存自动调度
让热数据在 DRAM 高速内存区中运行,让冷数据交换到低速内存区,从而增加内存容量,保证核心业务高效平稳运行。 - 友好桌面环境 UKUI
安装方式
服务器安装要求
安装 openEuler 22.03-LTS 所需的最小硬件要求如下所示
部件名称 | 最小硬件要求 |
---|---|
CPU | 鲲鹏 920(架构为AArch64)x86-64(Skylake以上) |
内存 | 不小于8GB |
硬盘 | 不小于120GB |
通过USB盘安装
-
下载openEuler 22.03 LTS镜像,进入https://repo.openeuler.org/openEuler-22.03-LTS/ISO/x86_64/下载以下文件
- openEuler-22.03-LTS-x86_64-dvd.iso
- openEuler-22.03-LTS-x86_64-dvd.iso.sha256sum
-
使用sha256sum命令校验iso文件的完整性
sha256sum openEuler-22.03-LTS-x86_64-dvd.iso cat openEuler-22.03-LTS-x86_64-dvd.iso.sha256sum //对比哈希值是否相同
- 1
- 2
-
使用UltraISO软件制作镜像,建议使用版本uiso9_cn版本进行制作,插入U盘,格式化U盘后,打开软件
打开镜像文件
依次点击启动->写入硬盘映像
-
启动盘制作完成后,进入U盘,打开isolinux/isolinux.cfg文件, 将openEuler-22.03-LTS-x86_64替换成openEluler-2(启动盘制作完成后的盘名称)
-
修改完成后,插入服务器,重启服务器,按F2进入BIOS,然后设置U盘优先启动,保存退出
-
进入安装引导界面,按e键进入编辑页面,将 vmlinuz initrd=initrd.imginst.stage2=hd:LABEL=… quiet 改为:vmlinuz initrd=initrd.img inst.stage2=hd:/dev/sdb4 quiet,然后按下F10键保存进入安装界面,如下图所示:
-
进入安装图像界面后,按照官网文档操作即可,https://docs.openeuler.org/zh/docs/22.03_LTS/docs/Installation/%E5%AE%89%E8%A3%85%E6%8C%87%E5%AF%BC.html 注意:
1:软件选择时,选择服务器,选中所有软件,安装即可。
2: 网络和主机名中选择默认网络,配置IP及其它信息。
-
系统安装完成, 拔出U盘
网络配置
cd /etc/sysconfig/network-scripts目录,打开ifcfg-eth0网络配置文件,添加或者修改信息,按照如下配置进行修改
TYPE="Ethernet"
DEVICE="eth0"
UUID="6ed6a6f2-8538-42fc-9a00-7cedb666c49c"
ONBOOT="yes"
BOOTPROTO="static"
IPADDR="10.156.4.234"
NETMASK="255.255.255.0"
GATEWAY="10.156.4.254"
IPV6INIT="yes"
DNS1="10.151.6.6"
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
修改完成后,一次执行如下命令
nmcli c reload
nmcli d connect eth0
- 1
- 2
安装UKUI图像界面
UKUI是麒麟软件团队历经多年打造的一款Linux 桌面,主要基于 GTK 和 QT开发。与其它UI界面相比,UKUI更加注重易用性和敏捷度,各元件相依性小,可以不依赖其它套件而独自运行,给用户带来亲切和高效的使用体验。
- 首先执行
sudo dnf update
- 1
- 然后执行
sudo dnf install ukui
- 1
- 最后以图形界面启动配置, 重启系统,之后就可以看到界面。
systemctl set-default graphical.target
- 1
实时系统
openEuler 22.03 LTS 版本新增了 Preempt_RT 内核实时补丁,提供软实时特性。该特性由 Industrial-Control SIG 引入,并得到 Kernel SIG、Embedded SIG 和 Yocto SIG 配合与支持,已经被集成到openEuler 22.03 LTS Server 和 openEuler 22.03 LTS Embedded 中
当前 Preempt_RT 主要特性
- 临界区可抢占
- 中断处理程序可抢占
- 关中断代码序列可抢占
- 带有优先级继承机制的内核自旋锁和信号量
- 线程化处理 RCU
- 降低延迟措施
部署方法
二进制部署
二进制部署可以安装 openEuler 22.03 LTS 官方源中 rpm 包,需要 root 权限,命令如下:
#yum install kernel-rt
- 1
完成安装后重启设备,在 GRUB 引导界面选择 Preempt_RT 内核openEuler (5.10.0-60.18.0.rt62.52.oe2203.aarch64) 22.03 LTS
即可。启动后查看内核,即完成 openEuler 22.03 LTS Preempt_RT 二进制部署。
#uname -r
5.10.0-60.18.0.rt62.52.oe2203.aarch64
- 1
- 2
实时性能测试
- 测试环境
版本名称 | 来源 |
---|---|
openEuler 22.03 LTS kernel 内核 | openEuler 22.03 LTS 官方源 |
openEuler 22.03 LTS kernel-rt 内核 | openEuler 22.03 LTS 官方源 |
- 测试硬件环境
硬件型号 | 硬件配置信息 | 备注 |
---|---|---|
飞腾 D2000 | CPU:8 核 内存:8GB 存储设备:SSD | 台式机 |
树莓派 4B | CPU:Cortex-A72 * 4 内存:8GB 存储设备:SanDisk Ultra 16GB micro SD | 开发板 |
飞腾 2000 | CPU:4 核 内存:16GB 存储设备:SSD | 台式机 |
- 测试软件
测试软件 | 功能 | 软件版本 |
---|---|---|
rt-test(cyclictest) | 通过 cyclictest 工具,每项测试 1000 万次,输出平均延迟(Avg)和最大延迟(MAX) | 1.00 |
stress | 压力测试工具,用于模拟测试 CPU 负载,内存负载,IO 负载等 | 1.0.4 |
iperf3 | 网络测试工具,用于模拟测试网络负载 | 3.6 |
memtester | 内存测试工具,用于模拟测试内存负载 | 4.5.1 |
shell 脚本 | 用于轮询测试,测试信息的收集整理 | — |
- 测试结果
平台 | CPU 负载 | 内存负载 | IO 负载 | 网卡负载 |
---|---|---|---|---|
飞腾 D2000(非 RT 内核) | 5.2 | 43.1 | 212.8 | 2.7 |
树莓派 4B(非 RT 内核) | 0.8 | 2.7 | 1.0 | 0.7 |
飞腾 2000(非 RT 内核) | 0.8 | 18 | 26.8 | 1.9 |
飞腾 D2000(RT 内核) | 1.0 | 19.2 | 26.2 | 20.6 |
树莓派 4B(RT 内核) | 0.9 | 1.2 | 4.2 | 1.0 |
飞腾 2000(RT 内核) | 1.0 | 2.2 | 4.5 | 1.7 |
由上表可知,在有负载的情况下,RT内核实时性较为稳定(值越小越稳定)
FAQ
安装时,其它问题FAQ, 可参考官网FAQ说明,FAQ网址:
https://docs.openeuler.org/zh/docs/22.03_LTS/docs/Installation/FAQ.html