You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js客户端请求偶发5秒左右'socket hang up'错误排查咨询

Node.js调用VictoriaMetrics接口偶发socket hangup/EPIPE错误排查疑问

环境与业务场景

  • Node.js版本:v14.19.1
  • 核心逻辑:数据收集进程通过axios发送HTTP请求,调用VictoriaMetrics的/api/v1/import接口完成数据写入
  • 网络环境:所有虚拟机部署在Azure私有网络中,网络整体可靠

偶发错误详情

socket hang up错误

错误栈如下:

Error: socket hang up
    at connResetException (internal/errors.js:639:14)
    at Socket.socketOnEnd (_http_client.js:499:23)
    at Socket.emit (events.js:412:35)
    at Socket.emit (domain.js:475:12)
    at endReadableNT (internal/streams/readable.js:1334:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21)
  • 错误出现时间:请求发起后5-6秒,偶尔会延长至15秒左右,未触发预设的连接超时配置
  • 触发规律:高负载或大请求量时错误频率更高,但小请求也可能偶发

EPIPE错误

错误栈如下:

Error: write EPIPE
    at afterWriteDispatched (internal/stream_base_commons.js:156:25)
    at writeGeneric (internal/stream_base_commons.js:147:3)
    at Socket._writeGeneric (net.js:798:11)
    at Socket._write (net.js:810:8)
    at writeOrBuffer (internal/streams/writable.js:358:12)
    at Socket.Writable.write (internal/streams/writable.js:303:10)
    at ClientRequest._writeRaw (_http_outgoing.js:351:17)
    at ClientRequest._send (_http_outgoing.js:327:15)
    at ClientRequest.end (_http_outgoing.js:849:10)
  • 触发规律:当数据库与数据收集进程在同一虚拟机时必然出现,跨虚拟机部署时偶发

倾向于客户端/虚拟机问题的依据

  1. VictoriaMetrics未记录与这些socket hangup/EPIPE错误对应的日志
  2. 曾出现过开发机根磁盘占满的情况,期间所有写入数据库的请求均触发上述错误,但数据库所在虚拟机运行正常,其他客户端可正常写入数据

待解决问题

目前怀疑高负载时偶发触发了Node.js或Ubuntu 20.04的连接/文件/网络流量等系统限制,导致连接被提前关闭。请问如何验证这一猜测?除此之外还有哪些可能的根因?

内容的提问来源于stack exchange,提问作者mactyr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 15:15:42