请教下各位老哥,我有一个单节点的ES,总共有将近一千万条数据,索引有42个。
然后最近测试的同事反映ES占用文件句柄数太大:
但是我执行 /_nodes/stats/process 后,发现打开的文件数又很少:
"open_file_descriptors" : 1447,
"max_file_descriptors" : 1024000
1447对比70万,也差了太远了吧……
究竟哪一个才是正确的呢?
另外如果70万是正确的,单节点ES为什么会有这么大的文件句柄占用呢?请教下各位有没有什么可以考虑优化的点。
segments的数量我有定期合并,目前看segements的数量大概200多个。
1 个回复
yeziblo
赞同来自:
使用lsof -n命令获得的结果是非常不准确的,它会把一些并没有占用句柄数的文件也一并计算在内。
使用ES API查到的数据是准确的。
再补充一下在linux查询进程占用fd比较准确的方法吧:ls -l /proc/<pid>/fd | wc -l