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

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

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