openeuler22.03实时系统安装及部署
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 //对比哈希值是否相同
使用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"
修改完成后,一次执行如下命令
nmcli c reload
nmcli d connect eth0
安装UKUI图像界面
UKUI是麒麟软件团队历经多年打造的一款Linux 桌面,主要基于 GTK 和 QT开发。与其它UI界面相比,UKUI更加注重易用性和敏捷度,各元件相依性小,可以不依赖其它套件而独自运行,给用户带来亲切和高效的使用体验。
- 首先执行
sudo dnf update
- 然后执行
sudo dnf install ukui
- 最后以图形界面启动配置, 重启系统,之后就可以看到界面。
systemctl set-default graphical.target
实时系统
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
完成安装后重启设备,在 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
实时性能测试
- 测试环境
版本名称 | 来源 |
---|---|
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
openeuler22.03实时系统安装及部署相关推荐
- openEuler22.03安装zabbix4.0
以下教程为openEuler22.03安装zabbix4.0,主要原因是openEuler官方和zabbix官方提供的提供的软件源中没有相关软件,因此需要使用zabbix源码进行编译,并且安装过程中会 ...
- Netdata---Linux系统性能实时监控平台部署记录
通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况.下面就介绍下一款Linux性能实时监测工具-Netdata,它是Linux系统实时性能监测工具 ...
- (转!)Netdata---Linux系统性能实时监控平台部署
我一直以为人是慢慢变老的,其实不是,人其实是一瞬间变老的. -------村上春树<舞!舞!舞!> 转自https://www.cnblogs.com/kevingrace/p/73001 ...
- inotify-tools-3.14+rsync3.1.3实时同步安装部署
服务版本说明 服务 版本号 备注 rsync rsync-3.1.3 inotify-tools inotify-tools-3.14 部署环境 系统环境:centos7.6 主机名:yhcs_1.y ...
- netdata mysql_Netdata---Linux系统性能实时监控平台部署记录
通常来说,作为一个Linux的SA,很有必要掌握一个专门的系统监控工具,以便能随时了解系统资源的占用情况.下面就介绍下一款Linux性能实时监测工具-Netdata,它是Linux系统实时性能监测工具 ...
- 树莓派4BUbuntu server 20.04 Kubernetes-v1.17.x- Docker19.03 keadmv1.10.3部署错误一览
树莓派4BUbuntu server 20.04 keadmv1.10.3加入主节点报错 execute keadm command failed: failed to exec 'bash -c ...
- 国产操作系统openEuler22.03配置yum源
作者:IT圈黎俊杰 本文选用的操作系统版本是openEuler22.03-LTS.openEuler是指操作系统的品牌英文名,中文名叫"欧拉":22.03是指版本号(openEul ...
- 欧拉系统安装与部署NextCloud与常见部署问题解决以及数据盘迁移
欧拉系统部署NextCloud与常见部署问题解决以及数据盘迁移 一.欧拉系统安装 二.openEuler安装图形界面Ukui 三.yum安装的npm包进行本地保存设置(个人任务需要) 四.部署next ...
- 循序渐进丨在openEuler 20.03操作系统上安装部署MogDB 2.1.1数据库
关于MogDB MogDB是云和恩墨基于openGauss开源数据库的内核进行研发,推出的一款安稳易用的企业级关系型数据库,具备金融级高可用和全密态计算的极致安全.面向多核处理器的极致性能.AI自诊断 ...
最新文章
- 打印不同对象的字节表示 ( 对int*强制转换成unsigned char*的理解 )
- php星期_高手指点PHP星期几获取方法
- (SpringMVC)RestFul和Controller
- Java基本sql_常用sql
- 服务器怎么把信息发送给用户,java中怎么用tcp/ip将服务器的消息发送给多个用户...
- python调用matlab环境配置、非常详细!!!_[python][matlab]使用python调用matlab程序
- linux cmake编译安装mysql_Linux源码安装MySQL 5.6.12 (Cmake编译)
- python做excel表格教程视频_基于Python实现excel表格读写
- Dubbo 新增本地 IDE 插件,快速创建样例工程
- 计算鞍点(信息学奥赛一本通-T1122)
- 自动化测试之--参数化
- flask response Content-Type
- Python——装饰器(二)
- 5G 是时候商用了?| 程序员硬核评测
- delphi 联合体_校园动态 | 西安市碑林区大学南路小学“名校+”教育联合体召开“合木论坛”...
- Android MTP 模式 驱动无法安装解决方案
- 从10个经典工业设计案例,来看什么是工业设计
- P1024 [NOIP2001 提高组] 一元三次方程求解
- C语言学习知识总结————第一节课
- 拼多多or云集微店,社交电商分轨而驰