MySQL High Threads_running and CPU: Queries or Lock Contention?
Separates CPU-heavy queries from lock and I/O waits behind rising concurrent threads, then provides safe triage and lasting remedies.
Operational Safety & Risk Notice
This runbook contains operational intervention steps; several are write-impacting (KILL, terminate, DROP, RESIZE). Verify in a staging environment first, and apply sequentially in production with verification.
1. Symptom & Signals
- M14 (`Threads_running`) baz çizgisinin ve CPU çekirdek sayısının üzerinde kalıyor; sorgu gecikmeleri artıyor. CPU'nun da yüksek olup olmadığını işletim sisteminden **ayrıca** doğrulayın.
- `Too many connections` da varsa `mysql-too-many-connections` runbook'una bakın.
2. Business & Technical Impact
Sorgular kuyruklanır ve uygulamada zaman aşımı görülür. Threads_running yüksekliği tek başına yüksek CPU demek değildir; kilit veya disk beklemesi de olabilir.
3. Diagnosis & Root-Cause Analysis
SHOW GLOBAL STATUS WHERE Variable_name IN ('Threads_running','Threads_connected','Questions','Slow_queries');
SELECT id, user, host, db, time AS seconds, state, LEFT(info,200) AS sql_text
FROM information_schema.processlist
WHERE command <> 'Sleep' ORDER BY time DESC LIMIT 30;SELECT schema_name, LEFT(digest_text,160) AS query_pattern, count_star,
ROUND(sum_timer_wait/1e12,2) AS total_seconds,
ROUND(sum_timer_wait/NULLIF(count_star,0)/1e9,2) AS avg_ms,
sum_rows_examined, sum_no_index_used
FROM performance_schema.events_statements_summary_by_digest
WHERE schema_name IS NOT NULL ORDER BY sum_timer_wait DESC LIMIT 15;4. Remediation & Action Plan
5. Verification & Health Checks
- M14, CPU ve p95 sorgu gecikmesi baz çizgiye iner; aktif oturum kuyruğu çözülür.
- Değişen sorgunun `EXPLAIN` planı, okunan satır sayısı ve uygulama hataları yeniden ölçülür.
6. Rollback & Contingency Plan
- Durdurulan batch'i kontrollü hızda yeniden başlatın; uygulama eşzamanlılık ayarını eski değerine döndürün.
- İndeks değişikliğini geri almadan önce sorgu planını ve diğer sorgulara etkisini doğrulayın. İptal edilen sorgu otomatik devam etmez.