Error: getaddrinfo ENOTFOUND] code: 'ENOTFOUND', errno: 'ENOTFOUND', syscall: 'getaddrinfo'

Error: connect EMFILE

本人在中心服上向800多个ip上发请求,发两次就不行了出现如上报错。

原因是文件句柄不够用了,修改  ulimit 即可,步骤如下:

1.vim /etc/security/limits.conf

2.添加两行内容: 
* soft nofile 65536 
* hard nofile 65536

3.退出当前终端,再进  ulimit -a 查看。

虽然显示对了,经过node.js测试仍报错,怀疑没立即生效,指令: grep "Max open files" /proc/39629/limits   显示还是1024,说明没生效。

解决办法:转自  https://blog.csdn.net/shootyou/article/details/6579139

主要是因为linux在文件句柄的数目上有两个级别的限制。一个是系统级别的总数限制,一个是针对用户的限制。

默认情况下每个用户所能使用的句柄数是1024。一般情况下1024也够用了,但是在大容量的系统上,特别是会频繁使用网络通信和文件IO的系统上,1024很快就被耗光了。所以首先我们要调整这个值。修改方法如下:

1. ulimit -a 查看当前用户的文件句柄限制
2. 用户级别的句柄数限制修改。
修改 /etc/security/limits.conf 增加下面的代码:
用户名(或者用*表示所有用户) soft nofile 65535
用户名 hard nofile 65535
有两种限制,一种是soft软限制,在数目超过软限制的时候系统会给出warning警告,但是达到hard硬限制的时候系统将拒绝或者异常了。
修改之后可能需要重启shell生效。
3. 系统级别的句柄数限制修改。
sysctl -w fs.file-max 65536
或者
echo "65536" > /proc/sys/fs/file-max
两者作用是相同的,前者改内核参数,后者直接作用于内核参数在虚拟文件系统(procfs, psuedo file system)上对应的文件而已。
可以用下面的命令查看新的限制
sysctl -a | grep fs.file-max
或者
cat /proc/sys/fs/file-max
修改内核参数
/etc/sysctl.conf
echo "fs.file-max=65536" >> /etc/sysctl.conf
sysctl -p
查看系统总限制 命令:cat /proc/sys/fs/file-max
查看整个系统目前使用的文件句柄数量命令:cat /proc/sys/fs/file-nr
查看某个进程开了哪些句柄 :lsof -p pid
某个进程开了几个句柄 :lsof -p pid |wc -l
也可以看到某个目录 /文件被什么进程占用了,显示已打开该目录或文件的所有进程信息 :lsof path/filename

转载于:https://www.cnblogs.com/workharder/p/10372472.html

node.js Error: connect EMFILE 或者 getaddrinfo ENOTFOUND相关推荐

  1. Node.js Error: Cannot find module express

    启动node服务时遇到Error: Cannot find module express的报错 解决 # 卸载全局安装的express npm uninstall -g express npm uni ...

  2. node.js websocket connect的使用

    通常我们都使用websocket中的createServer接口创建监听服务器,网上也有很多文章介绍这个用法.如果需要创建一个连接的场景,比如需要新建一个远程调用,这需要用到websocket的con ...

  3. Node.js Web 开发框架大全《中间件篇》

    这篇文章与大家分享优秀的 Node.js 中间件模块.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编写能够处 ...

  4. 干货!如何用Node.js实现一个精巧的P2P网络

    加密货币都是去中心化的应用,去中心化的基础就是P2P网络,其作用和地位不言而喻,无可替代.当然,对于一个不开源的所谓私链(私有区块链),是否必要,尚无定论. 事实上,P2P网络不是什么新技术.但是,使 ...

  5. Heroku + node.js错误(Web进程在启动后60秒内未能绑定到$ PORT)

    本文翻译自:Heroku + node.js error (Web process failed to bind to $PORT within 60 seconds of launch) I hav ...

  6. puppeteer Error: getaddrinfo ENOTFOUND storage.googleapis.com

    错误原因: 使用国内镜像时 puppeteer安装失败 解决方法: npm i --ignore-scripts 忽略各种报错命令 npm i --legacy-peer-deps --ignore- ...

  7. npm cb() never called!和 Error: getaddrinfo ENOTFOUND registry.npmjs.com registry.npmjs.com:443

    我在服务器上执行 npm i 时竟然出错了,下面是错误的提示: npm ERR! cb() never called!npm ERR! This is an error with npm itself ...

  8. nuxt启动报错: Error: getaddrinfo ENOTFOUND 0

    nuxt 项目启动,执行npm run dev 报错 Error: getaddrinfo ENOTFOUND 0 原因: nuxt.config.js 中 serve 配置项 host,把 '0' ...

  9. Error: tunneling socket could not be established, cause=getaddrinfo ENOTFOUND 11000

    创建一个新的React应用时发生错误 前些天在公司的电脑上重新搭建各种环境,突然出了这个问题. 使用命令:npx create-react-app demo 环境:node v16.3.0; npm ...

最新文章

  1. C语言——迭代法求a的平方根——更新01
  2. cx_Oracle模块
  3. Linux SElinux
  4. GraphQL 、flask-graphql、Graphene| 一种配得上凡尔赛的API框架
  5. 全新 ENVI Modeler 遥感建模工具
  6. VS遍历windows文件夹的代码
  7. php 音乐歌词xml,一篇文章玩转全网音乐信息库MusicBrainz API
  8. 第一道web类CTF题——一起来撸猫
  9. Android 自动点击工具,安卓自动点击器免费版
  10. vue 点击图标旋转
  11. java 时区id对应时区名称,Java 可以或失去的全部的时区ID
  12. c语言以字符输出88,C语言88案例完整版
  13. 一例Vmware虚拟化Vcenter连接不上解决过程。
  14. 腾讯的野望:一个游戏公司怎么拯救世界?
  15. 学校作业5_1字符串_文本分析与加密(头哥作业[Python])
  16. <Java>使用commons.io修改文件内容(中文标点符号改成英文)
  17. mysql中的resultt框没有了_mysql中的zentao.zt_config表格消失了
  18. 建一个网站需要花多少钱?
  19. 学习人工智能需要哪些必备基础
  20. 最大4k地址计算机组成原理,级计算机组成原理期末考试复习大纲资料.ppt

热门文章

  1. 小程序tabbar文字在服务器上不显示,小程序的tabbar不显示
  2. mint-ui修改样式的小技巧
  3. 60分钟快速入门 PyTorch
  4. 快速入门PyTorch(3)--训练一个图片分类器和多 GPUs 训练
  5. [GAN学习系列] 初始GAN
  6. java pdf文件压缩_PDF文件压缩转换教程
  7. js原生实现点击事件只创建一个元素
  8. 行为类模式(二):命令(Command)
  9. 自定义多列排序:C++/Java实现
  10. FusionChart完全入门手册8