ES數(shù)據(jù)寫(xiě)入調(diào)優(yōu)2

image.png
1 修改事務(wù)日志translog參數(shù)(存在數(shù)據(jù)丟失風(fēng)險(xiǎn))

默認(rèn)設(shè)置下,translog 的持久化策略是每個(gè)請(qǐng)求都flush(durability參數(shù)值為request),這樣能保證寫(xiě)操作的可靠性,但是對(duì)性能會(huì)有很嚴(yán)重的影響,實(shí)際測(cè)試發(fā)現(xiàn)如果使用默認(rèn)設(shè)置進(jìn)行導(dǎo)數(shù)據(jù)磁盤(pán)IO會(huì)持續(xù)占滿。如果系統(tǒng)可以接受一定幾率的數(shù)據(jù)丟失(或有手段補(bǔ)錄丟失數(shù)據(jù)),可以通過(guò)調(diào)整 translog 持久化策略、周期性和一定大小的時(shí)候 flush,能大大提升導(dǎo)入性能。該配置項(xiàng)可以建索引時(shí)指定(或者配置到template里去)。執(zhí)行命令如下所示:

curl -XPUT "http://ip:httpport/myindex/_settings" -H 'Content-Type: application/json' -d'
{
"index": {
    "translog": {
          "flush_threshold_size": "1GB",
          "sync_interval": "180s",
          "durability": "async"
          }
     }
}'

2 禁用Doc Values

默認(rèn)情況下,支持doc values 的所有字段都是開(kāi)啟的。因?yàn)?Doc Values 默認(rèn)啟用,可以選擇對(duì)數(shù)據(jù)集里面的大多數(shù)字段進(jìn)行聚合和排序操作。但是如果確定不需要在字段上進(jìn)行排序和聚合,或從腳本中訪問(wèn)字段值,則可以禁用 doc values 來(lái)節(jié)省磁盤(pán)空間。

要禁用 Doc Values ,在字段的映射(mapping)設(shè)置 “doc_values”為“false”即可。例如,這里我們創(chuàng)建了一個(gè)新的索引,字段 "session_id" 禁用了 Doc Values:

curl -XPUT "http://ip:httpport/myindex" -H 'Content-Type: application/json' -d'
{
"mappings": {
      "my_type": {
           "properties": {
                 "session_id": {
                         "type": "keyword",
                         "doc_values": false
                  }
            }
       }
    }
}'

3 禁用_source字段

“_source”字段包含在索引時(shí)傳遞的原始JSON文檔正文。該“_source”字段本身不被索引(因此是不可搜索的),但它被存儲(chǔ),以便在執(zhí)行擷取請(qǐng)求時(shí)可以返回,例如getsearch。

雖然很方便,但是“_source”字段確實(shí)在索引中有不小的存儲(chǔ)開(kāi)銷。因此,可以使用如下方式禁用:

curl -XPUT 'http://ip:httpport/tweets?pretty' -H 'Content-Type: application/json' -d'
{
   "mappings": {
          "tweet": {
               "_source": {
                       "enabled": false
                 }
           }
     }
}'

在禁用_source 字段之前請(qǐng)注意:如果_source字段不可用,則不支持以下功能:

  • update,update_by_query,reindex APIs.
  • 高亮
  • 將索引從一個(gè)Elasticsearch索引reindex(重索引)到另一個(gè)索引的能力,以便更改映射或分析,或?qū)⑺饕?jí)到新的主要版本。
  • 通過(guò)查看索引時(shí)使用的原始文檔來(lái)調(diào)試查詢或聚合的能力。
  • 潛在的未來(lái)可能會(huì)自動(dòng)修復(fù)索引損壞的能力。
在禁用_source 字段之前請(qǐng)注意:如果_source字段不可用,則不支持以下功能:?update,update_by_query,reindex APIs.
?高亮
?將索引從一個(gè)Elasticsearch索引reindex(重索引)到另一個(gè)索引的能力,以便更改映射或分析,或?qū)⑺饕?jí)到新的主要版本。
?通過(guò)查看索引時(shí)使用的原始文檔來(lái)調(diào)試查詢或聚合的能力。
?潛在的未來(lái)可能會(huì)自動(dòng)修復(fù)索引損壞的能力。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容