栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ElasticSearch踩过的坑

ElasticSearch踩过的坑

1、tomcat报错:too many open flle,不能再上传附件 2、每次重启服务,临时解决,以后又出现too many open flle错误

3、利用lsof -n | awk '{print $2}' | sort | uniq -c | sort -nr | more查看了排在前面的几个进程

4、我们可以用ulimit -a来查看所有限制值
[root@centos5 ~]# ulimit -a
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
max nice                        (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 4096
max locked memory       (kbytes, -l) 32
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
max rt priority                 (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 4096
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited||<

其中 "open files (-n) 1024 "是Linux操作系统对一个进程打开的文件句柄数量的限制

5、我们可以用ulimit -a来查看所有限制值

正确的做法,应该是修改/etc/security/limits.conf
里面有很详细的注释,比如

vim /etc/security/limits.conf
* soft nofile 300000
* hard nofile 300000
* soft nproc 102400
* soft memlock unlimited
* hard memlock unlimited

soft nproc: 可打开的文件描述符的最大数(软限制)

hard nproc: 可打开的文件描述符的最大数(硬限制)

soft nofile:单个用户可用的最大进程数量(软限制)

hard nofile:单个用户可用的最大进程数量(硬限制)

6、virtual memory too low

max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

切换到root用户
su root
持久性修改:在 /etc/sysctl.conf 文件中修改 vm.max_map_count 参数:

echo "vm.max_map_count=262144" > /etc/sysctl.conf sysctl -p

7、定时对冷数据进行段合并

因此,这就解释了“Too many open files in system”问题出现的原因: 在系统扩容的过程中,会有大量的数据被平衡到新的节点,这样会消耗大量的IO,同时,elk集群中的新数据,由于没有对数据节点做冷热区分,会源源不断的写入到新节点,这就造成了新节点中的段会非常多,旧的段无法合并,新的数据又在源源不断的写入,这就造成了文件数会越来越多,因此出现了上述问题。

要想彻底解决上述问题,只有一个办法,那就是定期对段进行合并。elk官方建议段的数量是一个分片只有一个。 可以通过如下api进行设置:

POST /{indexname}/_forcemerge?max_num_segments=1

还支持通配符:

POST /applog-prod-2016.12.*/_forcemerge?max_num_segments=1

可以通过如下API查看索引的段信息:

GET applog-prod-2016.11.30*/_segments

通过某个进程号显示该进行打开的文件

lsof -p 29624|wc -l

查看某个索引的段数量:

curl 192.168.60.7:9200/_cat/segments/indexName|wc -l

合并某个索引的段:

curl -XPOST 192.168.60.7:9200/indexName/_forcemerge?max_num_segments=1

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/316820.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号