14
14
15
15
==== CPUs
16
16
17
- 大多数 Elasticsearch 部署往往对 CPU 要求很小 。因此,((("CPUs (central processing units)")))((("hardware", "CPUs")))确切的处理器安装事项少于其他资源 。你应该选择具有多个内核的现代处理器,常见的集群使用两到八个核的机器。
17
+ 大多数 Elasticsearch 部署往往对 CPU 要求不高 。因此,((("CPUs (central processing units)")))((("hardware", "CPUs")))相对其它资源,具体配置多少个(CPU)不是那么关键 。你应该选择具有多个内核的现代处理器,常见的集群使用两到八个核的机器。
18
18
19
19
如果你要在更快的 CPUs 和更多的核心之间选择,选择更多的核心更好。多个内核提供的额外并发远胜过稍微快一点点的时钟频率。
20
20
21
21
==== 硬盘
22
22
23
- 硬盘对所有的集群都很重要,((("disks")))((("hardware", "disks")))对高度索引的集群更是加倍重要 (例如那些存储日志数据的)。硬盘是服务器上最慢的子系统,这意味着那些写入量很大的集群很容易让硬盘饱和,使得它成为集群的瓶颈。
23
+ 硬盘对所有的集群都很重要,((("disks")))((("hardware", "disks")))对大量写入的集群更是加倍重要 (例如那些存储日志数据的)。硬盘是服务器上最慢的子系统,这意味着那些写入量很大的集群很容易让硬盘饱和,使得它成为集群的瓶颈。
24
24
25
- 如果你负担得起 SSD,它将远远超出任何旋转媒介 (注:机械硬盘,磁带等)。 基于 SSD 的节点,查询和索引性能都有提升。如果你负担得起, SSD 是一个好的选择。
25
+ 如果你负担得起 SSD,它将远远超出任何旋转介质 (注:机械硬盘,磁带等)。 基于 SSD 的节点,查询和索引性能都有提升。如果你负担得起, SSD 是一个好的选择。
26
26
27
27
.检查你的 I/O 调度程序
28
28
****
29
29
如果你正在使用 SSDs,确保你的系统 I/O 调度程序是((("I/O scheduler")))配置正确的。
30
30
当你向硬盘写数据,I/O 调度程序决定何时把数据
31
31
_实际_ 发送到硬盘。大多数默认 *nix 发行版下的调度程序都叫做 `cfq` (完全公平队列)。
32
32
33
- 调度程序分配 _时间片_ 到每个进程。并且优化这些到硬盘的众多队列的传递。但它是为旋转媒介优化的 :
33
+ 调度程序分配 _时间片_ 到每个进程。并且优化这些到硬盘的众多队列的传递。但它是为旋转介质优化的 :
34
34
旋转盘片的固有特性意味着它写入数据到基于物理布局的硬盘会更高效。
35
35
36
36
这对 SSD 来说是低效的,然而,尽管这里没有涉及到旋转盘片。但是,`deadline` 或者 `noop` 应该被使用。`deadline` 调度程序基于写入等待时间进行优化,
@@ -39,9 +39,9 @@ _实际_ 发送到硬盘。大多数默认 *nix 发行版下的调度程序都
39
39
这个简单的更改可以带来显著的影响。仅仅是使用正确的调度程序,我们看到了500倍的写入能力提升。
40
40
****
41
41
42
- 如果你使用旋转媒介 ,尝试获取尽可能快的硬盘(高性能服务器硬盘,15k RPM 驱动器)。
42
+ 如果你使用旋转介质 ,尝试获取尽可能快的硬盘(高性能服务器硬盘,15k RPM 驱动器)。
43
43
44
- 使用 RAID 0 是提高硬盘速度的有效途径,对旋转硬盘和 SSD 来说都是如此。没有必要使用镜像或其它 RAID 变体,因为高可用已经通过 replicas 内建于 Elasticsearch 之中。
44
+ 使用 RAID 0 是提高硬盘速度的有效途径,对机械硬盘和 SSD 来说都是如此。没有必要使用镜像或其它 RAID 变体,因为高可用已经通过 replicas 内建于 Elasticsearch 之中。
45
45
46
46
最后,避免使用网络附加存储 (NAS)。人们常声称他们的 NAS 解决方案比本地驱动器更快更可靠。除却这些声称,
47
47
我们从没看到NAS能配得上它的大肆宣传。 NAS 常常很慢,显露出更大的延时和更宽的平均延时方差,而且它是单点故障的。
@@ -61,7 +61,7 @@ Elasticsearch 假定所有节点都是平等的--并不会因为有一半的节
61
61
==== 一般注意事项
62
62
63
63
获取真正的高配机器在今天是可能的:((("hardware", "general considerations")))成百 GB 的 RAM 和 几十个 CPU 核心。
64
- 反之,在云平台上串联起成千的小虚拟机也是可能的,例如 EC2。哪条道路是最好的 ?
64
+ 反之,在云平台上串联起成千的小虚拟机也是可能的,例如 EC2。哪种方式是最好的 ?
65
65
66
66
通常,选择中配或者高配机器更好。避免使用低配机器,
67
67
因为你不会希望去管理拥有上千个节点的集群,而且在这些低配机器上 运行 Elasticsearch 的开销也是显著的。
0 commit comments