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

23 天前
 NobodyVe2x

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

补充一下,这个项目使用 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

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

3710 次点击
所在节点    Node.js
41 条回复
NobodyVe2x
23 天前
补充一下: 某一个时间点突然系统盘的读操作 从两三分钟内飙升到 2000/s , 平时就 5 以下。 出现过好多次,但是不知道原因。
foxhunt
23 天前
可能是服务器配置较低造成

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

后来换了 gitea 就好了

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

以前我遇到过一个类似的磁盘问题,最后发现是阿里云的云盾进程在发癫,卸载掉就好了。op 可以在控制台看一下具体是什么进程在疯狂的读取,进一步判断一下
rekulas
23 天前
怀疑还是内存不足导致,复制复制镜像升级到一个大内存的对比测试下
songtianlun
23 天前
是不是内存不足疯狂切换导致 IO 彪高。我遇到过好多次,严重时都得强制重启。
Martin123123
23 天前
轻量云还是 ecs ,建议看一下 CPU 积分
lawfun
22 天前
用 vscode remote 远程开发连腾讯云和阿里云 轻量云 也是经常卡死,磁盘 100%
3825995121
22 天前
你大概没有限制程序的内存
程序把内存用完了之后
就会使用磁盘来写内存
磁盘读写直接拉满
然后就卡死了
排查
先查看死机之前的内存 是不是 100%了
3825995121
22 天前
nodejs 内存泄漏很正常
最好用容器来部署应用 限制内存 到一定阈值就重启程序
peasant
22 天前
贴一个阿里云轻量和腾讯云轻量的 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
22 天前
碰到过服务器内存不够,还剩个 100m 左右的内存 ,然后有个定时任务 dnf-makecache 一执行就会 io 飙升,然后服务器卡死 ssh 都连不上,只能强制重启
vvong
22 天前
碰到过 strapi 项目 npm run build 的时候直接磁盘拉爆 需要手动重启服务器
需要先停止 pm2 然后再构建 还是会出现 磁盘直接拉满的情况
cwliang
22 天前
内存正常,读盘被占满,是不是有什么循环遍历的同步 IO 操作?
zeusho871
22 天前
就是阿里云垃圾,硬盘限速很厉害不给你跑满,遇到内存炸了就走 swap 然后整个机器都崩溃了🤣
mark2025
22 天前
@foxhunt GitLab 对于资源要求比较高,至少 4c16g ,和 docker 无关。
mark2025
22 天前
@peasant tx 云 1C 比阿里云 2C 还要强?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1140269

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX