轻量级实时容器 ECS
本节介绍翼辉任务关键型云原生技术体系中的轻量级实时容器 ECS,以及 ECS 与 Docker 在功能和性能方面的对比情况。
什么是 ECS
ECS(Edge Container Stack)是翼辉面向 “任务关键型云原生架构” 推出的系列产品之一,ECS 技术栈包含了多种翼辉自主创新研发的边缘容器技术,其中 ECS 实时容器是基于翼辉成熟的实时操作系统 SylixOS 打造的新一代轻量级实时容器技术。
ECS 实时容器面向任务关键型软硬件和边缘计算领域,其充分考虑了普通容器技术在这些领域应用场景中存在的众多问题(如实时性不足、资源消耗过于沉重、镜像过大、开发难度大、安全性不足等),它继承了 SylixOS 卓越的硬实时性和强大的跨平台基因,支持丰富的 CPU 体系结构和处理器,容器内的应用程序可使用 SylixOS 全部的应用编程 API 和 POSIX API,过去的 SylixOS 应用程序无须修改即可运行在容器内,极大降低了用户迁移成本。同时将 VSOA 组件导入应用程序容器内,可立即实现应用程序微服务化。
ECS 功能特性
- 强大跨平台基因,支持丰富的处理器
- 卓越的硬实时性和性能
- 保证环境一致性、易于移植
- 极其轻量,无系统驻留
- 资源隔离与限制能力,提供配额管理,高安全可靠
- 便于开发阶段极速部署
- 兼容 OCI 镜像和运行时标准,接近 Docker 使用习惯
关于 ECS 功能特性的详细介绍请参见 ECS 实时容器。
ECS 对比 Docker
下面从功能和性能维度对 ECS 和 开源方案常见的 Docker 容器进行对比。
对比环境:
i5-10505 CPU@3.20GHz 32GB 内存的物理主机。
功能对比
对比项 | ECS | Docker |
---|---|---|
标准规范 | OCI | OCI |
VSOA API | 支持 | 不支持 |
容器引擎兼容 Docker 运行时 | 支持 | - |
容器引擎 ECSD 支持的操作系统 | Linux、SylixOS、EdgerOS | Linux |
实现机制 | 深度集成 | 应用软件 |
支持的处理器架构 | ARM、ARM64、x86、x86-64、RISC-V64、RISC-V32、LoongArch、MIPS32、MIPS64、PowerPC、SPARC、C-SKY | ARM、ARM64、x86、x86-64、MIPS32、MIPS64、PowerPC |
说明:
- OCI 即 Open Container Initiative。
- ECS 所使用的 ECSD 引擎支持对 Docker 进行管理。
性能对比
- 资源占用情况
对比项 | ECS | Docker |
---|---|---|
容器引擎安装磁盘空间 | 1 MB | ≥ 400 MB |
容器引擎内存消耗 | 6 MB | ≥ 100 MB |
- 启动切换时间
对比项 | ECS | Docker |
---|---|---|
启动时间 | 49.3 ms | 秒级 |
切换时间 | 0.771 us | 毫秒级 |
- 实时性能影响
轻量级实时容器 ECS 基于对 SylixOS 深度改造实现,以下是系统接口在 ECS 容器内与原生系统的最大耗时对比情况:
对比项 | ECS 容器内 | 原生系统 |
---|---|---|
消息发送接口耗时(消息长度64 Byte) | 0.80 us | 0.55 us |
消息接收接口耗时(消息长度64 Byte) | 0.92 us | 0.32 us |
二进制信号量等待接口耗时 | 3.38 us | 1.57 us |
二进制信号量释放接口耗时 | 4.92 us | 1.63 us |
计数型信号量释放接口耗时 | 3.56 us | 1.53 us |
计数型信号量等待接口耗时 | 3.72 us | 3.35 us |
互斥信号量释放接口耗时 | 4.78 us | 4.08 us |
互斥信号量等待接口耗时 | 3.63 us | 1.42 us |
读写信号量释放接口耗时 | 4.42 us | 1.36 us |
读写信号量等待接口耗时 | 5.88 us | 1.54 us |
任务恢复接口耗时 | 6.32 us | 6.09 us |
任务挂起接口耗时 | 9.67 us | 8.85 us |
内存分配接口耗时 1024 Byte | 6.60 us | 2.01 us |
内存分配接口耗时 2048 Byte | 6.83 us | 2.14 us |
内存分配接口耗时 1024 KByte | 105.47 us | 75.28 us |
时间获取接口耗时 | 3.77 us | 2.88 us |