Docker 单机:多实例多应用(即每个实例一个应用)单实例多应用 是否造成性能浪费

2018-08-28 17:45:02 +08:00
 icekingcy

我这边描述的情景是,例如我有 3 个应用的 DB1、DB2、DB3,若是 3 个应用的 DB 都跑一个 Mysql 实例(举例)

那么会开启 3 个 Mysql 实例,这样比开启 1 个实例将 3 个 DB 都放在同一个实例中 会浪费更多的性能资源啊?

诸如此类的还有 Apache HTTP Server、Nginx 等,是否可以直接单实例载入不同的配置文件从而避免多实例造成的性能资源开销?

3803 次点击
所在节点    问与答
9 条回复
EXE
2018-08-28 17:57:51 +08:00
docker 的优点之一就是可以快速创建多个实例
linuxchild
2018-08-28 18:12:48 +08:00
其实从业务角度来讲,支持分开的;
至于性能,开启多个肯定资源要占用的多,但是这东西真的会影响到你么?
业务量大了再考虑优化吧
Judoon
2018-08-28 18:27:55 +08:00
没看懂,第一种是指开三个容器,每个容器中各跑一个 mysql ?第二种是指开一个容器中起三个 mysql 进程?

原则上一个容器跑一个程序比较好
icekingcy
2018-08-28 18:52:37 +08:00
@EXE 优势知晓的,我的疑虑是对性能的开销


@linuxchild 比如说现在有 10 个独立静态 Web 项目。每个项目分配一个 Apache 镜像的容器,即有 10 个,非常便于独立开发、管理。另外一种方案是 一个 Apache 容器,通过载入 Vhosts 配置文件,里面配置了 10 个目录。 这样的一个场景岂不是浪费了很多的资源吗? 此处的 10 个独立静态项目只是举例哈~


@Judoon 第一种你的理解是对的。第二种就是传统的方式,相当于只跑一个 Mysql 容器,但是一个 Mysql 里面可以建立多个数据库呀,这样相当于一个 Mysql 实例里运行的是 3 个数据库。不知我讲明白否?
Judoon
2018-08-28 19:39:23 +08:00
@icekingcy 如果是这样的话,我觉得你的两种方案没什么可比性啊。取决于业务方对这三个库隔离性的要求。没要求当然一个实例里建多个库好了。
meowoo
2018-08-28 22:02:51 +08:00
个人觉得单实例单应用比较好

最简单的就是,一个挂了不会影响别人
xenme
2018-08-28 22:05:40 +08:00
docker 主要就是分离,快速部署。
如果三个跑一起,那还要 docker 干嘛?

如果性能开销是主要考虑因素,要 docker 干嘛?
0312birdzhang
2018-08-28 22:34:58 +08:00
LXC 了解一下,虽然现在的 docker 不用 lxc 了,原理差不多
linuxchild
2018-08-31 17:18:48 +08:00
@icekingcy 浪费资源就浪费吧;这个实际上应该不算主要的考虑因素,hhha

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/484030

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX