V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ch2
V2EX  ›  分享创造

一个带冷启动优化的单机 Serverless 框架

  •  
  •   ch2 · 2021-12-08 14:55:11 +08:00 · 2217 次点击
    这是一个创建于 1066 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://github.com/LiuChangFreeman/docker-initless
    可以在 0.4 秒启动 Spring Boot(当然,仅仅是 Hello World); 0.1 秒启动 Flask

    测试硬件:2 核 4g 的云服务器,没有用 Nvme SSD ,也没有用内存盘
    不需要提前分配内存,有请求要处理时才启动容器,没请求时自动关容器腾出内存

    写这个项目目的是啥?
    ——室友被面试问倒了,抽空帮他搞定这个题顺带开源出来,目前只是个 demo

    3 条回复    2021-12-08 18:15:38 +08:00
    piaoliangkb
        1
    piaoliangkb  
       2021-12-08 17:11:58 +08:00
    冷启动是从哪些方面优化的?
    starsky007
        2
    starsky007  
       2021-12-08 17:31:09 +08:00
    @piaoliangkb
    Eliminate docker cold start time by pre-start && lazy-restore mechanism
    ch2
        3
    ch2  
    OP
       2021-12-08 18:15:38 +08:00
    @piaoliangkb #1 主要是两个策略:
    1. 先启动一次,使用 CRIU 制作内存快照,在启动的时候直接还原回去(跟虚拟机启动优化是一个思路)
    2. 约定容器的端口,提前创建好 network namespace ,不再等到请求来才临时去初始化环境(由于启动参数是提前约定好的,所以可以做预创建)
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1028 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 19:19 · PVG 03:19 · LAX 11:19 · JFK 14:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.