ApsaraDB for RDS performansını en üst düzeye çıkarmak için Alibaba Cloud bir iş parçacığı havuzu sunar. Bu özellik, iş parçacıklarını oturumlardan ayırarak az sayıda iş parçacığının çok sayıda etkin oturumun görevlerini yönetmesini sağlar.
Avantajlar
Varsayılan MySQL bağlantı modeli her oturum için bir iş parçacığı (one-thread-per-session) şeklindedir. Çok sayıda oturum bağlandığında bu model önemli kaynak çekişmesine yol açabilir. Sistem iş parçacığı zamanlamasından ve sık önbellek geçersiz kılınmasından kaynaklanan ek yük, performansta ani düşüşe neden olabilir.
ApsaraDB for RDS içindeki iş parçacığı havuzu, farklı SQL işlem türleri için öncelik ve eşzamanlılık denetimi mekanizması uygular. Eşzamanlı iş parçacığı sayısını optimum düzeyde tutarak yüksek eşzamanlılık içeren iş yüklerinde bile yüksek performans sunar. İş parçacığı havuzunun temel avantajları şunlardır:
Yüksek eşzamanlılık altında iş parçacığı havuzu, etkin iş parçacığı sayısını optimum aralıkta tutar. Bu sayede aşırı iş parçacığı zamanlaması ve önbellek geçersiz kılınması azalır.
Eşzamanlı işlemler için iş parçacığı havuzu, SQL deyimlerine ve işlemlere farklı öncelikler atayarak ve eşzamanlılıklarını denetleyerek kaynak çekişmesini azaltır.
İş parçacığı havuzu, yönetimsel SQL deyimlerine öncelik vererek yeni bağlantı oluşturma, yönetim ve izleme gibi işlemlerin sistem yükü yüksek olsa bile güvenilir şekilde çalışmasını sağlar.
İş parçacığı havuzu, karmaşık SQL deyimlerine daha düşük öncelik atar ve maksimum eşzamanlılık sınırı uygular. Bu durum, çok sayıda karmaşık SQL deyiminin sistem kaynaklarını tüketerek veritabanı hizmetinin kullanılamaz hale gelmesini önler.
Ön koşullar
RDS örneğiniz MySQL 5.6, 5,7, 8,0 veya 8,4 sürümünü çalıştırıyor olmalıdır.
İş parçacığı havuzu parametreleri
Konsol üzerinden aşağıdaki üç parametreyi kullanarak iş parçacığı havuzunu yapılandırabilirsiniz. Daha fazla bilgi için bkz. Örnek parametrelerini yapılandırma.
| Parametre | Açıklama |
| loose_thread_pool_enabled | İş parçacığı havuzu özelliğinin etkinleştirilip etkinleştirilmeyeceğini belirtir. Geçerli değerler:
Varsayılan değer: ON. Not
|
| loose_thread_pool_size | İş parçacığı grubu sayısı. Varsayılan değer: 4. Havuzdaki iş parçacıkları yönetim amacıyla bu gruplar arasında eşit olarak dağıtılır. |
| loose_thread_pool_oversubscribe | Her iş parçacığı grubunda izin verilen etkin iş parçacığı sayısı. Varsayılan değer: 32. Etkin iş parçacığı, bir SQL deyimi yürüten ve aşağıdaki durumlar dışında kalan iş parçacığıdır:
|
İş parçacığı havuzu durumu
İş parçacığı havuzu durumunu sorgulamak için aşağıdaki komutu çalıştırın:
show status like "thread_pool%";
Örnek:
mysql> show status like "thread_pool%";
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| thread_pool_active_threads | 1 |
| thread_pool_big_threads | 0 |
| thread_pool_dml_threads | 0 |
| thread_pool_idle_threads | 19 |
| thread_pool_qry_threads | 0 |
| thread_pool_total_threads | 20 |
| thread_pool_trx_threads | 0 |
| thread_pool_wait_threads | 0 |
+----------------------------+-------+
8 rows in set (0.00 sec)
Aşağıdaki tabloda durum değişkenleri açıklanmaktadır.
| Parametre | Açıklama |
| thread_pool_active_threads | İş parçacığı havuzundaki etkin iş parçacığı sayısı. |
| thread_pool_big_threads | İş parçacığı havuzunda karmaşık sorguları yürüten iş parçacığı sayısı. Karmaşık sorgular; alt sorgular, toplama işlevleri veya GROUP BY ve LIMIT gibi yan tümceler içeren sorguları kapsar. |
| thread_pool_dml_threads | İş parçacığı havuzunda DML deyimlerini yürüten iş parçacığı sayısı. |
| thread_pool_idle_threads | İş parçacığı havuzundaki boşta bekleyen iş parçacığı sayısı. |
| thread_pool_qry_threads | İş parçacığı havuzunda basit sorguları yürüten iş parçacığı sayısı. |
| thread_pool_total_threads | İş parçacığı havuzundaki toplam iş parçacığı sayısı. |
| thread_pool_trx_threads | İş parçacığı havuzunda işlemleri yürüten iş parçacığı sayısı. |
| thread_pool_wait_threads | İş parçacığı havuzunda disk G/Ç işlemini veya işlemlerin onaylanmasını bekleyen iş parçacığı sayısı. |
SysBench testleri
Aşağıdaki şekiller, iş parçacığı havuzunun etkinleştirildiği ve devre dışı bırakıldığı senaryolar arasındaki performans karşılaştırmasını göstermektedir. Test sonuçları, iş parçacığı havuzunun yüksek eşzamanlılık içeren iş yüklerinde önemli bir performans avantajı sağladığını ortaya koymaktadır.




