成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

沙場秋點兵——MySQL容器化性能測試對比

企業動態
直接使用物理SSD時,由于是進行本地SSD讀寫,延時很低;且MySQL應用為了確保其操作的順序性,主要是采用有限線程低并發進行順序追加寫

   容器技術改變了應用交付、運行的方式,幾乎各種Linux環境下的應用程序都可以使用容器來運行。但是否能在容器環境里運行數據庫應用,以及數據庫應用是否適合在容器里運行,一直都是大家很關注的問題,今天我們就來深入分析一下容器環境運行MySQL數據庫的事。

  在容器中運行數據庫,能幫助用戶提高服務器利用效率,降低基礎架構成本,更快速地部署、更便捷地管理數據庫服務。

  根據云監控供應商Datadog的調查報告, Postgres、MongoDB和MySQL等數據庫技術都位于容器上運行的十大技術之中——并且使用量還在增長。

  

 

  MySQL容器化需要容器存儲的有力支持

  數據庫實際上由兩大組件組成:讀取、寫入和查詢數據的應用,以及數據存儲,我們通常稱之為數據卷。MySQL等數據庫應用所需的計算資源完全可以通過容器技術提供,是否能流暢運行MySQL數據庫的關鍵在于容器存儲方案。國內大多數用戶在選擇容器存儲時,通常有以下幾種方案:

  l 新版本的Kubernetes可以支持塊設備掛載至容器內部(該塊設備可以來自服務器的物理磁盤,也可以來自傳統的SAN陣列)

  l 通過Ceph提供的CSI插件使用CephRBD或者CephFS

  l 使用焱融云的YRCloudFile提供的容器存儲

  大多數客戶對容器存儲的以下幾點尤為關注:

  l 數據可靠性

  l 是否能通過容器編排平臺快速完成存儲資源的生命周期管理(創建、擴容、刪除和回收等)

  l MySQL在容器化環境中的容災備份

  l MySQL容器故障后,在新節點重新啟動,其數據是否能快速訪問

  l MySQL使用容器存儲的實際性能如何,是否能滿足業務需求

  關于用戶關注的上述特性,我們在之前的文章中都有過介紹,在以后的文章里也會進一步描述。本文針對用戶最關注的,MySQL基于不同存儲的實際性能進行了實際測試和對比。

  MySQL存儲引擎和數據寫入策略

  在介紹實際測試性能之前,有必要介紹一下MySQL數據庫的存儲引擎,以及相關的寫入策略,這對于數據庫的實際使用性能有非常關鍵的影響。

  MySQL存儲引擎

  MySQL數據庫提供插件式的存儲引擎,這個存儲引擎提供了一系列標準的管理和數據讀寫服務的支持,不同的存儲引擎有不同的特點,存儲引擎對于業務開發人員而言是透明的。其中,InnoDB是著名的第三方存儲引擎,后被Oracle收購,是MySQL數據庫OLTP(Online Transaction Processing,在線事務處理)應用中使用最廣的存儲引擎,也是5.5.8版本后,MySQL默認的存儲引擎,以下的測試就基于InnoDB存儲引擎進行。

  InnoDB刷數據策略

  InnoDB中有一項設置——innodb_flush_method,這項設置負責控制InnoDB刷數據時所使用的系統調用。所謂刷數據,即將緩存在內存中或臨時磁盤存儲區域中的數據寫入特定的日志及數據文件(log,如ib_logfile和數據庫data file),完成持久化。

  刷數據動作可能是因為內存區域已滿并且系統需要釋放一些空間而觸發,或是因為事務完成更改的commit操作而觸發,或者由需要終結所有未完成工作的關閉操作而觸發。

  innodb_flush_method的值對應著不同的系統調用,從而會觸發不同的系統行為,經常使用的值包括:

  l fsync:InnoDB使用fsync()系統調用將MySQL的數據和日志文件都刷到持久化存儲中,fsync是InnoDB的模式設置。

  l O_DIRECT:InnoDB使用O_DIRECT標識打開MySQL的數據文件,意味著MySQL數據將繞過pagecache,直接寫入磁盤,并使用fsync()系統調用將MySQL數據和日志文件的元數據信息更新刷入磁盤。

  l O_DIRECT_NO_FSYNC:只使用O_DIRECT方式,繞過pagecache,將數據直接寫入磁盤,并在寫操作時跳過fsync()更新日志的元數據信息。在8.0.14版本之后, MySQL會在創建文件、增加文件長度以及關閉文件時自動調用fsync()來更新MySQL文件在文件系統中的元數據信息。

  YRCloudFile可以支持這種刷數據方式,即可以很好地確保每個數據都直接落盤,同時減少頻繁調用fsync帶來的開銷,極大提升性能。

  

 

  sysbench性能對比測試

  在下面進行的性能對比的測試中,我們在MySQL容器中使用了以下幾種存儲方案進行對比:

  l 將本地物理SSD盤掛載到MySQL容器中

  l 將基于RoCE(RDMA over Converged Ethernet)的YRCloudFile集群中的PV掛載到MySQL容器中

  l 將基于TCP的YRCloudFile集群中的PV掛載到MySQL容器中

  l 將CephRDB的PV掛載到MySQL容器中

  l 將CephFS的PV掛載到容器中

  除物理SSD盤外,YRCloudFile和Ceph集群都采用以下四臺相同的物理服務器進行搭建:

  l CPU:Intel 4112 * 2

  l 內存:64GB

  l 系統盤:240GB * 2

  l 元數據盤:960GB SSD * 2(CephRBD時不需要元數據盤)

  l 緩存盤:960GB SSD * 2

  l 數據盤:4TB SATA * 2

  l 管理網絡:1Gb * 2

  l 存儲網絡:10Gb * 2

  MySQL版本為8.0.14,使用InnoDB作為存儲引擎,innodb_flush_method設為O_DIRECT_NO_FSYNC ;Ceph版本為mimic,Ceph基于filestore;sysbench版本為1.0.17,基于50個表,每個表中包含100萬條數據的數據庫進行oltp_write_only和oltp_read_write測試。

  測試結果如下:

  

 

  

 

  從測試結果看:

  l 直接使用物理SSD時,由于是進行本地SSD讀寫,延時很低;且MySQL應用為了確保其操作的順序性,主要是采用有限線程低并發進行順序追加寫,延時性能決定了單個MySQL的整體性能,因此無論YRCloudFile還是Ceph存儲集群對單個MySQL實例而言,會受到延時影響,性能不如本地SSD盤。

  l 另一方面,我們看到基于RoCE的YRCloudFile的性能已經接近本地SSD盤,基于TCP的YRCloudFile集群所提供的性能略低于RoCE的性能。

  l 基于RoCE的YRCloudFile性能高于基于TCP的YRCloudFile性能,是CephRBD或CephFS性能的將近一倍。這是因為:1)YRCloudFile集群的元數據保存在本地SSD,相對于CephFS的元數據保存在RADOS中而言,其元數據讀延時明顯低于CephFS;2)基于RDMA的YRCloudFile繞過了系統內核,直接訪問集群中的磁盤數據,進一步降低了延遲。

  也許有讀者會問,從單個MySQL實例的測試性能看,YRCloudFile分布式存儲系統的優勢如何體現呢?通過使用YRCloudFile,可以充分發揮集群中所有磁盤的性能,使整個集群支持更多的MySQL實例,而單塊SSD盤的性能可以支撐的MySQL實例就有限得多了。此外,YRCloudFile也正在通過硬件offload,NVMe優化等方式,進一步縮短集群IO的延時,使集群IO的延時盡可能接近本地SSD的延時,從而使單MySQL實例的性能更加接近使用本地SSD運行MySQL的性能。

  在這篇文章中,我們介紹了如何通過設置MySQL InnoDB的innodb_flush_method參數,使用YRCloudFile獲得很好的MySQL運行性能,并對比了在同等環境下,使用SSD、CephRBD、CephFS所獲得的性能。在后續文章里,我們還會分享更多基于YRCloudFile運行各種中間件應用的很好實踐,以及相關的技術細節。

責任編輯:張誠 來源: 51CTO
相關推薦

2009-02-24 09:18:00

2013-11-21 17:40:25

OA

2009-09-17 15:39:56

C#數組初始化

2013-11-28 16:52:46

華為RH5885VMmark

2009-08-18 14:14:45

C#擴展方法性能測試

2012-06-13 09:35:41

存儲虛擬化

2014-10-23 16:22:05

華為

2010-01-16 11:02:12

Ubuntu性能測試

2017-08-22 10:52:35

容器DockerLinux

2009-07-24 13:17:43

世紀互聯至強CloudEx

2011-12-06 10:00:52

Ubuntu性能測試

2013-12-25 10:32:41

MySQL性能測試

2010-05-27 12:58:16

MySQL性能測試

2013-05-21 10:56:11

Hyper-V 3.0虛擬化

2022-05-30 10:28:04

FlatBuffer數據可視化

2009-04-16 17:24:54

性能優化SQL Server 數據收集

2013-08-08 10:05:28

華為云計算華為虛擬化

2011-09-14 09:42:17

虛擬化ROI

2012-08-16 13:59:49

Windows Ser虛擬化
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国产精品72免费观看 | 天天艹天天干天天 | 羞羞视频网 | 国产欧美一区二区三区久久人妖 | 三级av在线 | 综合久久亚洲 | 在线天堂免费中文字幕视频 | 国产成人自拍av | 一区二区三区国产视频 | 国产精品久久久久久久久久久久冷 | 日韩精品在线网站 | 黑人巨大精品欧美一区二区免费 | 精品日韩一区二区 | 色婷婷综合久久久中文字幕 | 成人av免费 | www.99热.com | a黄在线观看 | 久久av资源网 | 国产成人免费视频网站高清观看视频 | 国产一区二区三区视频 | 国产成人免费视频网站高清观看视频 | 欧美a v在线| 一区二区三区视频播放 | 亚洲乱码一区二区三区在线观看 | 欧美性猛交一区二区三区精品 | 国产精品久久九九 | 亚洲 中文 欧美 日韩 在线观看 | 国产精品久久久久久久久图文区 | 亚洲精品国产电影 | 日韩三级 | 亚洲精品乱码久久久久久按摩观 | 久久久久久久久毛片 | 亚洲电影一区二区三区 | 亚洲免费视频在线观看 | 涩涩导航 | 成人在线小视频 | 精品入口麻豆88视频 | 欧美成年黄网站色视频 | 日韩中文字幕在线播放 | 97精品久久 | 中文字幕在线欧美 |