2设置--4启动检查

堆内存设置
最好设置jvm的启动内存和可使用的最大内存 大小一致,否则在内存不够需要扩容的时候,很可能会导致es进行暂停。如果设置了内存锁定(即bootstrap.memory_lock为true),只会锁定初始化的内存大小,即当初始化内存大小和最大内存不一致的时候,会导致差值没有被锁定。
内存锁定
内存回收的时候,如果内存被换到硬盘上,将会浪费大量时间。有一些办法可以阻止内存被换到硬盘上 如:bootstrap.memory_lock为true。为了完成这个操作你可能需要设置mlockall。
最大线程
由于es需要大量的线程来处理请求,所以必须设置准许es启动至少2048个线程。(你可以在/etc/security/limits.conf设置)
最大的虚拟内存
es会使用内存映射(mmap)来缓存index数据。所以你必须其拥有无限的地址空间。(通过/etc/security/limits.conf,设置为unlimited)
最大映射数量
跟上,为了使内存映射更有效,es需要创建很多内存映射空间,。所以需要设置最大的数量至少为262144.(设置vm.max_map_count通过sysctl)
客户端jvm
jvm有两种启动方式,客户端(client jvm)和服务端(server jvm),服务端模式更适合大应用,他对自己进行了更多的优化。默认现在的系统都是服务端模式
垃圾回收期
线性的垃圾回收期不适合大项目,所以一定不能指定给es。(默认是cms)


猜你喜欢

转载自fenshen6046.iteye.com/blog/2359534