又开了台 digital ocean 的 1 核 1g 小鸡,docker 只运行了 2 个容器实例,内存就用了 87%……
tomcat 里跑了一个 java 应用,jvm 是真的吃内存……
以后尽量用 go 写东西了,应该能节省不少的服务器资源
1
elfive 2019-06-15 10:48:14 +08:00 via iPhone
go 和 java 都耗资源…
|
3
wzw 2019-06-15 10:59:20 +08:00 via iPhone
我都还没用上 docker ……
|
4
my101du 2019-06-15 11:04:34 +08:00 2
我在 8G 内存的 macOS 上对比 docker 和 VirtualBox:
1. docker 服务自身 + 限制分配 1G 给几个小的 php 应用。内存里查看进程 com.docker.hyper 总共占用 1.6G 左右 2. 开一个 VirtualBox, 再分配一个 CentOS7 虚拟机 768M 内存,内存里查看几个进程合计 800M+200M = 1G 左右 但是很奇怪的是,再对比 全部系统内存剩余情况 运行 docker 时,系统剩余 1.5G 内存 运行 VirtualBox 时, 系统剩余 900M 内存 我不懂 docker 内部的机制。 但是感觉 docker 的内存占用数据,很可能把和系统共享的那部分也算进去了,实际上并不会占用那么多,只有跑的容器才“真正”占用 而 VirtualBox 分配的虚拟机,是实实在在时刻霸占着资源的。 所以你这个情况,主要是 MySQL 和 Java 服务消耗资源大,和 docker 本身关系不大吧。。。 |
5
dreasky 2019-06-15 11:04:43 +08:00
docker 说这锅不是我的,linux 内存占用 87%很正常,加个 swapfile 就可以了
|
7
miniliuke 2019-06-15 11:07:51 +08:00 via Android
你这 mysql 就占了 40%,java 占了 25%,这是 mysql 的锅啊
|
8
abcbuzhiming 2019-06-15 11:10:55 +08:00 1
这关 docker 什么事情,docker 还能有中变没降低内存消耗不成?拿 1G 内存,即跑 JVM 又跑 MySQL 我也是醉了,你当心你的 MySQL 因为内存 crash
|
9
xiaolanger 2019-06-15 11:14:53 +08:00
1G 内存,我是能不跑 MySQL 就不跑了
|
11
skiy 2019-06-15 11:21:15 +08:00
自从在美团云上用 docker 把硬盘挂掉之后,就不敢再在 1G 的小鸡上玩 docker 了。
|
12
yixiang 2019-06-15 11:31:21 +08:00
默默看了看手里 256M 内存的 vps。内存跑满没啥问题,内存就是拿来用的,长期闲置的内存长期浪费钱。
|
13
realpg 2019-06-15 12:47:23 +08:00
@xiaolanger #9
只要一个小小的参数 就可以 256M RAM 流畅跑轻度负载 mysql 服务器 |
14
ctro15547 2019-06-15 13:12:08 +08:00 1
my-small.cnf ,mysql 好像有这个配置适合在少内存的机器上跑,可以取舍一下
|
15
niubee1 2019-06-15 13:16:27 +08:00
你要节约资源的话, 还是用 C++写东西吧
|
16
roychan 2019-06-15 13:29:48 +08:00
mysql 的 performance 模式关掉就可以了
|
17
rawidn 2019-06-15 13:31:07 +08:00 via iPhone
@my101du mac 下的 docker 不是原生的,是内部起了一个轻量的虚拟机,所以看着内存占用比较大。linux 下 docker 服务本身的内存占用几乎可以忽略
|
18
barbery 2019-06-15 13:34:09 +08:00
显然是 JVM 的事情,说 go 耗资源的,我也想知道怎么得出来的结论???
|
19
Nasei 2019-06-15 13:41:02 +08:00 via Android
@my101du 你可以在虚拟机里再装 docker 看看,mac 上的 docker 包括 win 上的 linux 容器都是虚拟机,只有 linux docker 和 win10 的 windows 容器是原生的
|
20
shm7 2019-06-15 13:54:43 +08:00 via iPhone 1
这玩意给你用 ss 的 你搞个 jvm
|
21
hoyixi 2019-06-15 14:26:37 +08:00
1G,这机器你直接跑且单独跑 Java 都够呛,Java 是“贵”族,写 Java 掌控 Java 的也是“贵”族
要不 PHP 咋那么受中小企业欢迎呢 |
22
1073850525 2019-06-15 14:40:20 +08:00 1
jvm 可是试试 openj9,比 openjvm 省资源
我也是 1G 1 核 ,跑 nginx 和 两个 tomcat 和 mysql |
24
my101du 2019-06-15 15:21:35 +08:00
|
25
gavinjou818 2019-06-15 16:19:31 +08:00
我也试过用 2G 的阿里来玩 DOCKER,但是无奈后面也直接放弃了。。实在太卡了。。基本开了几个镜像也没什么内存了。
|
26
version 2019-06-15 16:59:31 +08:00 via iPhone
docker 起码要最低配置 8 核 16g 吧,硬盘 ssd 买大一点,k8s 起码要买 10 台服务器吧,如果不是手写脚本更新重启,省资源机器,压测还更稳定,不见得 docker 和 k8s 出问题好解决
|
27
spadger 2019-06-15 17:26:44 +08:00
我 256M 内存的机器,连 bundle install 命令都跑不起来...
|
28
qfdk 2019-06-15 18:51:37 +08:00 via iPhone
说下方法给你吧 开个 swap 就好了 1G 内存跑了 n 个容器 加上 lnmp 和 Spring 全家桶 pay.qfdk.me 就是上面的
|
29
wspsxing 2019-06-15 19:04:11 +08:00 via Android
java 适合大项目+好机器
|
30
wee911 2019-06-15 19:23:30 +08:00
跟 docker 没关系,java 就这么吃内存
|
31
swulling 2019-06-15 19:27:03 +08:00 via iPhone
@my101du Mac 上的 Docker 是跑在虚机里的 Linux 上的。和 Linux 下的 Docker 完全不是一回事
|
32
uptime 2019-06-15 19:31:36 +08:00
我 64M 小内存跑一个 55+跑一个论坛,找谁说呢?
|
33
1010543618 2019-06-15 19:54:13 +08:00
我的 512 内存的开 docker 跑东西内存不够一跑过一会就停,检查了半天发现内存的问题,然后开了 swap 就好了
|
34
chwech 2019-06-15 20:47:06 +08:00 via iPhone
我开了个 nginx,mysql 和 wordpress 容器,然后 mysql 就不够内存了。开了交换文件才能用。然后我的服务器一直 cpu 100%是怎么办?求支招
|
35
NextNal 2019-06-15 22:00:28 +08:00
swapfile 可用
|
36
johz 2019-06-15 22:37:35 +08:00
我的 1 核 1G 跑了 lnmp + redis 妥妥的
|
37
johz 2019-06-15 22:38:52 +08:00
十几万用户的小程序服务器端
|
38
notreami 2019-06-15 23:11:52 +08:00
难道我太前沿了,tomcat 好多年前就抛弃了,现在不是 jetty 就是 undertow。
|
39
wly19960911 2019-06-16 09:58:45 +08:00
@notreami 你太前沿了,tomcat 还没有丢,spring boot 默认使用 tomcat
|
41
wly19960911 2019-06-16 10:35:23 +08:00
@godoway spring flux 不就是这样吗。响应式+netty
|
42
Hopetree 2019-06-16 18:41:52 +08:00
我也是阿里云 1G1U,我容器运行了四个,django+mysql+redis+nginx,内存占用了 80%,刚好够用
|