NobodyVe2x
V2EX  ›  Node.js

NodeJS 阿里云服务器,经常遇到整个服务器卡死,系统盘读操作被占满

  •  1
     
  •   NobodyVe2x · Jun 22, 2025 · 7146 views
    This topic created in 503 days ago, the information mentioned may be changed or developed.

    经常遇到整个服务器卡死,系统盘读操作被占满,内存确是正常

    补充一下,这个项目使用 bytenode 编译后文件在跑,不是源代码跑。

    axios 也做了统一处理

    const axios = require('axios'); const https = require('https');

    // 全局 10 秒超时 axios.defaults.timeout = 10000;

    // 创建自定义的 HTTPS 代理,限制连接数 const httpsAgent = new https.Agent({ keepAlive: true, keepAliveMsecs: 30000, maxSockets: 30, // 限制并发连接数 maxFreeSockets: 5, // 限制空闲连接数 timeout: 10000, // 连接超时 });

    // 创建 axios 实例 const apiClient = axios.create({ httpsAgent: httpsAgent, timeout: 10000, // 请求超时 maxRedirects: 3, });

    module.exports = apiClient

    有没有大佬能出出主意,到底是哪里出问题了?

    41 replies  •  2025-07-03 10:15:05 +08:00
    NobodyVe2x
    NobodyVe2x
    OP
    Jun 22, 2025
    1
    补充一下: 某一个时间点突然系统盘的读操作 从两三分钟内飙升到 2000/s , 平时就 5 以下。 出现过好多次,但是不知道原因。
    foxhunt
    foxhunt
    Jun 22, 2025
    2
    可能是服务器配置较低造成

    当时 docker 跑 gitlab 时,出现过 IO 飙升的情况
    进行了多种尝试,包括开启 swap 等,均无效果

    后来换了 gitea 就好了

    升配下观察下
    NobodyVe2x
    NobodyVe2x
    OP
    Jun 22, 2025
    3
    @foxhunt 好的, 配置确实不高
    humbass
    humbass
    Jun 22, 2025 via Android
    4
    bytenode 不会是加密了整个项目吧,适当的逻辑,或者方案啥的抽出来,加密下就 OK 了。
    NobodyVe2x
    NobodyVe2x
    OP
    Jun 22, 2025 via Android
    5
    @humbass 是加密了整个项目, 其实抽出来核心逻辑就行,没必要整个项目都加密
    dfdd1811
    dfdd1811
    Jun 22, 2025❤️1
    6
    我司好多阿里的设备,上面有 k8s ,但是有些甚至没有很高负载,表现就是突然硬盘读写飙升,然后卡死,ssh 上不去,只能重启。无解,找不到原因,而且配置都不低的,只能确认业务然后重启
    seansong
    seansong
    Jun 22, 2025
    7
    有没有可能是代码中不适当的 require 或者 read 什么了

    以前我遇到过一个类似的磁盘问题,最后发现是阿里云的云盾进程在发癫,卸载掉就好了。op 可以在控制台看一下具体是什么进程在疯狂的读取,进一步判断一下
    rekulas
    rekulas
    Jun 22, 2025
    8
    怀疑还是内存不足导致,复制复制镜像升级到一个大内存的对比测试下
    songtianlun
    songtianlun
    PRO
    Jun 23, 2025 via Android
    9
    是不是内存不足疯狂切换导致 IO 彪高。我遇到过好多次,严重时都得强制重启。
    Martin123123
    Martin123123
    Jun 23, 2025
    10
    轻量云还是 ecs ,建议看一下 CPU 积分
    lawfun
    lawfun
    Jun 23, 2025
    11
    用 vscode remote 远程开发连腾讯云和阿里云 轻量云 也是经常卡死,磁盘 100%
    3825995121
    3825995121
    Jun 23, 2025❤️1
    12
    你大概没有限制程序的内存
    程序把内存用完了之后
    就会使用磁盘来写内存
    磁盘读写直接拉满
    然后就卡死了
    排查
    先查看死机之前的内存 是不是 100%了
    3825995121
    3825995121
    Jun 23, 2025
    13
    nodejs 内存泄漏很正常
    最好用容器来部署应用 限制内存 到一定阈值就重启程序
    peasant
    peasant
    Jun 23, 2025❤️1
    14
    贴一个阿里云轻量和腾讯云轻量的 IO 测试对比
    阿里云:2vCPU/1GiB-ESSD 云盘/30GiB
    腾讯云:CPU - 1 核 内存 - 2GB 系统盘 - SSD 云硬盘 50GB

    测试方式:fio --name=randread --rw=randread --bs=4k --size=512M --numjobs=8 --iodepth=32 --runtime=30 --ioengine=libaio --direct=1 --group_reporting

    测试结果:


    手里没有阿里云 50G 硬盘的,轻量,不知道表现怎么样。
    abelai
    abelai
    Jun 23, 2025❤️1
    15
    碰到过服务器内存不够,还剩个 100m 左右的内存 ,然后有个定时任务 dnf-makecache 一执行就会 io 飙升,然后服务器卡死 ssh 都连不上,只能强制重启
    vvong
    vvong
    Jun 23, 2025
    16
    碰到过 strapi 项目 npm run build 的时候直接磁盘拉爆 需要手动重启服务器
    需要先停止 pm2 然后再构建 还是会出现 磁盘直接拉满的情况
    cwliang
    cwliang
    Jun 23, 2025
    17
    内存正常,读盘被占满,是不是有什么循环遍历的同步 IO 操作?
    zeusho871
    zeusho871
    Jun 23, 2025 via Android❤️1
    18
    就是阿里云垃圾,硬盘限速很厉害不给你跑满,遇到内存炸了就走 swap 然后整个机器都崩溃了🤣
    mark2025
    mark2025
    Jun 23, 2025
    19
    @foxhunt GitLab 对于资源要求比较高,至少 4c16g ,和 docker 无关。
    mark2025
    mark2025
    Jun 23, 2025
    20
    @peasant tx 云 1C 比阿里云 2C 还要强?
    sagaxu
    sagaxu
    Jun 23, 2025
    21
    阿里云硬盘就是垃圾,低配 IOPS 只有 2000 ,用超了很可能会死机,后台重启要好几分钟。

    把阿里云盾之类的全部禁用掉,swap 也禁用,内存占用不要超 90%,我这么做之后就没遇到过了。
    peasant
    peasant
    Jun 23, 2025
    22
    @mark2025 这个是磁盘 IO ,跟 CPU 应该没啥关系,我看阿里云描述是硬盘越大给的 IO 越高,但是这个 30G 的就给这么点,确实很抠,不知道 50G 能给多少。
    displayabc
    displayabc
    Jun 23, 2025
    23
    之前用阿里云,内存一旦爆满,100%死机
    baiduyixia
    baiduyixia
    Jun 23, 2025
    24
    同样遇到了
    ChrisFreeMan
    ChrisFreeMan
    Jun 23, 2025
    25
    JS 真的非常容易内存泄露,我有点想回去写 swift 了。。也许 swift 才是我的真爱。
    viking602
    viking602
    Jun 23, 2025
    26
    我一直以为就我这样 原来大家都会这样 我那台阿里也是很容易就把 io 写满然后宕
    yh7gdiaYW
    yh7gdiaYW
    Jun 23, 2025
    27
    开了 swap 或类似功能的东西吧,阿里云对吞吐量上限卡的非常严格,连续满载的表现就是系统无响应
    yh7gdiaYW
    yh7gdiaYW
    Jun 23, 2025❤️1
    28
    阿里云默认的 vm.swappiness 是 0 (不确定是不是所有系统都这样),优点是性能稳定,缺点是低配机器上容易导致卡死。可以把这个值调大一点,我目前设的是:sudo sysctl vm.swappiness=20
    hugqq
    hugqq
    Jun 23, 2025
    29
    阿里服务器的内存爆了就会卡死,这是阿里的通病
    jinlong
    jinlong
    Jun 23, 2025
    30
    经验告诉我,你爆内存了。升级 1G 内存,IO 就下来了
    iv8d
    iv8d
    Jun 23, 2025 via Android
    31
    估计就是给的 io 不够
    NobodyVe2x
    NobodyVe2x
    OP
    Jun 23, 2025 via Android
    32
    @seansong 感谢,可以从这个方向查一下
    NobodyVe2x
    NobodyVe2x
    OP
    Jun 23, 2025 via Android
    33
    @Martin123123 我是轻量云,什么是 cpu 积分呀
    realpg
    realpg
    Jun 23, 2025
    34
    内存炸了而已...
    而且你大概率是轻量...

    轻量属于娱乐用的...
    NobodyVe2x
    NobodyVe2x
    OP
    Jun 23, 2025
    35
    @sagaxu 感谢大佬回复,应该有用
    sphawkcn
    sphawkcn
    Jun 24, 2025
    36
    轻量云便宜,慢点就慢点,可以理解。

    但是会卡死,而且卡死后必须手动重启来解决就很恼火了。
    johnnyyeen
    johnnyyeen
    Jun 24, 2025
    37
    只有读磁盘没有写?虚拟内存换页?
    johnnyyeen
    johnnyyeen
    Jun 24, 2025
    38
    我们大量业务都是 Nodejs ,没有遇到这种
    NobodyVe2x
    NobodyVe2x
    OP
    Jun 25, 2025 via Android
    39
    @johnnyyeen 这几天分析下来,应该就是内存爆炸了,疯狂 swap ,硬盘就超 io 了,然后死机了,只能强制重启
    best66
    best66
    Jul 3, 2025 via iPhone❤️1
    40
    阿里云真的垃圾,排查了好久,实测 vm. swappiness 设置到 60 可以解决。
    NobodyVe2x
    NobodyVe2x
    OP
    Jul 3, 2025 via Android
    41
    @best66 感谢分享
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   705 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 69ms · UTC 22:35 · PVG 06:35 · LAX 14:35 · JFK 17:35
    ♥ Do have faith in what you're doing.