Cara cek penggunaan memori MySQL

Pertanyaan dari mas Try yang jumlah memory usage untuk proses MySQL cukup masif (hitungan puluhan GB!) menginspirasi saya untuk membuat artikel ini. Sebenarnya dalam angka – angka penggunaan RAM server tersebut terdiri dari apa saja?

Sederhananya kita bisa memanfaatkan query SQL juga, dan apabila kita pakai InnoDB sebagai engine databasenya maka ada statistik yang bisa dibaca:

SHOW ENGINE INNODB STATUS

Hasilnya akan panjang sekali, tapi saya potong untuk bagian yang kita butuhkan saja yakni pada BUFFER POOL AND MEMORY:

----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 281542656; in additional pool allocated 0
Total memory allocated by read views 192
Internal hash tables (constant factor + variable factor)
    Adaptive hash index 4479184 	(4425832 + 53352)
    Page hash           277432 (buffer pool 0 only)
    Dictionary cache    1570108 	(1107952 + 462156)
    File system         851144 	(812272 + 38872)
    Lock system         665656 	(664936 + 720)
    Recovery system     0 	(0 + 0)
Dictionary memory allocated 462156
Buffer pool size        16383
Buffer pool size, bytes 268419072
Free buffers            15753
Database pages          627
Old database pages      237
Modified db pages       0
Percent of dirty pages(LRU & free pages): 0.000
Max dirty pages percent: 75.000
Pending reads 0
Pending writes: LRU 0, flush list 0, single page 0
Pages made young 0, not young 0
0.00 youngs/s, 0.00 non-youngs/s
Pages read 556, created 71, written 18068
0.00 reads/s, 0.00 creates/s, 0.00 writes/s
No buffer pool page gets since the last printout
Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
LRU len: 627, unzip_LRU len: 0
I/O sum[0]:cur[0], unzip sum[0]:cur[0]

Saya bukan ahli database jadi sama – sama meraba – raba nanti analisanya. 😀 Yang pasti dalam VPS 512MB saya ternyata dialokasikan mencapai 256MB, walau tampaknya belum terpakai semua. Jadi calon memori maksimalnya sebesar itu.

Setelah itu mau diapakan? Ya.. dipandang juga boleh. 😛 Mungkin perlu optimasi dengan mysqltuner atau profiling mana yang perlu dioptimasikan, tapi untuk pembahasan advanced ya sama – sama awamnya. Hehe. 😀

Cara ini berlaku untuk MySQL, MariaDB dan Percona.

Tinggalkan komentar