您好,登錄后才能下訂單哦!
本文主要給大家介紹MySQL8.0的特點資源管理詳解,希望可以給大家補充和更新些知識,如有其它問題需要了解的可以持續(xù)在億速云行業(yè)資訊里面關注我的更新文章的。
MySQL支持資源組的創(chuàng)建和管理,并允許將云服務器內(nèi)運行的線程分配給特定組,以便線程根據(jù)組可用的資源執(zhí)行。組屬性可以控制其資源,以啟用或限制組中線程的資源消耗。DBA可以根據(jù)不同的工作負載修改這些屬性。
目前,CPU時間是可管理的資源,由“ 虛擬CPU ”的概念表示為包括CPU核心,超線程,硬件線程等的術語。服務器在啟動時確定可用的虛擬CPU數(shù)量,具有適當權限的數(shù)據(jù)庫管理員可以將這些CPU與資源組關聯(lián),并將線程分配給組。
例如,要管理不需要以高優(yōu)先級執(zhí)行的批處理作業(yè)的執(zhí)行,DBA可以創(chuàng)建 Batch資源組,并根據(jù)服務器的繁忙程度向上或向下調(diào)整其優(yōu)先級。(也許分配給該組的批處理作業(yè)應該在白天以較低的優(yōu)先級運行,在夜間以較高的優(yōu)先級運行。)DBA還可以調(diào)整該組可用的CPU集??梢詥⒂没蚪媒M來控制線程是否可分配給它們。
1、資源組組件:
這些功能為MySQL中的資源組管理提供了SQL接口:
①:SQL語句支持創(chuàng)建,更改和刪除資源組,并允許將線程分配給資源組。優(yōu)化程序提示可以將單個語句分配給資源組。
②:資源組權限可控制哪些用戶可以執(zhí)行資源組操作。
③:該 INFORMATION_SCHEMA.RESOURCE_GROUPS 表公開了有關資源組定義的信息,而Performance Schema threads表顯示了每個線程的資源組分配。
④:狀態(tài)變量為每個管理SQL語句提供執(zhí)行計數(shù)。
2.資源組屬性
資源組具有定義組的屬性??梢栽趧?chuàng)建組時設置所有屬性。某些屬性在創(chuàng)建時被修復; 其他人可以在此后的任何時間修改。
如下屬性在資源組創(chuàng)建時定義,無法修改:
①:每個組都有一個名字。資源組名稱是表和列名稱之類的標識符,除非它們包含特殊字符或保留字,否則無需在SQL語句中引用。組名稱不區(qū)分大小寫,最長可達64個字符。
②:每個組都有一個類型,或者是 SYSTEM或者USER。資源組類型會影響可分配給組的優(yōu)先級值范圍,如稍后所述。此屬性與允許的優(yōu)先級的差異一起使得能夠識別系統(tǒng)線程,以便保護它們免于針對用戶線程爭用CPU資源。
注意:系統(tǒng)和用戶線程對應于Performance Schema threads表中列出的后臺和前臺線程 。
如下這些屬性在資源組創(chuàng)建時定義,并且可以在以后的任何時間進行修改:
①:CPU親緣關系是資源組可以使用的一組虛擬CPU。親和關系可以是可用CPU的任何非空子集。如果組沒有親和力,則可以使用所有可用的CPU。
②:線程優(yōu)先級是分配給資源組的線程的執(zhí)行優(yōu)先級。優(yōu)先級值的范圍從-20(最高優(yōu)先級)到19(最低優(yōu)先級)。系統(tǒng)組和用戶組的默認優(yōu)先級均為0。
③:可以啟用或禁用每個組,從而使管理員可以控制線程分配。線程只能分配給已啟用的組。
注意:
系統(tǒng)組的優(yōu)先級高于用戶組,確保用戶線程的優(yōu)先級不會高于系統(tǒng)線程:
①:對于系統(tǒng)資源組,允許的優(yōu)先級范圍是-20到0。
②:對于用戶資源組,允許的優(yōu)先級范圍是0到19。
3、資源組管理:
默認情況下,有一個系統(tǒng)組和一個用戶組,分別名為SYS_default和 USR_default。無法刪除這些默認組,并且無法修改其屬性。每個默認組都沒有CPU關聯(lián),優(yōu)先級為0。
注意:
①:新創(chuàng)建的系統(tǒng)和用戶線程分別分配給 SYS_default和 USR_default組。
②:對于用戶定義的資源組,將在創(chuàng)建組時分配所有屬性。創(chuàng)建組后,可以修改其屬性,但名稱和類型屬性除外。
③:創(chuàng)建和管理資源組需要有:RESOURCE_GROUP_ADMIN權限
--查看mysql默認的組:一個用戶組和系統(tǒng)組:
mysql> SELECT * FROM INFORMATION_SCHEMA.RESOURCE_GROUPS\G *************************** 1. row *************************** RESOURCE_GROUP_NAME: USR_default RESOURCE_GROUP_TYPE: USER RESOURCE_GROUP_ENABLED: 1 VCPU_IDS: 0-0 THREAD_PRIORITY: 0 *************************** 2. row *************************** RESOURCE_GROUP_NAME: SYS_default RESOURCE_GROUP_TYPE: SYSTEM RESOURCE_GROUP_ENABLED: 1 VCPU_IDS: 0-0 THREAD_PRIORITY: 0 2 rows in set (0.01 sec)
其中:THREAD_PRIORITY值是0,表示默認的優(yōu)先級; VCPU_IDS值示出了包括所有可用CPU的范圍內(nèi);對于默認組,顯示的值取決于運行MySQL服務器的系統(tǒng)。
例子:創(chuàng)建一個用戶資源組: CREATE RESOURCE GROUP Batch TYPE = USER VCPU = 2-3 THREAD_PRIORITY = 10; mysql> SELECT * FROM INFORMATION_SCHEMA.RESOURCE_GROUPS WHERE RESOURCE_GROUP_NAME = 'Batch'\G ---查看這個用戶資源組 *************************** 1. row *************************** RESOURCE_GROUP_NAME: Batch RESOURCE_GROUP_TYPE: USER RESOURCE_GROUP_ENABLED: 1 VCPU_IDS: 2-3 THREAD_PRIORITY: 10
--:要將線程分配給Batch組,請執(zhí)行以下操作:
SET RESOURCE GROUP Batch FOR thread_id;
--:如果自己的當前線程應該在 Batch組中,請在會話中執(zhí)行以下語句:
SET RESOURCE GROUP Batch;
(此后,會話中的語句將使用Batch組資源執(zhí)行 。)
例子2:要使用Batch組執(zhí)行單個語句 ,請使用 RESOURCE_GROUP優(yōu)化程序提示:
INSERT /*+ RESOURCE_GROUP(Batch) */ INTO t2 VALUES(2);
例子3:對于系統(tǒng)高負載的時間,減少分配給組的CPU數(shù)量,降低其優(yōu)先級,或者(如圖所示):
ALTER RESOURCE GROUP Batch VCPU = 3 THREAD_PRIORITY = 19;
例子4:在系統(tǒng)負載較輕的情況下,增加分配給組的CPU數(shù)量,提高其優(yōu)先級,或者(如圖所示):
ALTER RESOURCE GROUP Batch VCPU = 0-3 THREAD_PRIORITY = 0;
4、資源組復制
資源組管理是發(fā)生它的服務器的本地管理。資源組SQL語句和對resource_groups數(shù)據(jù)字典表的修改 不會寫入二進制日志,也不會被復制。
5、資源組的限制:
①:如果安裝了線程池插件,則資源組不可用。
②:資源組在macOS上不可用,它不提供用于將CPU綁定到線程的API。
③:在FreeBSD和Solaris上,忽略資源組線程優(yōu)先級。(實際上,所有線程都以優(yōu)先級0運行。)嘗試更改優(yōu)先級會導致警告:
④:在Linux上,除非CAP_SYS_NICE設置了功能,否則將忽略資源組線程優(yōu)先級。Linux系統(tǒng)的MySQL軟件包安裝程序應該設置此功能。對于使用壓縮 tar文件二進制分發(fā)或從源安裝,CAP_SYS_NICE可以使用setcap 命令手動設置該功能,指定mysqld可執(zhí)行文件的路徑名 (這需要 sudo訪問)。您可以使用getcap檢查功能。例如:
shell> sudo setcap cap_sys_nice+ep ./bin/mysqld
shell> getcap ./bin/mysqld
./bin/mysqld = cap_sys_nice+ep
⑤:在Windows上,線程以五個線程優(yōu)先級之一運行。資源組線程優(yōu)先級范圍-20到19映射到這些級別。
看了以上關于MySQL8.0的特點資源管理詳解,希望能給大家在實際運用中帶來一定的幫助。本文由于篇幅有限,難免會有不足和需要補充的地方,如有需要更加專業(yè)的解答,可在官網(wǎng)聯(lián)系我們的24小時售前售后,隨時幫您解答問題的。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。