批次大小對ES寫入性能影響初探

問題背景

ES使用bulk寫入時每批次的大小對性能有什么影響?設置每批次多大為好?

一般來說,在Elasticsearch中,使用bulk API進行批量寫入時,每批次的大小對性能有著顯著的影響。具體來說,當批量請求的大小增加時,寫入性能通常會提高,因為減少了網絡往返時間和磁盤I/O次數。然而,如果批量請求過大,會導致節點上的內存壓力增大,進而影響其他請求的性能,甚至可能導致節點崩潰。

實測方案與結果

我在虛擬機環境實測了7種不同批次的大小,從500到10000都有。

結果如下表:

索引消耗的時間與批次大小數據圖示:

  • 最慢的10000條每批,吞吐量是18078/秒。
  • 最快是8000條每批,吞吐量是18218/秒。

這圖看著很唬人,實際上設定不同的批次大小對寫入性能的影響微乎其微,圖中所示的數據索引時間單位是毫秒。

表中,程序運行時間單位是秒,即便是觀察程序運行總時間,也都是幾秒之差。因為波動太小,因此不具有實際調優意義,只能作為一個數據參考。

當然,對于生產環境也可以通過實驗來確定最佳的批量大小。可以從較小的批量開始(例如5MB),然后逐漸增加批量大小,觀察寫入性能的變化。當性能開始下降時,說明批量大小已經過大,應該減小批量大小。通常,一個好的起點是將每批次的數據量設置在5MB到15MB之間。

補充測試

那么將批次大小分別設置為10萬,和10呢?取兩個較為極端的值。

  • 超大的10萬級別:運行了149秒,變慢的趨勢有所抬頭!
  • 很小10級別:**運行了641秒,明顯變慢!果然,批次太小的確是浪費資源!**不過一般也沒有開發人員會設置成這個值。

批次大小設置為極小值10的時候,數據反映了另外一個事實,那就是批量寫入比單條寫入快了不止一倍!

最終所有測試索引都有100萬條數據,數據存儲空間大小也幾乎一致:

結論

經過計算,上述7種單批次大小的100萬數據吞吐量差異最大只有千分之7,可以說是完全沒有差異了,極端值才會顯著降低性能。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/716062.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/716062.shtml
英文地址,請注明出處:http://en.pswp.cn/news/716062.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

PVLAN組網實驗

一,PVLAN類型 主VLAN 主VLAN可以由多個輔助私用VLAN組成,而這些輔VLAN與主VLAN屬于同一子網。 輔助VLAN ① 團體VLAN:如果某個端口屬于團體VLAN,那么它就不僅能夠與相同團體VLAN中的其他端口進行通信,而且還能夠與…

使用rsync同步服務器和客戶端的文件夾

使用rsync同步服務器和客戶端的文件夾 實現目的實驗準備實驗操作步驟服務器操作關閉防火墻和SELINUX安裝rsync修改服務器配置文件/etc/rsync.conf創建服務器備份文件的目錄創建rsync系統運行的用戶修改備份文件的所有者和所屬組創建rsync.passwd啟動rsync服務并進行驗證 客戶端…

中間件安全(概述)有中間件的各類鏈接和官網信息和漏洞庫以及配置問題和開源工具

分類主要包括Apache、IIS、Tomcat、weblogic、websphere、Jboss等相關的技術知識和實踐。 以Apache為例講一講如何保證中間件安全 中間件安全是指保護中間件軟件和服務的安全性,防止被惡意攻擊或者濫用。中間件軟件是指在操作系統和應用程序之間提供通信和集成功能…

【Go】命令行相關

查看go的環境 go env # 查看go的環境變量 goRoot # 編譯器的環境 goPath設置go module 打開cmd命令行,執行以下命令 go env -w GO111MODULEoff # on-打開 off-關閉 auto-自動相關命令 go build # 項目路徑下執行,能編譯當前go項目(一個…

RFID(Radio Frequency Identification)技術筆記

一、RFID的介紹 RFID,全稱為Radio Frequency Identification,即射頻識別技術,也常被稱為電子標簽或無線射頻識別。它是一種非接觸式的自動識別技術,通過射頻信號自動識別目標對象并獲取相關數據,識別過程無需人工干預&…

[云原生] k8s之pod容器

一、pod的相關知識 1.1 Pod基礎概念 Pod是kubernetes中最小的資源管理組件,Pod也是最小化運行容器化應用的資源對象。一個Pod代表著集群中運行的一個進程。kubernetes中其他大多數組件都是圍繞著Pod來進行支撐和擴展Pod功能的,例如,用于管理…

如何確保JDK版本與操作系統架構匹配?

1. 序言 最近的工作中,需要升級JDK版本到17.0.7,以解決一個JDK bug:JDK-8299626該bug的core dump關鍵字如下:SIGSEGV in PhaseIdealLoop::build_loop_late_post_work公司JDK團隊提供的、包含JDK的基礎鏡像,有aarch64和…

Hololens2開發環境配置及項目生成部署

Hololens2開發環境配置及項目生成部署 Hololens2開發環境配置及項目生成部署一、官方文檔及推薦配置說明1.官方文檔介紹2.推薦配置及配置說明 二、安裝步驟0.現有Visual Stuido和Unity卸載1.Windows SDK安裝2.Visual Studio安裝3.Unity安裝4.MRTK配置 三、初次環境配置1.新建Un…

vmware的詭異網絡

坦白說,vmware的網絡我始終是沒有搞太懂。 我習慣使用的是“僅主機”和“NAT”。 “僅主機”我習慣配置靜態IP,互相訪問沒問題。 “NAT”則主要用于windows系統,簡單方便。windows虛擬機一般也沒啥特別的互相訪問需求,直接文件復制…

簡單了解GaussDB

大家都已經很熟悉openGauss了,昨天我的文章中說陜西電力的用采系統用Gaussdb替代了Oracle,就有朋友問我這個Gaussdb是不是就是openGauss。這個問題還真的有點不好回答,Gaussdb和openGauss淵源很近,但是還不是一碼事。華為在數據庫…

c++八股文:c++面向對象

文章目錄 1.c面向對象三大特性2.c的三個訪問修飾符3.多重繼承4.重載與重寫5.c多態怎么實現6.成員函數/成員變量/靜態成員函數/靜態成員變量的區別7.構造函數和析構函數8.c構造函數有幾種9.什么是虛函數什么是虛函數表10.虛函數和純虛函數的區別11.抽象類和純虛函數12.虛析構13.…

ABAP - SALV教程05 添加頁眉和頁腳

先看看效果叭CL_SALV_TABLE提供了SET_TOP_OF_LIST方法設置頁眉顯示和SET_TOP_OF_LIST_PRINT方法設置頁眉打印來實現添加頁眉的目的。CL_SALV_TABLE提供了SET_END_OF_LIST方法設置頁腳顯示和SET_END_OF_LIST_PRINT方法設置頁腳打印來實現添加頁腳的目的。這個四個方法的傳入參數…

Flutter異常上報及性能監控實現

1. 頁面異常監測 在Flutter中,通常用FlutterError監測Flutter框架拋出的異常,用runZonedGuarded監測應用中用戶代碼異常。 class AppGuarded {run(Widget app) {//1. 用FlutterError監測flutter框架拋出的異常FlutterError.onError (FlutterErrorDetail…

STM32F4 HAL庫串口死鎖問題調試記錄

文章目錄 STM32F4 HAL庫串口死鎖問題調試記錄調試方法結果分析解決方法一:方法二: STM32F4 HAL庫串口死鎖問題調試記錄 使用方法:通過串口DMA固定周期向外發送數據,同時開啟串口DMA接收用于接收其它板卡發來的數據。 問題&#x…

2024年,智慧文旅領航新時代,重塑旅行體驗的未來篇章!

隨著科技的飛速發展,智慧文旅正成為旅游行業的新寵,以其獨特的魅力和無限可能,引領著旅行體驗的全面升級。 2024年,智慧文旅火爆出圈,成為各界關注的焦點,為游客帶來了前所未有的震撼與享受。 智慧文旅&a…

290.【華為OD機試】連續出牌數量(深度優先搜索DFS—JavaPythonC++JS實現)

??點擊這里可直接跳轉到本專欄,可查閱頂置最新的華為OD機試寶典~ 本專欄所有題目均包含優質解題思路,高質量解題代碼(Java&Python&C++&JS分別實現),詳細代碼講解,助你深入學習,深度掌握! 文章目錄 一. 題目二.解題思路三.題解代碼Python題解代碼JAVA題解…

《猛獸派對》好玩嗎值得買嗎?蘋果電腦也能裝《猛獸派對》嗎?猛獸派對好友通行證 動物派對 猛獸對戰游戲

目錄 一、《猛獸派對》好玩嗎? 游戲玩法: 物理引擎: 關卡設計: 游戲特色: 評價: 榮譽: 二、蘋果電腦也能裝《猛獸派對》嗎? 第1步:下載并安裝CrossOver這款軟件…

C語言---文件操作(1)

1.文件的打開和關閉 fopen有2個參數,第一個是文件的名字,第二個是打開的模式(例如是讀文件還是寫文件) (1)該文件夾下面沒有data.txt文件,但是我執行了read操作,所以會顯示這樣的錯誤 (2&#…

『NLP學習筆記』圖解GPT3(How GPT3 Works-Visualizations and Animations)

圖解GPT3(How GPT3 Works-Visualizations and Animations) 文章目錄 一. GPT-1 vs GPT-2 vs GPT-3 vs GPT-3.5 vs GPT-4二. GPT32.1. 訓練動圖2.2. 預測動圖2.3. 代碼生成示例三. 參考文章原作者主頁:Jay Alammar原英文鏈接:How GPT3 Works - Visualizations and Animations …

ApplicationContext容器

ApplicationContext容器 1.概述 ApplicationContext接口代表了一個Spring容器,它主要負責實例化、配置和組裝bean。ApplicationContext接口間接繼承了BeanFactory接口,相較于BeanFactory一些基本的容器功能,ApplicationContext接口是在BeanFactory接口基礎上進行了擴展,增…