Friday, April 22, 2011

MySQL Show Processlist

Show Processlist adalah sebuah fitur pada MySQL untuk menunjukkan thread yang berjalan pada Server MySQL. Fitur ini berguna untuk monitoring MySQL Server yang memiliki banyak user dan koneksi sehingga bisa mendapatkan pesan error apabila terjadi error.


Untuk menggunakan fitur processlist Anda harus login terlebih dahulu sebagai root, berikut ini adalah contoh untuk login sebagai root.
mysql -uroot -ppass

Berikut ini adalah contoh sebuah tampilan Show Processlist
mysql> SHOW FULL PROCESSLIST;
+-----+----------------+------------+-----------------+--------------+------+---------+------------------------------------+
| Id  | User           | Host       | db              | Command      | Time | State   | Info                               |
+-----+----------------+------------+-----------------+--------------+------+---------+------------------------------------+
| 286 | root           | localhost  | mysql           | Query        |    0 | NULL    | SHOW FULL PROCESSLIST              |
| 289 | yuli           | localhost  | sms             | Sleep        |  726 |         | NULL                               |
| 290 | websekolah     | localhost  | websekolah      | Sleep        |  717 |         | NULL                               | 
+-----+----------------+------------+-----------------+--------------+------+---------+----------------------------------- +
3 rows in set (0.00 sec)

Pada gambar table diatas terdapat tiga buah thread yang dimiliki oleh tiga user. berikut ini adalah penjelasan dari setiap thread tersebut.

  • Thread 286 pemilik root melakukan akses ke database mysql menjalankan sebuah query yang berisikan SHOW FULL PROCESSLIST.
  • Thread 289 pemilik yuli melakukan akses ke database sms dan tidak melakukan apa-pun atau sleep.
  • Thread 290 pemilik websekolah melakukan akses ke database websekolah dan tidak melakukan apa-pun atau sleep.

Berikut ini adalah penjelasan lebih lengkap dari dari setiap kolom yang ditampilkan dari Show Proccesslist.

  • Id adalah sebagai nomor identifikasi sebuah thread
  • User dan Host adalah untuk menunjukan user pemilik thread, apabila terdapat user bernama system user itu mengartikan buka client melainkan system yang sedang melakukan tugas-tugas internal.
  • db adalah mengindikasikan database yang digunakan pada thread.
  • Command & State mengartikan apa yang sedang dilakukan oleh thread, misalkan Command Query mengartikan melakukan ekseskusi sebuah perintah dan Command Sleep mengartikan thread tersebut tidak melakukan apapun.
  • Time menunjukan waktu yang telah dihabiskan pada sebuah command dan status.
  • Info berisikan statemen yang di eksekusi oleh thread

Show Processlist selain berguna untuk monitoring thread dapat memiliki fungsi untuk menghentikan sebuah thread, biasanya thread yang dihentikan adalah thread "zombie" yaitu sebuah thread yang tidak melakukan aktivitas apapun atau thread yang dicurigai bermasalah seperti sebuah query yang telampau lama dalam menyelesaikan eksekusi sehingga menyebabkan server lumpuh.

Untuk menghentikan sebuah thread dapat diberikan dengan perintah kill diikuti id thread. Berikut ini adalah contoh untuk menghentikan sebuah thread 289 milik user yuli.
mysql> KILL 289;
Hasil Show Processlist setelah dilakukan Kill adalah sebagai berikut.
mysql> SHOW FULL PROCESSLIST;
+-----+----------------+------------+-----------------+--------------+------+---------+------------------------------------+
| Id  | User           | Host       | db              | Command      | Time | State   | Info                               |
+-----+----------------+------------+-----------------+--------------+------+---------+------------------------------------+
| 286 | root           | localhost  | mysql           | Query        |    0 | NULL    | SHOW FULL PROCESSLIST              |
| 290 | websekolah     | localhost  | websekolah      | Sleep        |  717 |         | NULL                               | 
+-----+----------------+------------+-----------------+--------------+------+---------+----------------------------------- +
3 rows in set (0.00 sec)
Pada gambar table diatas kini thread 289 milik user yuli telah dihapus.

No comments:

Post a Comment