配置缓存
将数据转储到OBS后,为了尽可能的减少对OBS的访问请求,并提升ES的查询性能,系统将会缓存部分数据。第一次获取到数据时,会直接访问OBS,之后将获取到的数据缓存在内存中,后续访问会先检查是否有缓存。数据缓存支持内存和文件。
ES访问不同的文件访问的模式是不一样的,缓存系统支持多级缓存,分别使用不同的block大小来缓存不同的文件,如对fdx,tip文件,使用大量的小block缓存,对fdt文件,使用较少的大block缓存。
配置名 |
类型 |
说明 |
---|---|---|
low_cost.obs.blockcache.names |
Array |
缓存系统支持多级缓存,分别用来缓存不同访问粒度的数据。此配置列出所有缓存的名字,即使不配置,系统也会默认有一个缓存,名字为default。如果自定义配置,请确保有一个名字为default的缓存,其他名字任意。 默认值:default。 |
low_cost.obs.blockcache.<NAME>.type |
ENUM |
缓存的类型,支持memory和file。 当使用memory类型的缓存时,会占用一定的内存大小。当使用file类型的缓存时,会使用磁盘作为缓存。建议使用超高IO型的磁盘提升缓存性能。 默认值:memory。 |
low_cost.obs.blockcache.<NAME>.blockshift |
Integer |
缓存每个block的大小,为字节左移数,即2x字节。如配置为16,表示block大小为216字节,等于65536字节,即64K。 默认值:13(即8K)。 |
low_cost.obs.blockcache.<NAME>.bank.count |
Integer |
缓存分区数。 默认值:1。 |
low_cost.obs.blockcache.<NAME>.number.blocks.perbank |
Integer |
每个缓存分区中包含的block数。 默认值:8192。 |
low_cost.obs.blockcache. <NAME>.exclude.file.types |
Array |
不缓存的文件后缀名。如果某些后缀既不包含在exclude列表,也不包含在include列表,则会使用default缓存。 |
low_cost.obs.blockcache. <NAME>.file.types |
Array |
缓存的文件后缀名。如果某些后缀既不包含在exclude列表,也不包含在include列表,则会使用default缓存。 |
以下为一个较为常见的缓存配置,该配置使用两级缓存,名字分别为default和large。其中default缓存使用64K的block大小,并且一共有30*4096个block,default缓存用于缓存除fdt后缀的其他文件。large缓存使用2M的block大小,一共有5*1000个block,large缓存用于缓存fdx,dvd,tip后缀的文件。
low_cost.obs.blockcache.names: ["default", "large"] low_cost.obs.blockcache.default.type: file low_cost.obs.blockcache.default.blockshift: 16 low_cost.obs.blockcache.default.number.blocks.perbank: 4096 low_cost.obs.blockcache.default.bank.count: 30 low_cost.obs.blockcache.default.exclude.file.types: ["fdt"] low_cost.obs.blockcache.large.type: file low_cost.obs.blockcache.large.blockshift: 21 low_cost.obs.blockcache.large.number.blocks.perbank: 1000 low_cost.obs.blockcache.large.bank.count: 5 low_cost.obs.blockcache.large.file.types: ["fdx", "dvd", "tip"]
配置名 |
类型 |
说明 |
---|---|---|
index.frozen.obs.max_bytes_per_sec |
String |
冻结过程中往OBS上传文件最大限速。动态配置,修改后立即生效。 默认值:150MB。 |
low_cost.obs.index.upload.threshold.use.multipart |
String |
冻结过程中文件大小超过此配置会使用OBS的分段上传。 默认值:1GB。 |
index.frozen.reader.cache.expire.duration.seconds |
Integer |
此参数设置超时时间。 为了减少冻结后的索引占用的堆内存,在索引shard启动后,reader会缓存一段时间,超时后关闭。 默认值:300s。 |
index.frozen.reader.cache.max.size |
Integer |
配置缓存最大值。 默认值:100。 |