Node.js 为什么这个脚本会导致;“打开的文件太多”;使用docker进行ElasticSearch时出错?
此脚本每15分钟从cronjob运行一次,将mongodb中的新帖子索引到ElasticSearch(全部在docker中) mongodb中有大约10k个文档,脚本运行只需几秒钟,但大约6小时后(我将文件数量从1024个增加到65335个),它仍然会锁定整个主机操作系统(Ubuntu 18.04) 我做错什么了吗Node.js 为什么这个脚本会导致;“打开的文件太多”;使用docker进行ElasticSearch时出错?,node.js,docker,
elasticsearch,ulimit,Node.js,Docker,
elasticsearch,Ulimit,此脚本每15分钟从cronjob运行一次,将mongodb中的新帖子索引到ElasticSearch(全部在docker中) mongodb中有大约10k个文档,脚本运行只需几秒钟,但大约6小时后(我将文件数量从1024个增加到65335个),它仍然会锁定整个主机操作系统(Ubuntu 18.04) 我做错什么了吗 $ ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unl
$ ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
scheduling priority (-e) 0
file size (blocks, -f) unlimited
pending signals (-i) 128199
max locked memory (kbytes, -l) 16384
max memory size (kbytes, -m) unlimited
open files (-n) 1000000
pipe size (512 bytes, -p) 8
POSIX message queues (bytes, -q) 819200
real-time priority (-r) 0
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) 100000
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
如果我禁用cronjob,这就是lsof在按文件数排序时所说的。在elasticsearch打开120k文件之前
39744 1071 dockerd
6528 972 container
2352 6065 mysqld
2352 3389 mysqld
1863 2981 mysqld
396 8947 node
308 4638 node
308 4356 node
275 7841 node
275 3947 node
272 965 transmiss
268 7095 mongod
268 5870 mongod
264 6394 container
264 6187 mongod
264 5098 container
264 4693 container
264 4601 container
264 4147 container
264 3182 container
39744 1071 dockerd
6528 972 container
2352 6065 mysqld
2352 3389 mysqld
1863 2981 mysqld
396 8947 node
308 4638 node
308 4356 node
275 7841 node
275 3947 node
272 965 transmiss
268 7095 mongod
268 5870 mongod
264 6394 container
264 6187 mongod
264 5098 container
264 4693 container
264 4601 container
264 4147 container
264 3182 container