龙空技术网

Elasticsearch性能调优(5):服务器配置选择

贵哥说Java创业 107

前言:

眼前我们对“如何选择服务器配置方案”可能比较讲究,看官们都需要学习一些“如何选择服务器配置方案”的相关知识。那么小编在网摘上汇集了一些关于“如何选择服务器配置方案””的相关知识,希望你们能喜欢,看官们快快来学习一下吧!

在选择elasticsearch服务器时,要尽可能地选择与当前业务量相匹配的服务器。如果服务器配置太低,则意味着需要更多的节点来满足需求,一个集群的节点太多时会增加集群管理的成本。如果服务器配置太高,则选择一台服务器部署多个节点的方案通常会导致资源使用不均衡(比如内存耗尽,而CPU使用率很低),导致资源浪费,而且在单机上运行多个节点时,也会增加逻辑的复杂度。

另外,请关掉swap。我们知道,在计算机中运行的程序均需由内存执行,若执行的程序占用的内存很大或很多,则会导致内存消耗殆尽。为了解决该问题,操作系统使用了一种叫作虚拟内存的技术,即匀出一部分硬盘空间来充当内存使用。当内存耗尽时,操作系统就会自动调用硬盘来充当内存,并把内存中暂时不使用的数据交换到硬盘中,在再次使用时从硬盘交换到内存。

虽然这种方式非常成功的“扩大”了内存,缓解了内存过小带来的压力,但是由于数据在内存和磁盘之间来回交换对服务器的性能来说是致命的。所以为了使elasticsearch有更好的性能,强烈建议大家关闭swap。

关闭swap的方式:

(1)暂时禁用。在Linux服务器上执行如下命令就可以暂时关闭,但是在服务器重启后失效。

sudo swapoff -a 

(2)永久性关闭。在/etc/sysctl.conf(不同的操作系统路径可能不同)中增加如下参数:

vm.swappiness=1

swappiness的值是0~100的整数。数字越大,则表示越倾向于使用虚拟内存。系统默认为60,但是并不建议把该值设置为0,因为设置为0时,在某些操作系统中有可能会触发系统级的OOM-Killer,例如在linux内核的内存不足时,为了防止系统的崩溃,需要强制杀掉一个“bad”进程。这里的“bad”进行,表示占用内存最多的那个进程。

(3)在elasticsearch中设置。如果上面两种方式都不合适,则可以在elasticsearch的conf文件夹下的elasticsearch.yml文件中添加如下命令。bootstrap.mlockall为true表示让JVM锁住内存,禁止内存的交换。

bootstrap.mlockall: true

标签: #如何选择服务器配置方案