怎么看mysql占用過(guò)高 查看mysql占用空間

mysqlcpu平均使用率

MySQL是一款常用的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它的 CPU 平均使用率指的是 MySQL 進(jìn)程在某一時(shí)間段內(nèi) CPU 的平均使用率。通常情況下,MySQL CPU 平均使用率應(yīng)該保持在合理的范圍內(nèi),過(guò)高的 CPU 使用率可能會(huì)導(dǎo)致 MySQL 性能下降。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開(kāi)發(fā)等業(yè)務(wù)。幫助企業(yè)客戶(hù)真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。創(chuàng)新互聯(lián)是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開(kāi)放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來(lái)的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶(hù)帶來(lái)驚喜。創(chuàng)新互聯(lián)推出墨江免費(fèi)做網(wǎng)站回饋大家。

如果你想要查看 MySQL CPU 平均使用率,可以使用以下方法:

使用 MySQL 的狀態(tài)監(jiān)控工具:MySQL 提供了一些狀態(tài)監(jiān)控工具,如 mysqladmin、mysqltuner 等,這些工具可以幫助你查看 MySQL 的 CPU 使用情況。

Mysql數(shù)據(jù)庫(kù)CPU占用過(guò)高原因排查 show processlist

mysql服務(wù)器最近偶爾出現(xiàn)cpu百分百居高不下的情況,所以需要進(jìn)行分析

兄弟命令 show processlist;只列出前100條,如果想全列出請(qǐng)使用show full processlist;

先 簡(jiǎn)單說(shuō)一下各列的含義和用途:

正在將表中修改的數(shù)據(jù)刷新到磁盤(pán)中,同時(shí)正在關(guān)閉已經(jīng)用完的表。這是一個(gè)很快的操作,如果不是這樣的話(huà),就應(yīng)該確認(rèn)磁盤(pán)空間是否已經(jīng)滿(mǎn)了或者磁盤(pán)是否正處于重負(fù)中。

Connect Out

復(fù)制從服務(wù)器正在連接主服務(wù)器。

Copying to tmp table on disk

由于臨時(shí)結(jié)果集大于 tmp_table_size,正在將臨時(shí)表從內(nèi)存存儲(chǔ)轉(zhuǎn)為磁盤(pán)存儲(chǔ)以此節(jié)省內(nèi)存。

Creating tmp table

正在創(chuàng)建臨時(shí)表以存放部分查詢(xún)結(jié)果。

deleting from main table

服務(wù)器正在執(zhí)行多表刪除中的第一部分,剛刪除第一個(gè)表。

deleting from reference tables

服務(wù)器正在執(zhí)行多表刪除中的第二部分,正在刪除其他表的記錄。

Flushing tables

正在執(zhí)行 FLUSH TABLES,等待其他線程關(guān)閉數(shù)據(jù)表。

Killed

發(fā)送了一個(gè)kill請(qǐng)求給某線程,那么這個(gè)線程將會(huì)檢查kill標(biāo)志位,同時(shí)會(huì)放棄下一個(gè)kill請(qǐng)求。MySQL會(huì)在每次的主循環(huán)中檢查kill標(biāo)志 位,不過(guò)有些情況下該線程可能會(huì)過(guò)一小段才能死掉。如果該線程程被其他線程鎖住了,那么kill請(qǐng)求會(huì)在鎖釋放時(shí)馬上生效。

Locked

被其他查詢(xún)鎖住了。

Sending data

正在處理 SELECT 查詢(xún)的記錄,同時(shí)正在把結(jié)果發(fā)送給客戶(hù)端。

Sorting for group

正在為 GROUP BY 做排序。

Sorting for order

正在為 ORDER BY 做排序。

Opening tables

這個(gè)過(guò)程應(yīng)該會(huì)很快,除非受到其他因素的干擾。例如,在執(zhí) ALTER TABLE 或 LOCK TABLE 語(yǔ)句行完以前,數(shù)據(jù)表無(wú)法被其他線程打開(kāi)。 正嘗試打開(kāi)一個(gè)表。

Removing duplicates

正在執(zhí)行一個(gè) SELECT DISTINCT 方式的查詢(xún),但是MySQL無(wú)法在前一個(gè)階段優(yōu)化掉那些重復(fù)的記錄。因此,MySQL需要再次去掉重復(fù)的記錄,然后再把結(jié)果發(fā)送給客戶(hù)端。

Reopen table

獲得了對(duì)一個(gè)表的鎖,但是必須在表結(jié)構(gòu)修改之后才能獲得這個(gè)鎖。已經(jīng)釋放鎖,關(guān)閉數(shù)據(jù)表,正嘗試重新打開(kāi)數(shù)據(jù)表。

Repair by sorting

修復(fù)指令正在排序以創(chuàng)建索引。

Repair with keycache

修復(fù)指令正在利用索引緩存一個(gè)一個(gè)地創(chuàng)建新索引。它會(huì)比 Repair by sorting 慢些。

Searching rows for update

正在講符合條件的記錄找出來(lái)以備更新。它必須在 UPDATE 要修改相關(guān)的記錄之前就完成了。

Sleeping

正在等待客戶(hù)端發(fā)送新請(qǐng)求.

System lock

正在等待取得一個(gè)外部的系統(tǒng)鎖。如果當(dāng)前沒(méi)有運(yùn)行多個(gè) mysqld 服務(wù)器同時(shí)請(qǐng)求同一個(gè)表,那么可以通過(guò)增加 --skip-external-locking參數(shù)來(lái)禁止外部系統(tǒng)鎖。

U pgrading lock

INSERT DELAYED 正在嘗試取得一個(gè)鎖表以插入新記錄。

Updating

正在搜索匹配的記錄,并且修改它們。

User Lock

正在等待 GET_LOCK()。

Waiting for tables

該線程得到通知,數(shù)據(jù)表結(jié)構(gòu)已經(jīng)被修改了,需要重新打開(kāi)數(shù)據(jù)表以取得新的結(jié)構(gòu)。然后,為了能的重新打開(kāi)數(shù)據(jù)表,必須等到所有其他線程關(guān)閉這個(gè)表。以下幾種 情況下會(huì)產(chǎn)生這個(gè)通知:FLUSH TABLES tbl_name, ALTER TABLE, RENAME TABLE, REPAIR TABLE, ANALYZE TABLE, 或 OPTIMIZE TABLE。

waiting for handler insert

INSERT DELAYED 已經(jīng)處理完了所有待處理的插入操作,正在等待新的請(qǐng)求。

大部分狀態(tài)對(duì)應(yīng)很快的操作,只要有一個(gè)線程保持同一個(gè)狀態(tài)好幾秒鐘,那么可能是有問(wèn)題發(fā)生了,需要檢查一下。

還有其他的狀態(tài)沒(méi)在上面中列出來(lái),不過(guò)它們大部分只是在查看服務(wù)器是否有存在錯(cuò)誤是才用得著。

文章轉(zhuǎn)自:

MySQL 內(nèi)存占用總是太高,你需要立即進(jìn)行這些操作……

生產(chǎn)環(huán)境中,MySQL 不經(jīng)意間吃掉全部的內(nèi)容,然后開(kāi)始吃掉 SWAP,性能一降再降,怎么辦?

可以從下面三點(diǎn)查看原因:

MySQL 使用內(nèi)存,有兩個(gè)途徑。

永久占用的內(nèi)容

比如全局緩沖區(qū)(Global Buffer)類(lèi)別,是在服務(wù)器啟動(dòng)期間從操作系統(tǒng)獲得的,不會(huì)釋放到任何一個(gè)別的進(jìn)程。

動(dòng)態(tài)請(qǐng)求的內(nèi)存

線程緩沖區(qū)由MySQL使用,它是在處理新查詢(xún)時(shí)從操作系統(tǒng)請(qǐng)求的內(nèi)存。在執(zhí)行查詢(xún)之后,該內(nèi)存被釋放回操作系統(tǒng)。

這意味著 MySQL 的內(nèi)存使用,是 全局緩沖區(qū) 加上 線程緩沖區(qū) 以及 允許的最大連接數(shù) 。

對(duì)于專(zhuān)用數(shù)據(jù)庫(kù)服務(wù)器,該值需要保持在服務(wù)器內(nèi)存的90%以下。在共享服務(wù)器的情況下,它應(yīng)該保持在服務(wù)器內(nèi)存的50%以下。

檢查一下 MySQL 設(shè)置,有助于確定內(nèi)存使用情況,從而為 MySQL 分配合適的值。

一個(gè)近似的公式:

當(dāng)網(wǎng)站受到攻擊時(shí),有可能在短時(shí)間內(nèi)建立異常高的連接數(shù)量。MySQL 中的 PROCESSLIST 可用于檢測(cè)頂級(jí)用戶(hù)并阻止對(duì)濫用連接的訪問(wèn)。

找出查詢(xún)需要很長(zhǎng)時(shí)間才能執(zhí)行的語(yǔ)句,因?yàn)檫@些查詢(xún)需要進(jìn)一步優(yōu)化服務(wù)器才能更好地執(zhí)行,可以通過(guò)服務(wù)器查詢(xún)?nèi)罩具M(jìn)行識(shí)別。由于查詢(xún)速度慢,導(dǎo)致磁盤(pán)讀取較多,導(dǎo)致內(nèi)存和CPU使用率較高,影響服務(wù)器性能。

最后,到了加內(nèi)存條的時(shí)候了。雖然在優(yōu)化數(shù)據(jù)庫(kù)設(shè)置之后,服務(wù)器會(huì)不斷地路由到使用交換內(nèi)存,但也必須增加內(nèi)存。俗話(huà)說(shuō):“巧婦難為無(wú)米之炊”,就是這個(gè)意思。

上面說(shuō)的這些方向,大家可以在實(shí)際操作中驗(yàn)證體會(huì),希望大家在數(shù)據(jù)庫(kù)優(yōu)化的路上,麻溜順暢,砥礪前行。

如何找出Mysql中CPU占用高的查詢(xún)

根據(jù)返回結(jié)果中的PROCESLIST_INFO等信息,來(lái)判斷其執(zhí)行的語(yǔ)句是否可以進(jìn)行優(yōu)化

如果覺(jué)得先從分析線程入手比較麻煩,也可以直接通過(guò)查詢(xún)當(dāng)前正在執(zhí)行的查詢(xún)?nèi)胧?/p>

直接找出當(dāng)前下大執(zhí)行的查詢(xún),按執(zhí)行時(shí)間倒充值,占用CPU高的查詢(xún)往往耗時(shí)也比較長(zhǎng)

Mysql thread 與 OS thread

mysql show processlist排查問(wèn)題

文章標(biāo)題:怎么看mysql占用過(guò)高 查看mysql占用空間
當(dāng)前網(wǎng)址:http://bm7419.com/article16/dohgidg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷(xiāo)推廣、手機(jī)網(wǎng)站建設(shè)、定制網(wǎng)站、App開(kāi)發(fā)、關(guān)鍵詞優(yōu)化、網(wǎng)站策劃

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

微信小程序開(kāi)發(fā)