最新數(shù)據(jù)監(jiān)控項(xiàng):
Aborted Clients
因客戶(hù)端沒(méi)有正確地關(guān)閉而被丟棄的連接的個(gè)數(shù),數(shù)字增大意味著有客戶(hù)端成功建立連接但很快就斷開(kāi)或者被終止,一般發(fā)生在網(wǎng)絡(luò)不穩(wěn)當(dāng)?shù)沫h(huán)境中,主要可能性又:1、客戶(hù)端沒(méi)有主動(dòng)關(guān)閉mysql連接mysql_close() 2、wait_timeout設(shè)置時(shí)間短被mysql干掉 3、客戶(hù)端由于某些原因被干掉
Aborted Connects
試圖連接MySQL服務(wù)器但沒(méi)有成功的次數(shù),當(dāng)有大量鏈接連接不上mysql的時(shí)候數(shù)值激增,主要原因:沒(méi)有授權(quán)或者密碼不對(duì),一般錯(cuò)誤日志會(huì)有改提示(access denied for 'user'@'host') 2、連接數(shù)滿(mǎn)了,一般錯(cuò)誤包含(too many cononection) 3、超過(guò)了鏈接時(shí)間限制,主要有這個(gè)參數(shù)控制(connect_timeout),mysql默認(rèn)是10s,基本除非網(wǎng)絡(luò)極端不好,一般不會(huì)超時(shí)
Active Transactions
正在執(zhí)行的事務(wù)數(shù)量
Adaptive Hash Memory
自適應(yīng)哈希索引占用的內(nèi)存大小
Additional Pool Alloc
分配給額外內(nèi)存的總量,單位字節(jié)
Binary Log Space
二進(jìn)制日志的大小
Binlog Cache Disk Use
超過(guò)binlog_cache_size設(shè)置的緩存大小,使用磁盤(pán)臨時(shí)文件的事務(wù)的個(gè)數(shù)
Binlog Cache Use
保存在二進(jìn)制日志緩存里的事務(wù)的個(gè)數(shù)
Bytes Received
收到字節(jié)數(shù)
Bytes Sent
發(fā)送字節(jié)數(shù)
Com Delete
過(guò)去的一秒內(nèi)執(zhí)行刪除命令的次數(shù)
Com Delete Multi
過(guò)去的一秒內(nèi)執(zhí)行多重刪除命令的次數(shù)
Com Insert
過(guò)去的一秒內(nèi)執(zhí)行插入語(yǔ)句的命令次數(shù)
Com Insert Select
過(guò)去的一秒內(nèi)執(zhí)行查詢(xún)插入命令的次數(shù)
Com Load
過(guò)去的一秒內(nèi)執(zhí)行l(wèi)oad命令的次數(shù)
Com Replace
過(guò)去的一秒內(nèi)執(zhí)行replace命令的次數(shù)
Com Replace Select
過(guò)去的一秒內(nèi)執(zhí)行replace select的次數(shù)
Com Select
過(guò)去的一秒內(nèi)執(zhí)行select命令的次數(shù)
Com Update
過(guò)去的一秒內(nèi)執(zhí)行update命令的次數(shù)
Com Update Multi
過(guò)去的一秒內(nèi)執(zhí)行多重更新命令的次數(shù)
Connections
所有嘗試連接到mysql server的連接數(shù),關(guān)鍵時(shí)不管成功還是失敗。所以這個(gè)數(shù)值的增量并不等于show processlist的數(shù)值,這點(diǎn)需要注意。
Created Tmp Disk Tables
MySQL服務(wù)器在對(duì)SQL查詢(xún)語(yǔ)句進(jìn)行處理時(shí)在磁盤(pán)上創(chuàng)建的臨時(shí)數(shù)據(jù)表的個(gè)數(shù),如果這個(gè)值比較高,可能的原因:
a.查詢(xún)?cè)谶x擇BLOB或者TEXT列的時(shí)候創(chuàng)建了臨時(shí)表
b.tmp_table_size和max_heap_table_size的值也許太小
Created Tmp Files
MySQL服務(wù)器所創(chuàng)建的臨時(shí)文件的個(gè)數(shù)
Created Tmp Tables
MySQL服務(wù)器在對(duì)SQL查詢(xún)語(yǔ)句進(jìn)行處理時(shí)在內(nèi)存里創(chuàng)建的臨時(shí)數(shù)據(jù)表的個(gè)數(shù).
如果該值太高,唯一的解決辦法是:優(yōu)化查詢(xún)語(yǔ)句.
Current Transactions
當(dāng)前的事務(wù)數(shù)量(包括not started,ACTIVE,...等各種狀態(tài))
Database Pages
數(shù)據(jù)頁(yè)大小
Dictionary Cache Memory
File Fsyncs
調(diào)用fsync()函數(shù)的次數(shù).與innodb_flush_log_at_trx_commit值的設(shè)置有關(guān).
File Reads
顯示每秒文件的讀次數(shù)
File System Memory
文件系統(tǒng)剩余的內(nèi)存
File Writes
顯示每秒文件的寫(xiě)次數(shù)
Free Pages
空閑頁(yè)大小
Handler Commit
提交一個(gè)事務(wù)的請(qǐng)求的個(gè)數(shù)
Handler Delete
從數(shù)據(jù)表刪除一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
Handler Read First
讀取索引中第一個(gè)索引項(xiàng)的請(qǐng)求的個(gè)數(shù)
Handler Read Key
根據(jù)一個(gè)索引值而讀取一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
Handler Read Next
按索引順序讀取下一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
Handler Read Prev
按索引逆序讀取前一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
Handler Read Rnd
根據(jù)某個(gè)數(shù)據(jù)行的位置而讀取該數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
Handler Read Rnd Next
讀取下一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù).如果這個(gè)數(shù)字很高,就說(shuō)明有很多語(yǔ)句需要通過(guò)全表掃描才能完成或有很多查詢(xún)沒(méi)有使用適當(dāng)?shù)乃饕?/p>
Handler Rollback
回滾一個(gè)事務(wù)的請(qǐng)求的個(gè)數(shù)
Handler Savepoint
創(chuàng)建一個(gè)事務(wù)保存點(diǎn)的請(qǐng)求的個(gè)數(shù)
Handler Savepoint Rollback
回滾到一個(gè)事務(wù)保存點(diǎn)的請(qǐng)求的個(gè)數(shù).
Handler Update
對(duì)數(shù)據(jù)表里的一個(gè)數(shù)據(jù)行進(jìn)行修改的請(qǐng)求的個(gè)數(shù)
Handler Write
向數(shù)據(jù)表里插入一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
Hash Index Cells Total
散列索引單元總數(shù)
Hash Index Cells Used
散列索引單元已用數(shù)
History List
歷史記錄的長(zhǎng)度.位于InnoDB數(shù)據(jù)文件的撤銷(xiāo)空間里的未清除事務(wù)的數(shù)目.當(dāng)一個(gè)事務(wù)執(zhí)行了更新并提交后,這個(gè)數(shù)字就會(huì)累加,當(dāng)清除進(jìn)程移除一個(gè)舊版本數(shù)據(jù)時(shí),它就會(huì)遞減.
Ibuf Cell Count
分段大小
Ibuf Free Cells
"自由列表"的長(zhǎng)度
Ibuf Inserts
插入的記錄數(shù)
Ibuf Merged
合并的頁(yè)的數(shù)量
Ibuf Merges
合并的次數(shù)
Ibuf Used Cells
插入緩沖區(qū)的大小
Innodb Locked Tables
所有事務(wù)鎖定的表的數(shù)量
Innodb Lock Structs
該圖形顯示了在innodb內(nèi)部有多少鎖結(jié)構(gòu)(不是死鎖).這大致與當(dāng)前事務(wù)鎖住的行數(shù)有關(guān)系.可以用來(lái)判斷是否存在鎖爭(zhēng)用.
Innodb Lock Wait Secs
顯示每秒處于鎖等待的innodb事務(wù)總數(shù).如果有一個(gè)非常大的值,應(yīng)該檢查L(zhǎng)OCK WAIT transactions,
Innodb Log Buffer Size
Innodb Row Lock Time
該模板讀取的Innodb_row_lock_time狀態(tài)變量,表示InnoDB引擎在每次申請(qǐng)數(shù)據(jù)行鎖定時(shí)等待的總時(shí)間(以毫秒為單位).
Innodb Row Lock Waits
讀取的Innodb_row_lock_waits狀態(tài)變量,表示InnoDB經(jīng)過(guò)這么長(zhǎng)時(shí)間才獲得一個(gè)行鎖.(毫秒)
Innodb Sem Waits
顯示當(dāng)前正在等待互斥量的InnoDB線(xiàn)程的數(shù)量.
Innodb Sem Wait Time Ms
顯示當(dāng)前正在等待互斥量的InnoDB線(xiàn)程的等待時(shí)間的總耗時(shí)(毫秒).
正常情況下,InnoDB Semaphores Wait Time和 InnoDB Semaphores Waits應(yīng)該是空的.除非服務(wù)器運(yùn)行著高并發(fā)的工作負(fù)載,它促使InnoDB采取讓操作系統(tǒng)等待的措施.信息位于SHOW ENGINE INNODB STATUS的SEMAPHORES片段.
其中innodb_sem_waits的值是多少,表示有多少線(xiàn)程在等待,而innodb_sem_wait_time_ms表示所有線(xiàn)程等待的時(shí)間,默認(rèn)單位是秒,在腳本中乘以1000,所以監(jiān)控圖中的單位是毫秒.
Innodb Tables In Use
所有事務(wù)用到的表的數(shù)量
Innodb Transactions
顯示了InnoDB事務(wù)相關(guān)的信息
Key Buf Bytes Unflushed
同Key_blocks_unused 鍵緩存里尚未被使用過(guò)的緩存塊的個(gè)數(shù)
Key Buf Bytes Used
同Key_blocks_used變量 鍵緩存里已經(jīng)被使用的緩存塊的個(gè)數(shù)
Key Buffer Size
鍵緩存大小
Key Read Requests
從鍵緩存讀出索引塊的讀操作的次數(shù)
Key Reads
從磁盤(pán)讀出索引塊的讀操作次數(shù)
Key Write Requests
向鍵緩存寫(xiě)一個(gè)索引塊的請(qǐng)求的個(gè)數(shù)
Key Writes
把索引塊寫(xiě)入磁盤(pán)的寫(xiě)操作的次數(shù)
Locked Transactions
鎖住的事務(wù)數(shù)量
Lock System Memory
鎖系統(tǒng)的內(nèi)存
Log Bytes Flushed
刷新日志字節(jié)數(shù)
Log Bytes Written
寫(xiě)入日志字節(jié)數(shù)
Log Writes
日志寫(xiě)入數(shù)量
Max Connections
允許同時(shí)保持在打開(kāi)狀態(tài)的客戶(hù)連接的最大個(gè)數(shù)
Max Used Connections
此前曾同時(shí)打開(kāi)處于打開(kāi)狀態(tài)的連接的最大個(gè)數(shù)
Modified Pages
"臟"數(shù)據(jù)頁(yè).如果臟數(shù)據(jù)頁(yè)太多,則需要檢查磁盤(pán)IO狀態(tài).
MySQL running slave
slave運(yùn)行狀態(tài)
Opened Tables
MySQL服務(wù)器已打開(kāi)的數(shù)據(jù)表總數(shù)(包括顯式定義的臨時(shí)表).如果這個(gè)值很高,應(yīng)該慎重考慮,是否加大數(shù)據(jù)表緩存
Open Files
當(dāng)前處于打開(kāi)狀態(tài)的文件的個(gè)數(shù),如果與open_files_limit接近,則應(yīng)該加大open_files_limit的值.
Open Tables
當(dāng)前處于打開(kāi)狀態(tài)的數(shù)據(jù)表的個(gè)數(shù).不包括TEMPORARY
Os Waits
操作系統(tǒng)等待時(shí)間
Page Hash Memory
每頁(yè)散列內(nèi)存
Pages Created
頁(yè)面創(chuàng)建數(shù)
Pages Read
頁(yè)面讀取數(shù)
Pages Written
頁(yè)面寫(xiě)入數(shù)
Pending Aio Log Ios
Pending Aio Sync Ios
Pending Buf Pool Flushes
緩沖池刷新等待數(shù)量
Pending Chkp Writes
Pending Ibuf Aio Reads
Pending Log Flushes
日志刷新等待數(shù)量
Pending Log Writes 日志寫(xiě)入等待數(shù)量
Pending Normal Aio Reads
Pending Normal Aio Writes
Pool Read Requests
連接池請(qǐng)求書(shū)
Pool Reads
連接池讀取數(shù)
Pool Size
連接池大小
Qcache Free Blocks
Query Cache 中目前還有多少剩余的blocks。如果該值顯示較大,則說(shuō)明Query Cache 中的內(nèi)存碎片較多了,可能需要尋找合適的機(jī)會(huì)進(jìn)行整理
Qcache Free Memory
Query Cache 中目前剩余的內(nèi)存大小。通過(guò)這個(gè)參數(shù)我們可以較為準(zhǔn)確的觀察出當(dāng)前系統(tǒng)中的Query Cache 內(nèi)存大小是否足夠,是需要增加還是過(guò)多了;
Qcache Hits
多少次命中。通過(guò)這個(gè)參數(shù)我們可以查看到Query Cache 的基本效果;表明查詢(xún)緩沖使用非常頻繁,如果該值較小反而會(huì)影響效率,那么可以考慮不用查詢(xún)緩沖;
Qcache Inserts
多少次未命中然后插入。通過(guò)“Qcache_hits”和“Qcache_inserts”兩個(gè)參數(shù)我們就可以算出Query Cache 的命中率,hits/inserts
Qcache Lowmem Prunes 多少條Query 因?yàn)閮?nèi)存不足而被清除出Query Cache。通過(guò)“Qcache_lowmem_prunes”和“Qcache_free_memory”相互結(jié)合,能夠更清楚的了解到我們系統(tǒng)中Query Cache 的內(nèi)存大小是否真的足夠,是否非常頻繁的出現(xiàn)因?yàn)閮?nèi)存不足而有Query 被換出
Qcache Not Cached 因?yàn)閝uery_cache_type 的設(shè)置或者不能被cache 的Query 的數(shù)量;
Qcache Queries In Cache
當(dāng)前Query Cache 中cache 的Query 數(shù)量;
Qcache Total Blocks
當(dāng)前Query Cache 中的block 數(shù)量
Query Cache Size
Qcache的大小
Query Time Count 00
Query Time Count 01
Query Time Count 02
Query Time Count 03
Query Time Count 04
Query Time Count 05
Query Time Count 06
Query Time Count 07
Query Time Count 08
Query Time Count 09
Query Time Count 10
Query Time Count 11
Query Time Count 12
Query Time Count 13
Query Time Total 00
Query Time Total 01
Query Time Total 02
Query Time Total 03
Query Time Total 04
Query Time Total 05
Query Time Total 06
Query Time Total 07
Query Time Total 08
Query Time Total 09
Query Time Total 10
Query Time Total 11
Query Time Total 12
Query Time Total 13
Questions
記錄了服務(wù)器收到的查詢(xún)和命令的總數(shù).(Com_*變量的總數(shù)不一定相等.)
Read Views
讀取的視圖數(shù)
Recovery System Memory
系統(tǒng)回收內(nèi)存數(shù)
Relay Log Space
中繼日志的大小
如果Binlog Cache Disk Use/Binlog Cache Use的值較大,那么應(yīng)該嘗試增加binlog_cache_size的大小.但是,也不要期望改善過(guò)多,如果寫(xiě)臨時(shí)文件的數(shù)量從每秒1個(gè)減少到每分鐘一個(gè),這已經(jīng)證明優(yōu)化的足夠好了.沒(méi)必要耗費(fèi)大量的內(nèi)存,來(lái)處理binlog_cache_size中的事務(wù).
Rows Deleted
刪除的行數(shù)
Rows Inserted
插入的函數(shù)
Rows Read
讀取的行數(shù)
Rows Updated
更新的行數(shù)
Select Full Join
沒(méi)有使用索引而完成的多表聯(lián)接操作的次數(shù).這種情況是性能殺手,最好去優(yōu)化sql.
Select Full Range Join
利用一個(gè)輔助性的參照表(reference table)上的區(qū)間搜索(range search)操作而完成的多數(shù)據(jù)表聯(lián)接操作的次數(shù).
該值表示使用了范圍查詢(xún)聯(lián)接表的次數(shù).
Select Range
利用第一個(gè)數(shù)據(jù)表上的某個(gè)區(qū)間而完成的多數(shù)據(jù)表聯(lián)接操作的次數(shù).
Select Range Check
該變量記錄了在聯(lián)接時(shí),對(duì)每一行數(shù)據(jù)重新檢查索引的查詢(xún)計(jì)劃的數(shù)量,它的開(kāi)銷(xiāo)很大.
如果該值較高或正在增加,說(shuō)明一些查詢(xún)沒(méi)有找到好索引.
Select Scan
通過(guò)對(duì)第一個(gè)數(shù)據(jù)表進(jìn)行全表掃描而完成的多數(shù)據(jù)表聯(lián)接操作的次數(shù).
Slave Lag
復(fù)制延遲
Slave Open Temp Tables
從服務(wù)器中的SQL線(xiàn)程曾經(jīng)打開(kāi)的臨時(shí)文件的個(gè)數(shù)
Slave Retried Transactions
從服務(wù)器中的SQL線(xiàn)程重新嘗試執(zhí)行一個(gè)事務(wù)的次數(shù)
Slave Running
從服務(wù)器的I/O線(xiàn)程和SQL線(xiàn)程是否在運(yùn)行
Slave Stopped
從服務(wù)器的I/O線(xiàn)程和SQL線(xiàn)程是否在停止
Slow Queries
慢查詢(xún)的次數(shù)(執(zhí)行時(shí)間超過(guò)long_query_time值)
Sort Merge Passes
查詢(xún)導(dǎo)致了文件排序的次數(shù).可以?xún)?yōu)化sql或者適當(dāng)增加sort_buffer_size變量
Sort Range
利用一個(gè)區(qū)間進(jìn)行的排序操作的次數(shù)
Sort Rows
對(duì)多少行排序
Sort Scan
利用一次全表掃作而完成的排序操作的次數(shù)
Spin Rounds
InnoDB內(nèi)部預(yù)設(shè)的互斥量信號(hào)數(shù)量
Spin Waits
InnoDB內(nèi)部對(duì)鎖進(jìn)行循環(huán)等待的數(shù)量(與innodb_sync_spin_loops參數(shù)有關(guān))
State Closing Tables
線(xiàn)程正在將已更改的表數(shù)據(jù)刷新到磁盤(pán)并關(guān)閉所使用的表。這應(yīng)該是一個(gè)快速的操作。如果沒(méi)有,請(qǐng)確認(rèn)您沒(méi)有已滿(mǎn)的磁盤(pán),并且磁盤(pán)沒(méi)有被大量使用。
State Copying To Tmp Table:
服務(wù)將表復(fù)制到內(nèi)存的的表
State End:
This occurs at the end but before the cleanup of ALTER TABLE, CREATE VIEW, DELETE, INSERT, SELECT, or UPDATE statements
State Freeing Items:線(xiàn)程執(zhí)行命令。在這種狀態(tài)下完成的某些項(xiàng)目的釋放涉及查詢(xún)緩存
State Init:
這發(fā)生在初始化表、刪除、插入、選擇或更新語(yǔ)句之前。服務(wù)器在這種狀態(tài)下進(jìn)行的行動(dòng)包括沖洗的二進(jìn)制日志,Innodb日志,和一些查詢(xún)緩存清理操作。
State Locked:
被鎖狀態(tài)
State Login:
連接線(xiàn)程的初始狀態(tài),直到成功地對(duì)客戶(hù)端進(jìn)行身份驗(yàn)證為止。
State None
什么都沒(méi)有的,空的,注意不是NULL狀態(tài)
State Other
其他
State Preparing:
是否在查詢(xún)執(zhí)行optimize命令期間
State Reading From Net:
網(wǎng)絡(luò)連接讀取狀態(tài)
State Sending Data:
線(xiàn)程正在讀取和處理SELECT語(yǔ)句的行,并向客戶(hù)機(jī)發(fā)送數(shù)據(jù)。因?yàn)樵谶@種狀態(tài)下發(fā)生的操作往往會(huì)執(zhí)行大量磁盤(pán)訪(fǎng)問(wèn)(讀取),因此它通常是給定查詢(xún)生命周期中最長(zhǎng)的運(yùn)行狀態(tài)。
State Sorting Result:
For a SELECT statement, this is similar to Creating sort index, but for nontemporary tables
State Statistics:
服務(wù)器正在計(jì)算統(tǒng)計(jì)數(shù)據(jù)以開(kāi)發(fā)查詢(xún)執(zhí)行計(jì)劃。如果線(xiàn)程在這種狀態(tài)下很長(zhǎng)時(shí)間,服務(wù)器可能是磁盤(pán)綁定執(zhí)行其他工作。
State Updating:
表示線(xiàn)程正在更新的行
State Writing To Net:
網(wǎng)絡(luò)連接寫(xiě)入狀態(tài)
Table Cache
表存儲(chǔ)量
Table Locks Immediate
無(wú)需等待就能夠立刻得到滿(mǎn)足的數(shù)據(jù)表鎖定請(qǐng)求的個(gè)數(shù)
Table Locks Waited
顯示了有多少表被鎖住了并且導(dǎo)致服務(wù)器級(jí)的鎖等待(存儲(chǔ)引擎級(jí)的鎖,如InnoDB行級(jí)鎖,不會(huì)使該變量增加).
如果這個(gè)值比較高或者正在增加,那么表明存在嚴(yán)重的并發(fā)瓶頸.
Thread Cache Size
線(xiàn)程緩存所能容納的線(xiàn)程的最大個(gè)數(shù).斷開(kāi)的mysql連接會(huì)放到這個(gè)緩存里,新建立的連接就會(huì)重復(fù)使用它們而不創(chuàng)建新的線(xiàn)程.
Thread Hash Memory
Threads Cached
mysql管理的線(xiàn)程池中還有多少可以被復(fù)用的資源
Threads Connected
我們經(jīng)常使用show processlist看見(jiàn)那個(gè)數(shù)值,現(xiàn)在正處于打開(kāi)狀態(tài)的連接的個(gè)數(shù)
Threads Created
為處理連接創(chuàng)建的線(xiàn)程總數(shù)(新創(chuàng)建的線(xiàn)程數(shù))
Threads Running
正在運(yùn)行的線(xiàn)程數(shù)
Total Mem Alloc
總的內(nèi)存分配
Total number of mysqld processes
mysql總進(jìn)程數(shù)
Uncheckpointed Bytes
顯示了未寫(xiě)入磁盤(pán)的數(shù)據(jù)量.如果該值的大小接近innodb_log_file_size * n 的總大小,則需要增加innodb_log_file_size的值,但是要注意,如果發(fā)生宕機(jī),則需要更長(zhǎng)的回復(fù)時(shí)間.(從redolog恢復(fù))
Unflushed Log
是log_bytes_written與log_bytes_flushed的差值,表示日志緩存區(qū)里還有多少數(shù)據(jù)沒(méi)被刷新到日志文件里.
如果這個(gè)差值超過(guò)了innodb_log_buffer_size設(shè)置的30%,則需要考慮是否加大該參數(shù)值.
圖形監(jiān)控項(xiàng):
InnoDB Adaptive Hash Index
顯示了“自適應(yīng)哈希索引”的使用情況,哈希索引只能用來(lái)搜索等值的查詢(xún).
1、Hash Index Cells Total
自適應(yīng)哈希表的槽數(shù)=innodb_buffer_pool_size/256
2、Hash Index Cells Used
用到自適應(yīng)哈希表的查詢(xún)個(gè)數(shù)
InnoDB Buffer Pool Activity
顯示Innodb緩沖池的內(nèi)部活動(dòng),頁(yè)的創(chuàng)建,讀取,寫(xiě)入.如果有突然的增加或者減少,需要檢查應(yīng)用
1、Pages Created
2、Pages Read
3、Pages Written
InnoDB Buffer Pool
1、Pool Size
InnoDB緩沖池的頁(yè)數(shù)量,每頁(yè)大小16K
2、Database Pages
數(shù)據(jù)頁(yè)大小
3、Free Pages
空閑頁(yè)大小
4、Modified Pages
"臟"數(shù)據(jù)頁(yè).如果臟數(shù)據(jù)頁(yè)太多,則需要檢查磁盤(pán)IO狀態(tài).
InnoDB Checkpoint Age
1、Uncheckpointed Bytes
顯示了未寫(xiě)入磁盤(pán)的數(shù)據(jù)量.如果該值的大小接近innodb_log_file_size * n 的總大小,則需要增加innodb_log_file_size的值,但是要注意,如果發(fā)生宕機(jī),則需要更長(zhǎng)的回復(fù)時(shí)間.(從redolog恢復(fù))
InnoDB Current Lock Waits
1、InnoDB Lock Wait Secs
顯示每秒處于鎖等待的innodb事務(wù)總數(shù).如果有一個(gè)非常大的值,應(yīng)該檢查L(zhǎng)OCK WAIT transactions,請(qǐng)看下面的模板
InnoDB I/O
1、File Reads
顯示每秒文件的讀次數(shù)
2、File Writes
顯示每秒文件的寫(xiě)次數(shù)
3、Log Writes
寫(xiě)日志的次數(shù)
4、File Fsyncs
調(diào)用fsync()函數(shù)的次數(shù).與innodb_flush_log_at_trx_commit值的設(shè)置有關(guān).
InnoDB I/O Pending
顯示了InnoDB掛起的同步或異步IO操作.如果掛起的操作太多,則需要更大的RAM,更大的緩沖池,更快的磁盤(pán).
1、Pending Aio Log Ios
2、Pending Aio Sync Ios
3、Pending Buf Pool Flushes
4、Pending Chkp Writes
5、Pending Ibuf Aio Reads
6、Pending Log Flushe
7、Pending Log Writes
8、Pending Normal Aio Reads
9、Pending Normal Aio Writes
InnoDB Insert Buffer
插入緩沖,并不是緩存的一部分,而是物理頁(yè),對(duì)于非聚集索引的插入或更新操作,不是每一次直接插入索引頁(yè).而是先判斷插入的非聚集索引頁(yè)是否在緩沖池中.如果在,則直接插入,如果不再,則先放入一個(gè)插入緩沖區(qū)中.然后再以一定的頻率執(zhí)行插入緩沖和非聚集索引頁(yè)子節(jié)點(diǎn)的合并操作.
使用條件:非聚集索引,非唯一
1、Ibuf Inserts
插入的記錄數(shù)
2、Ibuf Merged
合并的頁(yè)的數(shù)量
3、Ibuf Merges
合并的次數(shù)
如果merges/merged的值等于3/1,則代表插入緩沖對(duì)于非聚集索引頁(yè)的IO請(qǐng)求大約降低了3倍
InnoDB Insert Buffer Usage
1、Ibuf Cell Count
分段大小
2、Ibuf Used Cells
插入緩沖區(qū)的大小
3、Ibuf Free Cells
"自由列表"的長(zhǎng)度
InnoDB Internal Hash Memory Usage
顯示了InnoDB內(nèi)部各種哈希結(jié)構(gòu)(不可人工干預(yù)),占用的內(nèi)存大小.
1、Adaptive Hash Memory
自適應(yīng)哈希索引占用的內(nèi)存大小
2、Page Hash Memory
3、Dictionary Cache Memory
4、File System Memory
5、Lock System Memory
6、Recovery System Memory
7、Thread Hash Memory
InnoDB Lock Structures
1、InnoDB Lock Structs
該圖形顯示了在innodb內(nèi)部有多少鎖結(jié)構(gòu)(不是死鎖).這大致與當(dāng)前事務(wù)鎖住的行數(shù)有關(guān)系.可以用來(lái)判斷是否存在鎖爭(zhēng)用.
對(duì)于數(shù)量多少算好或者算壞,沒(méi)有硬性的規(guī)定.實(shí)際情況下,大量的事務(wù)在等待鎖,很明顯,該值越小越好.
這個(gè)數(shù)據(jù)來(lái)源是SHOW ENGINE INNODB STATUS;
InnoDB Log
相關(guān)變量:innodb_log_buffer_size
InnoDB Log Buffer Size
1、Log Bytes Written
2、Log sequence number
當(dāng)前日志的位置
3、Log Bytes Flushed
4、Log flushed up to
日志已經(jīng)刷新的位置
5、Unflushed Log
是log_bytes_written與log_bytes_flushed的差值,表示日志緩存區(qū)里還有多少數(shù)據(jù)沒(méi)被刷新到日志文件里.
如果這個(gè)差值超過(guò)了innodb_log_buffer_size設(shè)置的30%,則需要考慮是否加大該參數(shù)值.
InnoDB Memory Allocation
Total memory allocated 8824815616; in additional pool allocated 0
1、Total Mem Alloc
2、InnoDB申請(qǐng)的總內(nèi)存量,單位字節(jié)
3、Additional Pool Alloc
分配給額外內(nèi)存的總量,單位字節(jié)
InnoDB Row Lock Time
1、InnoDB Row Lock Time
該模板讀取的Innodb_row_lock_time狀態(tài)變量,表示InnoDB引擎在每次申請(qǐng)數(shù)據(jù)行鎖定時(shí)等待的總時(shí)間(以毫秒為單位).
InnoDB Row Lock Waits
1、InnoDB Row Lock Waits
讀取的Innodb_row_lock_waits狀態(tài)變量,表示InnoDB經(jīng)過(guò)這么長(zhǎng)時(shí)間才獲得一個(gè)行鎖.(毫秒)
InnoDB Row Operations
Number of rows inserted 50678311, updated 66425915, deleted 20605903, read 454561562
大致能表現(xiàn)InnoDB內(nèi)部的操作
1、Row Read
2、Row Deleted
3、Row Updated
4、Row Inserted
InnoDB Semaphores Wait Time
1、InnoDB Sem Wait Time Ms
顯示當(dāng)前正在等待互斥量的InnoDB線(xiàn)程的等待時(shí)間的總耗時(shí)(毫秒).
應(yīng)對(duì)這個(gè)問(wèn)題
InnoDB采取多階段等待策略.首先,嘗試對(duì)鎖進(jìn)行循環(huán)等待.如果經(jīng)過(guò)了一個(gè)預(yù)設(shè)的循環(huán)等待周期(innodb_sync_spin_loops = 30,當(dāng)前配置文件默認(rèn)為30次)之后還沒(méi)有成功,就會(huì)退到更昂貴更復(fù)雜的等待陣列里,如果并發(fā)量太大的話(huà),則導(dǎo)致系統(tǒng)負(fù)載突增.
循環(huán)等待的成本相對(duì)比較低,但是需要不停地檢查一個(gè)資源是否被鎖定,消耗CPU周期,也就是說(shuō),當(dāng)另外一條線(xiàn)程能處理事情時(shí),循環(huán)等待也會(huì)獨(dú)占處理器.
循環(huán)等待的替換方案就是讓操作系統(tǒng)做上下文切換(等待陣列),每秒鐘幾千次的切換會(huì)引發(fā)大量的系統(tǒng)開(kāi)銷(xiāo).
解決辦法
根據(jù)具體的應(yīng)用,調(diào)整參數(shù);或者優(yōu)化應(yīng)用,減少并發(fā).
InnoDB Semaphores Waits
1、InnoDB Sem Waits
顯示當(dāng)前正在等待互斥量的InnoDB線(xiàn)程的數(shù)量.
InnoDB Semaphores
顯示innodb內(nèi)部的信號(hào)活動(dòng)狀態(tài).
包括Mutex spin waits,RW-shared spins,RW-excl spins等各種信號(hào)量的數(shù)量總和.
1、Spin Rounds
InnoDB內(nèi)部預(yù)設(shè)的互斥量信號(hào)數(shù)量
2、Spin Waits
InnoDB內(nèi)部對(duì)鎖進(jìn)行循環(huán)等待的數(shù)量(與innodb_sync_spin_loops參數(shù)有關(guān))
3、Os Wait系統(tǒng)等待
事務(wù)退到操作系統(tǒng)的等待陣列的數(shù)量
在高并發(fā)的情況,會(huì)發(fā)現(xiàn)這個(gè)值有尖峰狀,不穩(wěn)定.圖像主要顯示了,不合理的設(shè)計(jì)情況下,不同的連接類(lèi)型之間的行鎖或互斥鎖的爭(zhēng)用.
InnoDB Tables In Use
mysql tables in use 2, locked 2
1、InnoDB Tables In Use
所有事務(wù)用到的表的數(shù)量
2、InnoDB Locked Tables
所有事務(wù)鎖定的表的數(shù)量
InnoDB Transactions Active/Locked
該圖顯示了InnoDB事務(wù)的狀態(tài)數(shù)量.
1、Active Transactions
正在執(zhí)行的事務(wù)數(shù)量
2、Locked Transactions
鎖住的事務(wù)數(shù)量
3、Current Transactions
當(dāng)前的事務(wù)數(shù)量(包括not started,ACTIVE,...等各種狀態(tài))
not started # 事務(wù)已經(jīng)提交到磁盤(pán)
ACTIVE # 正在執(zhí)行的事務(wù)
4、Read Views(待更新)
read views open inside InnoDB
InnoDB Transactions
顯示了InnoDB事務(wù)相關(guān)的信息
1、InnoDB Transactions
InnoDB內(nèi)部的事務(wù)總數(shù).由以下數(shù)值計(jì)算出:
Trx id counter 89F56195 # 當(dāng)前事務(wù)ID,每創(chuàng)建一個(gè)新事務(wù)就會(huì)累加
Purge done for trx's n:o < 89F5609C undo n:o < 0 # InnoDB清除舊版本MVCC時(shí)所用的事務(wù)ID.這個(gè)ID之前的老版本數(shù)據(jù)已經(jīng)清除.
該數(shù)值就是由當(dāng)前事務(wù)ID減去清除舊數(shù)據(jù)的事務(wù)ID再由十六進(jìn)制轉(zhuǎn)成十進(jìn)制的值.(參考ss_get_mysql_stats.php腳本902行)
2、History List
歷史記錄的長(zhǎng)度.位于InnoDB數(shù)據(jù)文件的撤銷(xiāo)空間里的未清除事務(wù)的數(shù)目.當(dāng)一個(gè)事務(wù)執(zhí)行了更新并提交后,這個(gè)數(shù)字就會(huì)累加,當(dāng)清除進(jìn)程移除一個(gè)舊版本數(shù)據(jù)時(shí),它就會(huì)遞減.
MyISAM Indexs
顯示了在MyISAM索引上的讀寫(xiě)情況
1、Key Reads Requests
從鍵緩存讀出索引塊的讀操作的次數(shù)
2、Key Reads
從磁盤(pán)讀出索引塊的讀操作次數(shù)
3、Key Write Requests
向鍵緩存寫(xiě)一個(gè)索引塊的請(qǐng)求的個(gè)數(shù)
4、Key Writes
把索引塊寫(xiě)入磁盤(pán)的寫(xiě)操作的次數(shù)
MyISAM Key Cache
1、Key Buffer Size
鍵緩存大小
2、Key Buf Bytes Used
同Key_blocks_used變量
鍵緩存里已經(jīng)被使用的緩存塊的個(gè)數(shù)
3、Key Buf Bytes Unused
同Key_blocks_unused
鍵緩存里尚未被使用過(guò)的緩存塊的個(gè)數(shù)
MySQL Binary/Relay Logs
1、Binlog Cache Use
保存在二進(jìn)制日志緩存里的事務(wù)的個(gè)數(shù)
2、Binlog Cache Disk Use
超過(guò)binlog_cache_size設(shè)置的緩存大小,使用磁盤(pán)臨時(shí)文件的事務(wù)的個(gè)數(shù)
3、Binlog Log Space
二進(jìn)制日志的大小
4、Relay Log Space
中繼日志的大小
如果Binlog Cache Disk Use/Binlog Cache Use的值較大,那么應(yīng)該嘗試增加binlog_cache_size的大小.但是,也不要期望改善過(guò)多,如果寫(xiě)臨時(shí)文件的數(shù)量從每秒1個(gè)減少到每分鐘一個(gè),這已經(jīng)證明優(yōu)化的足夠好了.沒(méi)必要耗費(fèi)大量的內(nèi)存,來(lái)處理binlog_cache_size中的事務(wù).
MySQL Command Counts
命令計(jì)數(shù)器,顯示了MySQL(在過(guò)去1秒內(nèi))執(zhí)行各種命令的次數(shù)
1、Questions
記錄了服務(wù)器收到的查詢(xún)和命令的總數(shù).(Com_*變量的總數(shù)不一定相等.)
2、Com Select
3、Com Delete
4、Com Insert
5、Com Update
6、Com Replace
7、Com Load
8、Com Delete Multi
9、Com Insert Select
10、Com Update Multi
11、Com Replace Select
MySQL Connections
1、Max Connections
允許同時(shí)保持在打開(kāi)狀態(tài)的客戶(hù)連接的最大個(gè)數(shù)
2、Max Used Connections
此前曾同時(shí)打開(kāi)處于打開(kāi)狀態(tài)的連接的最大個(gè)數(shù)
3、Aborted Clients
因客戶(hù)端沒(méi)有正確地關(guān)閉而被丟棄的連接的個(gè)數(shù)
4、Aborted Connects
試圖連接MySQL服務(wù)器但沒(méi)有成功的次數(shù)
5、Threads Connectd
現(xiàn)在正處于打開(kāi)狀態(tài)的連接的個(gè)數(shù)
6、Connections
試圖連接MySQL服務(wù)器的嘗試次數(shù)
MySQL Files and Tables
1、Table Cache
2、Open Tables
當(dāng)前處于打開(kāi)狀態(tài)的數(shù)據(jù)表的個(gè)數(shù).不包括TEMPORARY
3、Open Files
當(dāng)前處于打開(kāi)狀態(tài)的文件的個(gè)數(shù),如果與open_files_limit接近,則應(yīng)該加大open_files_limit的值.
4、Opened Tables
MySQL服務(wù)器已打開(kāi)的數(shù)據(jù)表總數(shù)(包括顯式定義的臨時(shí)表).如果這個(gè)值很高,應(yīng)該慎重考慮,是否加大數(shù)據(jù)表緩存(table_open_cache).
MySQL Handler
1、Handler_writer 向數(shù)據(jù)表里插入一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
2、Handler_update 對(duì)數(shù)據(jù)表里的一個(gè)數(shù)據(jù)行進(jìn)行修改的請(qǐng)求的個(gè)數(shù)
3、Handler_delete 從數(shù)據(jù)表刪除一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
4、Handler_read_first 讀取索引中第一個(gè)索引項(xiàng)的請(qǐng)求的個(gè)數(shù)
5、Handler_read_key 根據(jù)一個(gè)索引值而讀取一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
6、Handler_read_next 按索引順序讀取下一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
7、Handler_read_prev 按索引逆序讀取前一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
8、Handler_read_rnd 根據(jù)某個(gè)數(shù)據(jù)行的位置而讀取該數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù)
9、Handler_read_rnd_next 讀取下一個(gè)數(shù)據(jù)行的請(qǐng)求的個(gè)數(shù).如果這個(gè)數(shù)字很高,就說(shuō)明有很多語(yǔ)句需要通過(guò)全表掃描才能完成或有很多查詢(xún)沒(méi)有使用適當(dāng)?shù)乃饕?/p>
MySQL Network Traffic
1、Bytes Send
發(fā)送字節(jié)數(shù)
2、Bytes Received
收到字節(jié)數(shù)
MySQL Replication
默認(rèn)用SHOW SLAVE STATUS命令獲取各狀態(tài)值
1、Slave Running
從服務(wù)器的I/O線(xiàn)程和SQL線(xiàn)程是否在運(yùn)行
2、Slave Stopped
3、Slave Lag
復(fù)制延遲
4、Slave Open Tmp Tables
從服務(wù)器中的SQL線(xiàn)程曾經(jīng)打開(kāi)的臨時(shí)文件的個(gè)數(shù)
5、Slave Retried Transactions
從服務(wù)器中的SQL線(xiàn)程重新嘗試執(zhí)行一個(gè)事務(wù)的次數(shù)
MySQL Select Types
1、Select Full Join
沒(méi)有使用索引而完成的多表聯(lián)接操作的次數(shù).這種情況是性能殺手,最好去優(yōu)化sql.
2、Select Full Range Join
利用一個(gè)輔助性的參照表(reference table)上的區(qū)間搜索(range search)操作而完成的多數(shù)據(jù)表聯(lián)接操作的次數(shù).
該值表示使用了范圍查詢(xún)聯(lián)接表的次數(shù).
3、Select Range
利用第一個(gè)數(shù)據(jù)表上的某個(gè)區(qū)間而完成的多數(shù)據(jù)表聯(lián)接操作的次數(shù).
4、Select Range Check
該變量記錄了在聯(lián)接時(shí),對(duì)每一行數(shù)據(jù)重新檢查索引的查詢(xún)計(jì)劃的數(shù)量,它的開(kāi)銷(xiāo)很大.
如果該值較高或正在增加,說(shuō)明一些查詢(xún)沒(méi)有找到好索引.
5、Select Scan
通過(guò)對(duì)第一個(gè)數(shù)據(jù)表進(jìn)行全表掃描而完成的多數(shù)據(jù)表聯(lián)接操作的次數(shù).
MySQL Sorts
1、Sort Rows
對(duì)多少行排序
2、Sort Range
利用一個(gè)區(qū)間進(jìn)行的排序操作的次數(shù)
3、Sort Merge Passes
查詢(xún)導(dǎo)致了文件排序的次數(shù).可以?xún)?yōu)化sql或者適當(dāng)增加sort_buffer_size變量
4、Sort Scan
利用一次全表掃作而完成的排序操作的次數(shù)
MySQL Table Locks
1、Table Locks Immediate
無(wú)需等待就能夠立刻得到滿(mǎn)足的數(shù)據(jù)表鎖定請(qǐng)求的個(gè)數(shù)
2、Table Locks Waited
顯示了有多少表被鎖住了并且導(dǎo)致服務(wù)器級(jí)的鎖等待(存儲(chǔ)引擎級(jí)的鎖,如InnoDB行級(jí)鎖,不會(huì)使該變量增加).
如果這個(gè)值比較高或者正在增加,那么表明存在嚴(yán)重的并發(fā)瓶頸.
3、Slow Queries
慢查詢(xún)的次數(shù)(執(zhí)行時(shí)間超過(guò)long_query_time值)
MySQL Temporary Objects
1、Created_tmp_tables
MySQL服務(wù)器在對(duì)SQL查詢(xún)語(yǔ)句進(jìn)行處理時(shí)在內(nèi)存里創(chuàng)建的臨時(shí)數(shù)據(jù)表的個(gè)數(shù).
如果該值太高,唯一的解決辦法是:優(yōu)化查詢(xún)語(yǔ)句.
2、Created_tmp_disk_tables
MySQL服務(wù)器在對(duì)SQL查詢(xún)語(yǔ)句進(jìn)行處理時(shí)在磁盤(pán)上創(chuàng)建的臨時(shí)數(shù)據(jù)表的個(gè)數(shù),如果這個(gè)值比較高,可能的原因:
a.查詢(xún)?cè)谶x擇BLOB或者TEXT列的時(shí)候創(chuàng)建了臨時(shí)表
b.tmp_table_size和max_heap_table_size的值也許太小
3、Created_tmp_files
MySQL服務(wù)器所創(chuàng)建的臨時(shí)文件的個(gè)數(shù)
MySQL Threads
1、Thread Cache Size
線(xiàn)程緩存所能容納的線(xiàn)程的最大個(gè)數(shù).斷開(kāi)的mysql連接會(huì)放到這個(gè)緩存里,新建立的連接就會(huì)重復(fù)使用它們而不創(chuàng)建新的線(xiàn)程.
如果緩存中有自由的線(xiàn)程,MySQL就能很快的響應(yīng)連接請(qǐng)求,不必為每個(gè)連接都創(chuàng)建新的線(xiàn)程.每個(gè)在緩存中的線(xiàn)程通常消耗256KB內(nèi)存.
2、Thread Created
為處理連接創(chuàng)建的線(xiàn)程總數(shù)
MySQL Transaction Handler
1、Handler Commit
提交一個(gè)事務(wù)的請(qǐng)求的個(gè)數(shù)
2、Handler Rollback
回滾一個(gè)事務(wù)的請(qǐng)求的個(gè)數(shù)
3、Handler Savepoint
創(chuàng)建一個(gè)事務(wù)保存點(diǎn)的請(qǐng)求的個(gè)數(shù)
4、Handler Savepoint Rollback
回滾到一個(gè)事務(wù)保存點(diǎn)的請(qǐng)求的個(gè)數(shù).