📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

配置项作用 #

index.store.type 配置项控制索引数据在磁盘上的存储类型。不同的存储类型提供不同的性能特性和功能支持,如内存映射(mmap)可提高某些场景下的性能。

配置项类型 #

该配置项为静态配置,需要在创建索引时设置,创建后不可修改。

默认值 #

根据系统自动选择:
- 64位 JVM 且支持 mmap → hybridfs
- 其他情况 → fs

是否必需 #

可选配置项(有默认值)

可选值 #

说明
fs文件系统存储(默认)
niofsNIO 文件系统存储
mmapfs内存映射文件系统
hybridfs混合存储系统
simplefs简单文件系统(仅用于测试)

配置格式 #

// 创建索引时指定
PUT /my_index
{
  "settings": {
    "index.store.type": "niofs"
  }
}

// 使用默认(推荐)
PUT /my_index
{
  "settings": {
    "index.store.type": "fs"
  }
}

// 使用内存映射
PUT /my_index
{
  "settings": {
    "index.store.type": "mmapfs"
  }
}

存储类型说明 #

1. fs(文件系统存储) #

默认存储类型,根据系统自动选择最佳实现:

  • 64位系统支持 mmap → 使用 hybridfs
  • 32位系统或 mmap 不可用 → 使用 niofs

特点:

  • 自动优化
  • 兼容性好
  • 推荐用于生产环境

2. niofs(NIO 文件系统) #

使用 Java NIO 的文件系统实现。

特点:

  • 跨平台兼容性好
  • 性能中等
  • 不依赖 mmap

3. mmapfs(内存映射文件系统) #

使用内存映射技术访问文件。

特点:

  • 某些场景下性能更好
  • 依赖操作系统的 mmap 支持
  • 可能受地址空间限制

4. hybridfs(混合存储系统) #

结合 mmap 和普通文件访问。

特点:

  • 对小文件使用 mmap
  • 对大文件使用普通访问
  • 平衡性能和资源使用

5. simplefs(简单文件系统) #

仅用于测试目的,不建议生产使用。

特点:

  • 简单实现
  • 性能较差
  • 仅用于测试

使用场景 #

1. 默认配置(推荐) #

{
  "settings": {
    "index.store.type": "fs"
  }
}

适用于大多数生产环境。

2. 明确指定 NIO #

{
  "settings": {
    "index.store.type": "niofs"
  }
}

适用场景:

  • 需要跨平台一致性
  • 不使用 mmap

3. 内存映射模式 #

{
  "settings": {
    "index.store.type": "mmapfs"
  }
}

适用场景:

  • 64位 JVM
  • 大量随机读
  • 确保支持 mmap

推荐设置建议 #

环境推荐类型说明
生产环境fs自动选择最佳类型
32位 JVMniofs不支持 mmap
64位 JVMfs/hybridfs自动选择
测试环境simplefs仅测试用途

性能对比 #

存储类型读性能写性能内存占用跨平台
fs
niofs
mmapfs很好
hybridfs

监控建议 #

# 查看索引存储类型
GET /my_index/_settings?filter_path=*.store.type

# 查看所有索引配置
GET /_all/_settings?filter_path=*.store.type

# 查看节点存储支持
GET /_nodes/settings?filter_path=*.store.allow_mmap

注意事项 #

  1. 静态配置:创建索引后不可修改
  2. 创建后不可变:存储类型在索引创建后固定
  3. 与 mmap 相关:mmapfs 需要系统支持
  4. 性能影响:不同类型对性能有影响
  5. 平台兼容性:某些类型可能在不同系统表现不同
  6. 生产推荐:生产环境建议使用默认值