搜尋
首頁系統教程Linux機器學習是否會使資料庫管理系統的維運人員失業?

機器學習是否會使資料庫管理系統的維運人員失業?

Jan 13, 2024 pm 06:24 PM
linuxlinux教程紅帽linux系統linux指令linux認證紅帽linuxlinux視頻

導讀 資料庫管理系統(DBMS)是任何資料密集型應用系統中最重要的部分。它們可以處理大量的資料和複雜的工作負載。但由於它們有成百上千個配置「按鈕」(knob),這些配置按鈕控制著許多因素,例如用於快取的記憶體容量和資料寫入到儲存設備的頻次,因而管理起來很難。企業組織常常聘請專家幫忙調校活動,不過對許多企業來說專家的成本高得離譜。

本文是由卡內基·梅隆大學的三位嘉賓達娜·範·阿肯(Dana Van Aken)、安迪·帕夫洛(Andy Pavlo)和傑夫·戈登(Geoff Gordon)共同撰寫的文章。該計畫展示了學術研究人員如何可以使用AWS Cloud Credits for Research Program(https://aws.amazon.com/research-credits/)來支持其科學研究突破。

OtterTune是由卡內基·梅隆大學資料庫小組(http://db.cs.cmu.edu/projects/autotune/)的學生和研究人員開發的一種新工具,它能自動為DBMS的配置按鈕找到合適的設定。目的在於讓任何人都更容易部署DBMS,甚至是資料庫管理方面毫無專長的人。

OtterTune有別於其他的DBMS配置工具,原因在於它充分利用從調優之前部署的DBMS所獲得的知識來調優新部署的DBMS。這大大減少了調優新部署的DBMS所需的時間和資源。為此,OtterTune維護一個資料庫,包含從先前的調優會話收集而來的調優資料。它使用該數據來建立機器學習模型,這些模型採集了DBMS對不同配置作出反應的資訊。 OtterTune使用這些模型來引導使用者針對新的應用程式進行嘗試,建議使用改善特定目標(例如縮短延遲或提高吞吐量)的設定。

我們在本文中探討了OtterTune的機器學習管道的每個組件,並演示了它們彼此如何联系,從而調優DBMS的配置。之後,我們評估了OtterTune對MySQL和Postgres的調優效果:將其最佳配置的效能與資料庫管理員(DBA)及其他自動調優工具選擇的配置作了一番比較。

OtterTune是由卡內基·梅隆大學資料庫小組的學生和研究人員開發的開源工具。所有程式碼都放在GitHub上(https://github.com/cmu-db/ottertune),並採用了Apache License 2.0這種授權來發行。

工作原理

下面這張圖顯示了OtterTune的元件及工作流程。

機器學習是否會使資料庫管理系統的維運人員失業?

#在新的調優會話的開始階段,使用者告訴OtterTune優化哪個特定目標(例如延遲或吞吐量)。用戶端控制器連接至目標DBMS,並收集Amazon EC2執行個體類型和目前目標。

然後,控制器開始了第一個觀察期,在此期間它觀察DBMS,並記錄特定目標。觀察期結束後,控制器收集來自DBMS的內部度量指標,例如MySQL針對從磁碟讀取的頁面和寫入到磁碟的頁面的計數。控制器將特定目標和內部度量指標都傳回給調優管理器。

OtterTune的調優管理器收到度量指標後,將它們儲存在資料庫中。 OtterTune使用結果來計算控制器應安裝到目標DBMS上的下一個配置。調優管理器將該配置傳回控制器,並透過實際運行來估計預期的改進。使用者可以決定繼續調優會話,還是終結調優會話。

說明

OtterTune為它支援的每個DBMS版本維護一份按鈕黑名單。此黑名單包含沒必要調優的按鈕(例如DBMS儲存檔案的路徑名稱),或可能有嚴重後果或隱性後果的按鈕(例如可能會造成DBMS遺失資料)。在每次調優會話的開始階段,OtterTune都會提供使用者黑名單,讓使用者可以新增他們想要OtterTune避免調優的其他任何按鈕。

OtterTune作出某些假設,可能會限制其對某些使用者而言的用處。比如說,它假設使用者擁有管理員權限,讓控制器可以修改DBMS的設定。如果使用者沒有管理員權限,那麼他們可以將資料庫的第二個副本部署到其他硬體上,以便OtterTune的調優試驗。這要求用戶重播工作負載跟踪,或轉發來自生產級DBMS的查詢。想了解假設和限制方面的完整討論,請參閱我們的論文(http://db.cs.cmu.edu/papers/2017/tuning-sigmod2017.pdf)。

機器學習管道

下面這張圖顯示了資料在透過OtterTune的機器學習管道傳輸時如何加以處理。所有觀察結果都放在OtterTune的資料庫中。

OtterTune先把觀察結果傳送到Workload Characterization元件。此組件可辨識一小批最準確地採集效能變化和不同工作負載獨特特點的DBMS度量指標。

接下來,Knob Identification元件產生一份按鈕排序表,列出了對DBMS的效能影響最大的按鈕。然後,OtterTune將所有這些資訊饋送給Automatic Tuner。此元件將目標DBMS的工作負載與資料資料庫中最相似的工作負載對應起來,並重複使用該工作負載數據,產生更合適的配置。

機器學習是否會使資料庫管理系統的維運人員失業?機器學習是否會使資料庫管理系統的維運人員失業?

現在不妨深入探討機器學習管道中的每一個元件。

Workload Characterization:OtterTune使用DBMS的內部執行時間度量指標來描述工作負載的行為特性。這些度量指標準確地表達了工作負載,因為它們採集了運行時行為的許多方面。然而,許多度量指標是冗餘的:有些是以不同單位記錄的同一個度量值,有些則表示DBMS中數值高度關聯的獨立部分。精簡冗餘的度量指標很重要,因為這降低了使用它們的機器學習模型的複雜性。為此,我們基於關聯模式,將DBMS的測量指標分成聚類(cluster)。然後,我們從每個聚類中選擇一個代表性度量指標,具體來說是最靠近聚類中心的那個度量指標。機器學習管道中的後續組件使用這些度量指標。

Knob Identification:DBMS可能有數百個按鈕,但只有一小批按鈕會影響DBMS的效能。 OtterTune使用一種流行的特徵選擇技術(名為Lasso),決定哪些按鈕顯著影響系統的整體效能。透過將此技術運用於資料庫中的數據,OtterTune可識別DBMS的按鈕重要性次序。

隨後,OtterTune得決定在建議配置時要使用多少個按鈕。使用太多的按鈕大大增加了OtterTune的最佳化時間。使用太少的按鈕又讓OtterTune無法找到最佳設定。為了使這個過程自動化,OtterTune使用了一種增量方法。它逐步增加用於調優會話中的按鈕數量。這種方法讓OtterTune得以為一小批最重要的按鈕探究和優化配置,然後擴大範圍、考慮其他按鈕。

Automatic Tuner:Automated Tuning元件透過在每個觀察期之後執行分兩步驟的分析,決定OtterTune應該建議使用哪個配置。

首先,系統使用針對Workload Characterization元件中識別的度量指標的效能數據,從最能表示目標DBMS工作負載的先前調優會話識別工作負載。它將會話的測量指標與來自先前工作負載的測量指標進行比較,看看哪些對不同的按鈕設定有類似的反應。

然後,OtterTune選擇另一個按鈕配置來試試看。它使統計模型適合已收集的數據,以及來自資料庫中最相似的工作負載的數據。此模型讓OtterTune可以預測DBMS使用每一種可能的配置會有怎樣的效能。 OtterTune優化下一個配置,在探索(收集資訊以改善模型)和利用(盡可能在特定度量指標方面表現不俗)之間求得平衡。

實作

OtterTune是用Python寫的。

就Workload Characterization和Knob Identification這兩個元件而言,執行階段效能並不是擔心的主要問題,於是我們用scikit-learn實作了對應的機器學習演算法。這些演算法在後台進程中運行,一旦OtterTune的資料庫中有了新的數據,就會整合新數據。

至於Automatic Tuner,機器學習演算法位於關鍵路徑上。它們在每次觀察期後運行,整合新數據,這樣OtterTune可以選擇一個按鈕配置接下來嘗試。由於效能是個考慮因素,我們使用TensorFlow實作了這些演算法。

為了收集DBMS硬體方面的資料、按鈕配置和執行時間效能度量指標,我們將OtterTune的控制器與OLTP-Bench基準測試框架整合起來。

評估

為了評估,我們針對MySQL和Postgres的效能,將OtterTune選擇的最佳配置與下列配置進行了比較:

  • 預設:DBMS提供的設定
  • 調優腳本:開源調優顧問工具產生的設定
  • DBA:資料庫管理員產生的設定
  • RDS:為DBMS客​​製化的配置,由Amazon RD管理,部署在同樣類型的EC2實例上。

我們在Amazon EC2 Spot Instances(現貨實例)上進行了所有的試驗。我們在兩個實例上進行了每個試驗:一個實例用於OtterTune的控制器,另一個用於部署的目標DBMS系統。我們分別使用了m4.large和m3.xlarge實例類型。我們將OtterTune的調優管理器和資料資料庫部署在了搭載20個核心、128GB記憶體的本機伺服器上。

我們使用了TPC-C工作負載,這是評估線上事務處理(OLTP)系統效能的業界標準。

針對我們在試驗中使用的每個資料庫:MySQL和Postgres,我們測量了延遲和吞吐量。下面幾張圖顯示了結果。第一張圖顯示了第99個百分位延遲的數量,這表示「在最糟糕情況下」事務完成所花費的時間。第二張圖顯示了吞吐量的結果,以每秒完成的交易平均數量來測量。

 

MySQL的結果:

機器學習是否會使資料庫管理系統的維運人員失業?

#將OtterTune產生的最佳配置與調優腳本和RDS產生的配置進行比較,就會發現:如果使用OtterTune配置,MySQL的延遲縮短了約60%,吞吐量提升了35%。 OtterTune也產生了結果與資料庫管理員選擇的配置一樣好的配置。

少數幾個MySQL的按鈕對TPC-C工作負載的效能有重大影響。 OtterTune和資料庫管理員產生的配置為這每一個按鈕提供了很好的設定。由於為一個按鈕提供了未達到最佳標準的設置,RDS的表現要遜色一點。由於只修改了一個按鈕,調優腳本的配置表現最差。

Postgres的結果:

機器學習是否會使資料庫管理系統的維運人員失業?

#就延遲而言,OtterTune、調優工具、資料庫管理和RDS產生的配置都比Postgres的預設設定有了相似的改進。我們或許可以將此歸因於網路上OLTP-Bench的客戶機和DBMS之間的往返所需的開銷。至於吞吐量,如果使用OtterTune建議的配置,Postgres的效能比資料庫管理員和調優腳本選擇的配置高出了約12%,比RDS更是高出了約32%。

類似MySQL,只有少數幾個按鈕對Postgres的效能有重大影響。 OtterTune、資料庫管理員、調優腳本和RDS產生的配置都修改了這些按鈕,大多數提供了相當好的設定。

結束語

OtterTune使得為DBMS的配置按鈕找到合適的設定這個過程實現了自動化。為了調優新部署的DBMS,它重複使用從先前的調優會話收集而來的訓練資料。由於OtterTune不需要產生用於訓練機器學習模型的初始資料集,因而顯著縮短了調優時間。

接下來是什麼?為了適應部署的DBaaS越來越流行這個狀況(無法遠端存取DBMS的主機系統),OtterTune很快就能夠自動偵測目標DMBS的硬體功能,而不需要遠端存取。

想了解OtterTune方面的更多細節,請參考我們的論文或放在GitHub上的程式碼。請關注這個網站(http://ottertune.cs.cmu.edu/),我們很快就會推出OtterTune這項線上調優服務。
作者簡介:

達娜·範·阿肯(Dana Van Aken)是卡內基·梅隆大學的電腦學博士生,指導教授是安德魯·帕夫洛博士。

安迪·帕夫洛(Andy Pavlo)是卡內基·梅隆大學的電腦學系資料庫學助理教授。

傑夫·戈登(Geoff Gordon)是卡內基·梅隆大學的副教授兼機器學習系教育部副主任。

以上是機器學習是否會使資料庫管理系統的維運人員失業?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:Linux就该这么学。如有侵權,請聯絡admin@php.cn刪除
Linux系統管理員的主要任務是什麼?Linux系統管理員的主要任務是什麼?Apr 19, 2025 am 12:23 AM

Linux系統管理員的主要任務包括系統監控與性能調優、用戶管理、軟件包管理、安全管理與備份、故障排查與解決、性能優化與最佳實踐。 1.使用top、htop等工具監控系統性能,並進行調優。 2.通過useradd等命令管理用戶賬戶和權限。 3.利用apt、yum管理軟件包,確保系統更新和安全。 4.配置防火牆、監控日誌、進行數據備份以確保系統安全。 5.通過日誌分析和工具使用進行故障排查和解決。 6.優化內核參數和應用配置,遵循最佳實踐提升系統性能和穩定性。

很難學習Linux嗎?很難學習Linux嗎?Apr 18, 2025 am 12:23 AM

學習Linux並不難。 1.Linux是一個開源操作系統,基於Unix,廣泛應用於服務器、嵌入式系統和個人電腦。 2.理解文件系統和權限管理是關鍵,文件系統是層次化的,權限包括讀、寫和執行。 3.包管理系統如apt和dnf使得軟件管理方便。 4.進程管理通過ps和top命令實現。 5.從基本命令如mkdir、cd、touch和nano開始學習,再嘗試高級用法如shell腳本和文本處理。 6.常見錯誤如權限問題可以通過sudo和chmod解決。 7.性能優化建議包括使用htop監控資源、清理不必要文件和使用sy

Linux管理員的薪水是多少?Linux管理員的薪水是多少?Apr 17, 2025 am 12:24 AM

Linux管理員的平均年薪在美國為75,000至95,000美元,歐洲為40,000至60,000歐元。提升薪資可以通過:1.持續學習新技術,如雲計算和容器技術;2.積累項目經驗並建立Portfolio;3.建立職業網絡,拓展人脈。

Linux的主要目的是什麼?Linux的主要目的是什麼?Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服務器操作系統,2.嵌入式系統,3.桌面操作系統,4.開發和測試環境。 Linux在這些領域表現出色,提供了穩定性、安全性和高效的開發工具。

互聯網在Linux上運行嗎?互聯網在Linux上運行嗎?Apr 14, 2025 am 12:03 AM

互聯網運行不依賴單一操作系統,但Linux在其中扮演重要角色。 Linux廣泛應用於服務器和網絡設備,因其穩定性、安全性和可擴展性受歡迎。

Linux操作是什麼?Linux操作是什麼?Apr 13, 2025 am 12:20 AM

Linux操作系統的核心是其命令行界面,通過命令行可以執行各種操作。 1.文件和目錄操作使用ls、cd、mkdir、rm等命令管理文件和目錄。 2.用戶和權限管理通過useradd、passwd、chmod等命令確保系統安全和資源分配。 3.進程管理使用ps、kill等命令監控和控制系統進程。 4.網絡操作包括ping、ifconfig、ssh等命令配置和管理網絡連接。 5.系統監控和維護通過top、df、du等命令了解系統運行狀態和資源使用情況。

使用Linux別名提高自定義命令快捷方式的生產率使用Linux別名提高自定義命令快捷方式的生產率Apr 12, 2025 am 11:43 AM

介紹 Linux是一個強大的操作系統,由於其靈活性和效率,開發人員,系統管理員和電源用戶都喜歡。但是,經常使用長而復雜的命令可能是乏味的

Linux實際上有什麼好處?Linux實際上有什麼好處?Apr 12, 2025 am 12:20 AM

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

MantisBT

MantisBT

Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

將Eclipse與SAP NetWeaver應用伺服器整合。

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )專業的PHP整合開發工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器