mysqladmin processlist
komutu, MySQL/MariaDB veritabanında o an aktif olarak çalışan sorguları görmek için kullanılır. Bu komut, özellikle yüksek CPU veya disk kullanımı gibi durumlarda hangi sorguların sistem kaynaklarını zorladığını anlamak için idealdir.
Aşağıdaki komutla başlıyoruz:
mysqladmin -u root -p processlist
Komutu çalıştırdıktan sonra şifre istenir ve ardından çalışan tüm işlemleri listeler:
Çıktı Örneği:
+----+------+-----------+----------+---------+------+-------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+------+-----------+----------+---------+------+-------+------------------+
| 12 | user | localhost | mydb | Query | 50 | Sending data | SELECT * FROM large_table |
| 13 | user | localhost | mydb | Sleep | 20 | | NULL |
Burada dikkat edilmesi gereken sütunlar:
-
Time: Sorgunun ne kadar süredir çalıştığını gösterir. Süresi yüksek olanlar sistemde yük oluşturabilir.
-
Command: "Query" olanlar aktif sorgulardır. "Sleep" olanlar bağlantısı açık ama işlem yapmayan oturumlardır.
-
Info: Çalışan SQL sorgusunun tamamı burada görünür.
Yüksek Kaynak Kullanan Sorguları Belirlemek İçin:
processlist
çıktısını filtrelemek için grep
ve awk
kullanılabilir:
mysqladmin -u root -p processlist | grep -i select
Yalnızca uzun süre çalışanları görmek için:
mysql -u root -p -e "SELECT * FROM information_schema.processlist WHERE TIME > 30 ORDER BY TIME DESC;"
Bu komutla 30 saniyeden uzun süredir çalışan tüm sorguları görebilirsiniz.
Ekstra Detaylı İzleme İçin:
Periyodik takip yapmak için:
watch -n 2 'mysqladmin -u root -p processlist'
Bu komut her 2 saniyede bir çalışan işlemleri tekrar gösterir.
Yüksek Yoğunluklu Sorguları Durdurmak İçin:
Bazı sorgular çok uzun sürebilir ve sistemi kilitleyebilir. Sorguyu sonlandırmak için:
KILL 12;
Buradaki 12, Id
sütunundaki değerdir.
Bu yöntemlerle MySQL/MariaDB sunucunuzda sistem kaynaklarını tüketen sorguları belirleyip müdahale edebilirsiniz. Özellikle büyük veritabanlarında, canlı performans izleme açısından processlist
komutu oldukça değerlidir.