基于 hypervisor 的 Docker 运行时 runq

Apache-2.0
Google Go 查看源码»
跨平台
2018-07-11
李三石

runq 是一个基于 hypervisor 的 Docker 运行时,基于 runc 在轻量级的 KVM/Qemu 虚拟机上运行普通的 Docker 镜像。旨在解决实际的问题,而不是堆叠功能。

功能特性

  • 设计简约,代码量少

  • 没有对现有的 Docker 工具进行修改 (dockerd, containerd, runc...)

  • runq 容器和普通的 runc 容器可共存

  • 在 Docker 之外没有额外的状态(没有 libvirt,没有更改 /var/run/...)

  • 简单的 init 守护进程,没有 systemd,没有 busybox

  • 不需要自定义访客内核或自定义 qemu

  • 可在  x86_64 和 s390x 上运行

runc vs. runq

       runc container                   runq container
       +-------------------------+      +-------------------------+
       |                         |      | +---------------------+ |
       |                         |      | |                  VM | |
       |                         |      | |                     | |
       |                         |      | |                     | |
       |       application       |      | |     application     | |
       |                         |      | |                     | |
       |                         |      | |                     | |
       |                         |      | +---------------------+ |
       |                         |      | |     guest kernel    | |
       |                         |      | +---------------------+ |
       |                         |      |           qemu          |
       +-------------------------+      +-------------------------+
 ----------------------------------------------------------------------
                                host kernel
的码云指数为
超过 的项目
加载中
请先登录后再评论。

暂无资讯

暂无问答

浅析State-Thread

State-Thread(以下简称st),是一个由C语言编写的小巧、简洁却高效的开源协程库。这个库基于单线程运作、不强制占用用户线程,给予了开发者最大程度的轻量级和较低的侵入性。本篇文章中,网...

2019/07/09 15:06
7
0
Go 调度模型

G P M 模型 定义于src/runtime/runtime2.go: G: Gourtines, 每个Goroutine对应一个G结构体,G保存Goroutine的运行堆栈,即并发任务状态。G并非执行体,每个G需要绑定到P才能被调度执行。 P:...

2018/07/31 13:52
202
0
第三章 Goroutine调度策略(16)

本文是《Go语言调度器源代码情景分析》系列的第16篇,也是第三章《Goroutine调度策略》的第1小节。 在调度器概述一节我们提到过,所谓的goroutine调度,是指程序代码按照一定的算法在适当的时...

2019/04/10 10:10
9
0
State Threads 回调终结者

(感谢网友 @我的上铺叫路遥 投稿) 上回写了篇《一个“蝇量级”C语言协程库》,推荐了一下Protothreads,通过coroutine模拟了用户级别的multi-threading模型,虽然本身足够“轻”,杜绝了系...

2015/01/08 23:20
585
0
性能测试-服务端瓶颈分析思路

概述 性能测试中,对服务端的指标监控也是很重要的一个环节。通过对各项服务器性能指标的监控分析,可以定位到性能瓶颈。 后端性能指标有CPU,内存,网络,I/O等等 分析思路 整体系统CPU利用...

2019/07/30 06:05
10
0
goroutine 相关知识7

go channel 与 java 等价操作 Go中如何实现协程 GMP 模型 Go 调度器模型与演化过程 // 声明channel变量 var syncChan = make(chan int) // 无缓冲channel,主要用于两个Goroutine之间建立同步...

2019/03/12 16:44
94
0
State Threads

历史渊源 首先介绍一下这个库的历史渊源,从代码贡献者来看,ST不是个人作品,而是有着雄厚的商业支持和应用背景,比如服务器领域,在这里你可以看到ST曾作为Apache的多核应用模块发布。其诞...

2016/09/26 09:19
117
0
使用etop查看系统中进程信息

Erlang提供了丰富的开发工具,你认为没有的时候,很可能是你不知道它存在. 在OS中,我们经常查看操作系统的进程信息,帮助我们进行诊断。 Erlang提供了一个小工具 etop (Erlang top), 用来查...

2011/11/23 14:09
306
0
也谈goroutine调度器

Go语言在2016年再次拿下TIBOE年度编程语言称号,这充分证明了Go语言这几年在全世界范围内的受欢迎程度。如果要对世界范围内的gopher发起一次“你究竟喜欢Go的哪一点”的调查,我相信很多Gop...

2018/07/30 20:32
65
0
Linux记录-CPU指标介绍

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。而监控CPU的性能一般包括以下3点:运行队列、CPU使用率和上下文切换。 对于每一个CPU来说运行队列最好不要超过3...

2019/02/28 18:27
14
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部