1
mingl0280 2023-06-03 08:13:31 +08:00 via Android
加内存
|
2
urnoob 2023-06-03 08:16:34 +08:00 via Android
十有八九是 node 那边漏了,加多大都没有 。
|
6
makelove 2023-06-03 08:57:12 +08:00
我的 node 配置
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so /usr/bin/node --max_old_space_size=512 -max_semi_space_size=4 main.js |
7
makelove 2023-06-03 08:59:53 +08:00
另外我的 node 程序发现内存会慢慢涨上去,可能一个月后就超过新启动时不少,不知道是 node 本身问题还是我用的第三方库问题,我的办法是在程序里定时监控 process.memoryUsage(),如果一直超过 10 次就自杀,利用 systemd 本身的机制立刻自启。
|
8
kaneg 2023-06-03 09:04:21 +08:00 via iPhone
1G 的机器跑这么多应用,内存满了很正常。如果不想增加物理内存,又对程序速度不敏感,那就增加 swap ,增加几倍,是成本最低的一种方法。
|
9
slove OP @makelove 我的问题和你差不多,刚刚准备增加 swap 分区,用 swapoff -a 关闭,机器登陆不了,只能重启了,等运行一段时间,再查看是哪个程序占用在增加
|
10
slove OP @kaneg 就像 2 楼说的,如果有个程序占用一直增加,加多大都没用啊,现在接受 4 楼建议,过一段时间,设置个定时重启
|
11
infun 2023-06-03 09:54:03 +08:00
crontab -e # 注意选 VIM
0 4 * * * /usr/sbin/reboot 我自己的机器都这样搞 |
13
slove OP |
14
webshe11 2023-06-03 11:10:49 +08:00
再搞个 zram 作为 swap
|
15
northbrunv 2023-06-03 14:17:22 +08:00
最简单的办法,加内存。swap 是用硬盘当内存,性能很差的。
|
16
northbrunv 2023-06-03 14:19:51 +08:00
内存是内存。硬盘是硬盘。swap 只是内存价格昂贵时代遗留下的产物。
现在内存价格便宜的爆炸,80 块就能买到 8g 的 ddr4 内存。 同时 vps 厂商的大内存机器价格也很便宜了。 |
17
blankmiss 2023-06-03 14:21:37 +08:00
这种问题还要问什么 不管是 swap 还是 zram 难道你虚拟内存 比直接内存好用吗 直接升配置不比这些操作来的简单,来的性能好,当然如果是因为穷 那当我没说
|
18
systemcall 2023-06-03 15:32:28 +08:00 via Android
可以试试用 zram ,策略激进点,你这个场景应该可以节省不少内存。牺牲性能、吃 CPU ,但是比 swap 到磁盘快
swap 好像也可以先压缩后再放硬盘上,没试过。主机是什么配置? CPU 和硬盘是什么呢? 很多办法都可以限制单个进程最大的 CPU 使用。还有就是你觉得卡死了,可能只是因为一直在反复地把页面从内存和 swap 之间搬来搬去,你可以试试写个程序来监控和达到一个阈值来重启对应的服务,不要等满了再重启就好 |
19
systemcall 2023-06-03 15:35:53 +08:00 via Android
|
20
northbrunv 2023-06-03 16:39:29 +08:00
@systemcall 一个月多花 5 块钱能解决的东西,为什么要浪费时间调来调去?
|
21
dianso 2023-06-03 18:56:28 +08:00
我的 2C2G 换了 2C4G 现在 2C8G
每次升级多几块钱而已 |