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