楼主小土豆上跑两个 Java Netty 服务 + 邮件服务,RAM 快受不了了...... 有什么方式降低 Netty 内存占用吗?

如上图,一大串全是一个程式。求教一下 V2er,因为都知道 V2er 是万能的( xd
楼主小土豆上跑两个 Java Netty 服务 + 邮件服务,RAM 快受不了了...... 有什么方式降低 Netty 内存占用吗?

如上图,一大串全是一个程式。求教一下 V2er,因为都知道 V2er 是万能的( xd
多谢各位 V2er,目前做法是 -Xms64m 压缩一下内存使用。外加了一块 2G 的 Swap 以便备用。
1
orangeade Jan 4, 2019 via Android
dir + mipush ?
Java 就是以吃内存出名吧,要不换其他编程语言重写,对比看看? |
2
Mohanson Jan 4, 2019 via Android 别问,问就 go
|
3
chendy Jan 4, 2019
加参数限制内存使用
|
4
lihongjie0209 Jan 4, 2019
jvm 调优了解一下
|
5
jason19659 Jan 4, 2019
增加虚拟内存
|
9
Trumeet OP @lihongjie0209 吼高深哇...
|
10
dk7952638 Jan 4, 2019
十倍的性能换十倍的开发效率,java 从一开始就是在性能和开发效率之间寻找一个平衡点
|
11
lihongjie0209 Jan 4, 2019
@Trumeet 就是前面说的调整 jvm 参数, 复制粘贴就好了
|
12
Tengdw Jan 4, 2019
根据 gc 曲线调整下堆内存大小看行不
|
13
victorywangzhcn Jan 4, 2019
看看 GraalVM ,现在能直接 native 化,非常小。传送门 https://github.com/cstancu/netty-native-demo
|
14
sagaxu Jan 4, 2019 via Android Netty 会用堆外内存,所以实际占用比 Xmx 设置的高。建议开 gclog,然后尝试不同的 Xmx,观察 gc 时间间隔,选择能接受的最低间隔。
|
15
chanin Jan 4, 2019
又想简单方便,又想快速高效是不可能的,身为编程语言鄙视链条最低端的 java,需要接 RAM 受审判之眼
|
16
Greendays Jan 4, 2019
别问,问就加 RAM😂
|
17
Finest Jan 4, 2019
Java 内存这块再省也省不了多少
|
18
luosuosile Jan 4, 2019
java 是编程语言 鄙视链最低端吗??我以为 java 至少在鄙视链中游呢
|
19
XIVN1987 Jan 4, 2019
是不是 JIT 的编程语言都比较费内存啊??
|
20
sagaxu Jan 4, 2019 via Android
@XIVN1987 JIT 会额外吃掉一些,gc 也会吃掉一些,spring 那套东西再吃个几十 MB。JAVA 程序,最低 100M 起步。
|
21
auxox Jan 4, 2019
没有设置 jvm 参数,那还不是有多少内存用多少内存
|
22
passerbytiny Jan 4, 2019
请设置 JVM 参数(-Xmx),JVM 申请的是进程独占内存,如果不设置,默认情况下,按照最小 25%物理内存,最大 50%物理内存去申请,4 个 java 进程就 GG,不管你加多少内存条。
|
23
loveCoding Jan 4, 2019
-Xmx 加上堆内存限制,实际使用内存会比这个大一些,不复杂的话换 go 重写下也是可以的
|
24
pursuer Jan 4, 2019
不知道跑的什么服务,好多进程,可以整合到一个 JVM 进程里运行吗?
|
25
murmur Jan 4, 2019
@luosuosile java 就是当年的美帝国主义,人人都在喊打倒美帝但是别人还是帝国啊
|
26
misaka19000 Jan 4, 2019 via Android
用 go 重写就好了
|
27
lrh3321 Jan 4, 2019 via Android
别问,问我就回用 c++重构一下。
|
28
luozic Jan 4, 2019 via iPhone
go 快速重构一个,除非业务复杂,甚至可以上 nginx +lua 搞定。
|
29
hackerwin7 Jan 4, 2019 via iPhone
JVM CDS
|
30
huobazi Jan 4, 2019 via iPhone 换 dotnet core
|
31
fuchaofather Jan 4, 2019
可以试下用 jvm 调优, 其实我个人觉得语言差别不是很大, 差的是写代码的
|
32
byfar Jan 4, 2019
今年都没什么人推 Rust 了呢
|
33
lancelock Jan 4, 2019
你这什么字体啊?
|
34
simple2025 Jan 4, 2019
731/1.65,有没有用满,怕什么?空那么多内存做什么?
|
35
sticnarf Jan 4, 2019
LZ,你这些全是同一个进程的不同线程吧……总共占了 1.65G 的 8.9%也就是 150M 左右,这已经不能接受了吗?
|
36
Trumeet OP @lihongjie0209 好的,多谢
|
37
Trumeet OP @victorywangzhcn 这个我试过,Netty 跑不起来的(
|
39
Trumeet OP @luosuosile 是啊。。最低好歹得是拍黄片啊( xd
|
40
Trumeet OP @passerbytiny @loveCoding 多谢,我去看看
|
42
liangdu Jan 5, 2019 via Android
直接内存的默认大小为 xmx 减去一个 service,兄弟看着点调
|
43
liangdu Jan 5, 2019 via Android
减去一个 servivor 空间的大小(上面拼写错了,不好意思)
|
44
feiyuanqiu Jan 5, 2019
@lancelock #33 Operator Mono,这个字体最大的特色是它的斜体
|
45
yanaraika Jan 5, 2019 via Android
算一下内存条和你花时间重构哪个贵
|
49
realkenshinji Jan 5, 2019 via iPhone
@dk7952638 然而开发效率现在来看也不高了
|
50
KgM4gLtF0shViDH3 Jan 5, 2019 via iPhone
go 的开发效率真的不高……插入数组的方法都没有
|
51
firebroo Jan 5, 2019 via Android
不要说语言差别不大,c 艹重构一下就知道语言差别尽然这么大
|
52
dk7952638 Jan 5, 2019
@realkenshinji 这不你也知道是现在看来并不高,在当时那可是高的很。
|
53
Camile Jan 5, 2019
别问,问就 Rust
|
54
nekoyaki Jan 5, 2019
htop 默认是把统一进程的不同线程全都显示出来的,你可以在 F2 ——》 Options 里把 Hide userland process threads 钩上,看到的结果就是单纯的“进程”了。不然就容易产生理解误区。
|
56
nekoyaki Jan 5, 2019
我比较奇怪的是为什么楼上只有一个人意识到这个问题是理解误区……
|
57
zts1993 Jan 5, 2019
yuuta 最胖!
别问,问就换狗浪 |
59
sjj050121014 Jan 5, 2019
线程开那么多干嘛,浪费内存和 cpu 时间,减一半线程好过加内存
|
60
applehater Jan 6, 2019
@yanaraika 公司最近节流还真是从服务器减配开始了,真要去重构省资源来省钱。。。
|
61
yanaraika Jan 6, 2019 via Android
@applehater 工资太低 or 服务实在写的太烂
|