MySQL InnoDB स्टोरेज इंजन के ग्लोबल लॉक्स, ट्रांजैक्शन, सेमाफोर, बफर पूल आदि की विस्तृत स्थिति देखने के लिए SHOW ENGINE INNODB STATUS कमांड का उपयोग करें।
कमांड
SHOW ENGINE INNODB STATUS\G
\G वर्टिकल फॉर्मेट में आउटपुट देता है (पढ़ने में आसान)।
आउटपुट के प्रमुख खंड
1. BACKGROUND THREAD
मास्टर थ्रेड गतिविधि: फ्लश, पर्ज, आइडल लूप
2. SEMAPHORES
लॉक/लैच प्रतीक्षा सांख्यिकी:
- OS WAIT ARRAY: आरक्षण/सिग्नल काउंट
- RW-shared/excl/sx स्पिन, राउंड, OS वेट्स
- स्पिन राउंड प्रति वेट
3. TRANSACTIONS
सक्रिय ट्रांजैक्शन सूची:
- Trx ID काउंटर
- पर्ज स्थिति
- इतिहास सूची लंबाई
- प्रत्येक सत्र का ट्रांजैक्शन: लॉक संरचना, हीप आकार, पंक्ति लॉक
4. FILE I/O
I/O थ्रेड स्थिति (इंसर्ट बफर, लॉग, रीड, राइट), लंबित I/O, फाइल रीड/राइट/fsync सांख्यिकी
5. INSERT BUFFER AND ADAPTIVE HASH INDEX
इंसर्ट बफर मर्ज, हैश इंडेक्स खोज सांख्यिकी
6. LOG
लॉग सीक्वेंस नंबर (LSN), बफर, फ्लश, चेकपॉइंट स्थिति
7. BUFFER POOL AND MEMORY
बफर पूल आकार, फ्री बफर, डेटाबेस पेज, यंग/नॉट-यंग पेज, रीड/क्रिएट/राइट दर
8. ROW OPERATIONS
इंसर्ट/अपडेट/डिलीट/रीड प्रति सेकंड, क्वेरी इनसाइड InnoDB
नमूना आउटपुट (संक्षिप्त)
*************************** 1. row ***************************
Type: InnoDB
Name:
Status:
=====================================
2019-01-23 14:46:58 0x2914 INNODB MONITOR OUTPUT
=====================================
Per second averages calculated from the last 23 seconds
------------------
BACKGROUND THREAD
------------------
srv_master_thread loops: 87 srv_active, 0 srv_shutdown, 51953 srv_idle
srv_master_thread log flush and writes: 0
----------
SEMAPHORES
----------
OS WAIT ARRAY INFO: reservation count 244
OS WAIT ARRAY INFO: signal count 241
RW-shared spins 23, rounds 37, OS waits 14
RW-excl spins 16, rounds 380, OS waits 9
...
------------
TRANSACTIONS
------------
Trx id counter 60219
Purge done for trx's n:o < 60218 undo n:o < 0 state: running but idle
History list length 32
LIST OF TRANSACTIONS FOR EACH SESSION:
---TRANSACTION 284507225290560, not started
0 lock struct(s), heap size 1136, 0 row lock(s)
...
------------------------
END OF INNODB MONITOR OUTPUT
============================
लॉक-विशिष्ट जानकारी के लिए
वर्तमान लॉक प्रतीक्षा देखें
SELECT * FROM performance_schema.data_locks;
SELECT * FROM performance_schema.data_lock_waits;
InnoDB मेट्रिक्स
SELECT * FROM information_schema.INNODB_METRICS
WHERE name LIKE '%lock%';
पुराना तरीका (MySQL 5.7 तक)
SHOW ENGINE INNODB STATUS\G -- उपरोक्त कमांड
-- लॉक सेक्शन में देखें: TRANSACTIONS > LOCKS
उपयोग के मामले
- डेडलॉक विश्लेषण: LATEST DETECTED DEADLOCK सेक्शन
- लॉक कंटेंशन: SEMAPHORES में उच्च OS waits
- लंबे ट्रांजैक्शन: TRANSACTIONS में लंबे समय से चल रहे
- बफर पूल दबाव: फ्री बफर कम, उच्च eviction दर
- लॉग फ्लश विलंब: LOG सेक्शन में फ्लश पीछे
नोट
- आउटपुट बहुत लंबा हो सकता है - \G या less में देखें
- PROCESS विशेषाधिकार आवश्यक
- MySQL 8.0+ में Performance Schema अधिक संरचित डेटा देता है
- नियमित मॉनिटरिंग के लिए pt-stalk, mysqld-exporter, PMM उपयोग करें