这样就不能使用_all和*了
可以通过脚本的形式。删除3天前的索引。
#!/bin/bash time=$(date -d '-3days' +'%Y.%m.%d') curl -XDELETE -u elastic:changeme http://localhost:9200/acc-apply-${time}也可以通过写入定时任务。删除3天前的索引。
30 2 * * * /usr/bin/curl -XDELETE -u elastic:changeme http://localhost:9200/*-$(date -d '-3days' +'%Y.%m.%d') >/dev/null 2>&1JVM java虚拟机 JRE java 运行环境 JDK java工具包 JVM————JRE————JDK vm虚拟机——linux系统——命令
一开始索引什么的都不多,量不大,所以都很轻松,后来量越来越大,默认的配置就有点吃不消了,打开一个页面,查询压力就会非常大。
横向扩展es集群通过加大es的jvm内存来优化。默认情况下,Elasticsearch告诉JVM(java 虚拟机)使用最小和最大大小为1 GB的堆。迁移到生产环境时,配置堆大小以确保Elasticsearch有足够的堆可用是很重要的。 Elasticsearch将通过(最小堆大小)和(最大堆大小)设置分配jvm.options中指定的整个堆 。Xms,Xmx可设置的值取决于服务器上可用的RAM量。一些好的建议是:
将最小堆大小(Xms)和最大堆大小(Xmx)设置为彼此相等。
Elasticsearch可用的堆越多,它可用于缓存的内存就越多。但请注意,过多的堆可能会使您陷入长时间的垃圾收集暂停。
设置Xmx为不超过物理RAM的50%,以确保有足够的物理RAM留给内核文件系统缓存。
最大内存不要超过32G,跨32G时,有一个现象,使用更多的内存,比如 40G,效果还不如31G!
[root@localhost ~]# vim /etc/elasticsearch/jvm.options -Xms2g -Xmx2g #一半内存(4G内存,改为2G)比如我的主机是16核32G的主机,那么这时更改一下配置:
-Xms16g -Xmx16g -Xss128m 最小xms 最大xmx ulimit -n 65535 //临时生效 然后重启es,会发现快很多了。关于这一点,可以参考官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/heap-size.html
一个是修改最大文件打开数,一个是最大进程数,其中root表示管理员,*表示普通用户。 更改之后重启主机即可。