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

node.js Error: connect EMFILE 或者 getaddrinfo ENOTFOUND的更多相关文章

  1. Node.js Error: listen EADDRNOTAVAIL

    1 前言 nodejs部署在云服务器,外网用域名加端口访问不进来,但在服务器本地用127.0.0.1加端口可以访问,并且端口已经放开,然后只能排查配置.此文章仅作为记录使用. 如果端口和另一个的端口一 ...

  2. [Node.js] 09 - Connect with Database

    简介两个数据库: Node.js 连接 MySQL Node.js 连接 MongoDB Node.js 连接 MySql 导入已有数据库: unsw@unsw-UX303UB$ mysql -u r ...

  3. Node.js Error简介以及捕获方式

    error的类型nodejs 的error 一般分为四种类型: 1.标准的 JavaScript 错误,例如 EvalError.SyntaxError.RangeError.ReferenceErr ...

  4. 【解决】Node JS Error: ENOENT

    The Node Beginner Book 书中的实例代码当上传图片时会报Error: ENOENT, 原因:图片默认会选择系统的缓存文件夹下,在windows下无权访问C盘,所以就报错了.. 解决 ...

  5. Node.js Error: Cannot find module express的解决办法

    1.全局安装express框架,cmd打开命令行,输入如下命令: npm install -g express express 4.x版本中将命令工具分出来,安装一个命令工具,执行命令: npm in ...

  6. Node.js Error: Cannot find module express的解决办法(转载)

    1.全局安装express框架,cmd打开命令行,输入如下命令: npm install -g express express 4.x版本中将命令工具分出来,安装一个命令工具,执行命令: npm in ...

  7. node启动服务报错Node.js Error: Cannot find module express

    在node文件夹中(M:\express-test),执行 npm install express 在使用npm安装express时,报npm WARN saveError ENOENT: no su ...

  8. [Node.js] Show More Lines in a Node.js Error Stack Trace

    Sometimes you are one or two lines short from finding the cause of the error in the stack trace but ...

  9. Manjaro解决 Node.JS Error: ENOSPC

    https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers#the-technical-details ...

随机推荐

  1. 保研经验帖----江西师范大学 to 华中科技大学

    呼,距离拿到华科cs的offer也有一段时间,有好几次准备动手写这篇经验帖,但就是理不清自己想表达什么,今早起来状态还不错,洗漱的时候思路居然通透了,哈哈哈~ 一.基本情况 先简单介绍笔者的一些基本情 ...

  2. docker第一章--介绍和安装

  3. font-size 你所不知道的值

    说起 font-size  ,大家应该都知道是做什么的: CSS 属性指定字体的大小.因为该属性的值会被用于计算em和ex长度单位,定义该值可能改变其他元素的大小. 那么font-size 的值也是多 ...

  4. js两个变量互换值

    js两个变量交换值 这个问题看似很基础,但是有很多的实现方式,你知道的有多少呢,网上也有很多的方法,下面就来总结一下 中间变量(临时变量) 临时变量其实很好理解,通过一个中间变量进行交换值 var s ...

  5. AndroidStudio中Run按钮是灰色的解决方法

    在model下拉框中选择app.如果下拉框中没有app,(没有工程名),那么请先去设置: Android Studio 3.3.0 File->sync project with gradles ...

  6. UNTIY Canvas

    一.Canvas 组件 Render Mode(渲染模式) (1)Screen Space-Overlay:2D UI,始终显示在屏幕最前方,适合制作HP,MP等(相当于GUI) (2)Screen ...

  7. https小结

    目录: 1.什么是https 2.https实现过程描述(https和证书小结) 3.(在客户端)https抓包解密 4.wireshark分析https数据包解密前后的特点 正文 1.什么是http ...

  8. js sort() 排序用法(转载)

    原文:https://blog.csdn.net/m0_37885651/article/details/80016718 sort() 方法用于对数组的元素进行排序,并返回数组.默认排序顺序是根据字 ...

  9. Python——Python安装

    下载地址:https://www.python.org/downloads/windows/ 3.X安装方法: 1. 设置一个自选路径,并将下面的选项打钩.(建议使用根目录) 2. 应用在所有用户中 ...

  10. [bluez] linux下蓝牙鼠标的延迟问题

    引言 现在的便携设备,接口越来越少了.所以我们没有理由不用蓝牙鼠标.高大上也不贵. 蓝牙4.0之前,蓝牙设备的问题是特别费电.蓝牙4.0之后省电的要命,我的上一个鼠标Microsoft Designe ...