https://github.com/LiuChangFreeman/docker-initless
可以在 0.4 秒启动 Spring Boot(当然,仅仅是 Hello World); 0.1 秒启动 Flask
测试硬件:2 核 4g 的云服务器,没有用 Nvme SSD ,也没有用内存盘
不需要提前分配内存,有请求要处理时才启动容器,没请求时自动关容器腾出内存
写这个项目目的是啥?
——室友被面试问倒了,抽空帮他搞定这个题顺带开源出来,目前只是个 demo
1
piaoliangkb 2021-12-08 17:11:58 +08:00
冷启动是从哪些方面优化的?
|
2
starsky007 2021-12-08 17:31:09 +08:00
@piaoliangkb
Eliminate docker cold start time by pre-start && lazy-restore mechanism |
3
ch2 OP @piaoliangkb #1 主要是两个策略:
1. 先启动一次,使用 CRIU 制作内存快照,在启动的时候直接还原回去(跟虚拟机启动优化是一个思路) 2. 约定容器的端口,提前创建好 network namespace ,不再等到请求来才临时去初始化环境(由于启动参数是提前约定好的,所以可以做预创建) |