美文网首页前端大讲堂让前端飞Web前端之路
记一个 Node 并发数太多出错问题的排查

记一个 Node 并发数太多出错问题的排查

作者: 前端大课堂 | 来源:发表于2019-05-27 00:31 被阅读2次

    今天有人问我一个问题,做离线爬虫服务,一次性发出 10000 以上的请求去拉取数据,会返回很多失败。

    这是为什么? 

    于是写个两段代码实践了下。 

    其中一段代码就是起一个服务提供一个接口,同时记录下 libuv I/O 的 activeHandles 和 activeRequests. 

    activeHandles 是指事件循环队列中未处理的任务数,

    activeRequests 是指未处理的请求数。 

    server.js

     另一段代码如下,

    sendRequest.js

    果然报很多错误,

    上网查下 EMFILE 错误,是因为打开了太多文件描述符,文件描述符包括磁盘文件,命名管道,网络套接字和由所有进程打开的设备。

    解决方法一方面是将系统文件描述符的上限扩大,另一方面是限制并发数。 

    参考资料: 

    https://stackoverflow.com/questions/19981065/nodejs-error-emfile-too-many-open-files-on-mac-os

    https://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7-1

    http://landcareweb.com/questions/7995/node-jszhong-de-lian-jie-emfile-cuo-wu

    https://codeday.me/bug/20170919/75603.html

    https://blog.csdn.net/sdn_prc/article/details/28661661

    相关文章

      网友评论

        本文标题:记一个 Node 并发数太多出错问题的排查

        本文链接:https://www.haomeiwen.com/subject/tgpqtctx.html