Tair (Redis OSS uyumlu) örneğinizde yüksek gecikme süresi veya zaman aşımı yaşandığında, yavaş sorgu günlükleri hangi komutların çalıştırma süresi eşiğini aştığını belirlemenize ve kök nedeni bulmanıza yardımcı olur. Günlükler veri düğümleri ve proxy düğümleri olmak üzere iki düzeyde oluşturulur; her biri istek yaşam döngüsünün farklı bölümlerini ölçer.
Redis Açık Kaynak Sürüm 2,8 örnekleri için yavaş sorgu günlükleri desteklenmez. Bir 2,8 örneği için yavaş günlükleri görüntülemek üzere konsolda şuraya gidin: CloudDBA > Slow Queries . 2,8 örneklerine ait yavaş günlükler istemci IP adreslerini içermez.
Yavaş sorgu günlüklerinin çalışma mantığı
Tair, yavaş sorgu günlüklerini iki kaynaktan oluşturur. Her kaynak çalıştırma süresini farklı şekilde ölçer ve farklı bir tanılama amacına hizmet eder.
| Günlük kaynağı | Sürenin ölçtüğü kapsam | Saklama süresi | Önerilen kullanım alanı |
|---|---|---|---|
| Veri düğümü | Komutun yalnızca veri düğümünde çalıştırılma süresi. Ağ iletimi ve kuyrukta bekleme gecikmesini içermez. Örnek performansı yüksek olduğundan veri düğümlerinde genellikle az sayıda yavaş sorgu günlüğü oluşur. | 72 saat | Motor düzeyindeki yavaş komutları belirleme |
| Proxy düğümü | Proxy'nin isteği bir veri düğümüne göndermesinden yanıtı almasına kadar geçen süre. Komut çalıştırma, ağ iletimi ve kuyrukta bekleme gecikmesini içerir. | 72 saat | Zaman aşımı sorunlarını giderme (gerçek uygulama gecikmesine daha yakındır) |
Her iki günlük kaynağı için depolama sınırı yoktur.
Standart örnekler için proxy düğümü yavaş günlükleri kullanılamaz.
Parametreler
Veri düğümü parametreleri
| Parametre | Varsayılan | Birim | Açıklama |
|---|---|---|---|
slowlog-log-slower-than |
20000 | Mikrosaniye | Bu değerden daha uzun süren komutlar günlüğe kaydedilir. 20000 mikrosaniye 20 milisaniyeye eşittir. Bu değer ağ ve kuyruk gecikmesini dışladığından, gerçek uçtan uca gecikme süresi genellikle daha yüksektir. |
slowlog-max-len |
1024 | — | Depolanan maksimum yavaş sorgu günlüğü girdisi sayısı. |
Proxy düğümü parametreleri
| Parametre | Varsayılan | Birim | Açıklama |
|---|---|---|---|
rt_threshold_ms |
500 | Milisaniye | Bu değerden daha uzun süren komutlar günlüğe kaydedilir. Bu değeri istemci zaman aşımı sürenize yakın, genellikle 200 ile 500 milisaniye arasında olacak şekilde ayarlayın. |
Bu parametreleri değiştirmek için bkz. Örnek parametrelerini yapılandırma.
Konsolda yavaş günlükleri görüntüleme
Konsola giriş yapın ve Instances sayfasına gidin. Üst gezinme çubuğunda örneğinizin bulunduğu bölgeyi seçin, ardından örnek ID'sine tıklayın.
Sol gezinme bölmesinde şunu seçin: Logs > Slow Logs.
-
Slow Logs sayfasında günlükleri zaman aralığına veya anahtar kelimeye göre filtreleyin. Küme ve okuma/yazma ayrıştırma örnekleri için düğüm türüne ve düğüm ID'sine göre de filtreleme yapabilirsiniz.
Varsayılan olarak Host Address alanı küme ve okuma/yazma ayrıştırma örnekleri için proxy düğümü IP adreslerini gösterir. Bunun yerine istemci IP adreslerini görüntülemek için Parameter Settings içinde
ptod_enabledparametresini1olarak ayarlayın. Ayrıntılar için bkz. Örnek parametrelerini yapılandırma . Eski örneklerde varsayılan olarak proxy düğümü IP adresleri (11 ile başlayan IP adresleri) görüntülenir.ptod_enabledparametresini1olarak ayarladıktan sonra proxy düğümleri, istemcilerin kaynak IP adreslerini arka plan veri düğümlerine iletir. Bu parametredeki değişiklik hemen etkili olur. Örneği yeniden başlatmanız gerekmez. Konsoldaptod_enabledparametresini bulamıyorsanız örneği bu parametreyi destekleyen daha yeni bir alt sürüme yükseltin: Redis Açık Kaynak Sürüm 7.0: 7.0.1.2 veya üzeri. Redis Açık Kaynak Sürüm 6.0: 6.0.2.0 veya üzeri. Redis Açık Kaynak Sürüm 5.0: 5.2.0 veya üzeri (cloud-native örnekler için 5.5.2.0 veya üzeri).
İlgisiz yavaş günlük girdileri
Bazı girdiler gerçek komut performansından ziyade dahili motor davranışını yansıtır. Aşağıdaki girdileri dikkate almayabilirsiniz.
| Girdi | Açıklama |
|---|---|
latency:eventloop |
Tair (Redis OSS uyumlu), olay odaklı modda çalışır. Bir olay döngüsü okuma, ayrıştırma, komutları çalıştırma ve sonuçları döndürme işlemlerini kapsar. latency:eventloop süresi, tek bir olay döngüsü döngüsü için geçen toplam süreyi yansıtır. |
latency:pipeline |
İşlem hattı modunda istemci komutları toplu işler halinde gönderir ve yanıtları alır. Küme örnekleri için proxy düğümleri, arka plan veri düğümlerine istekleri toplu işler halinde göndermek üzere işlem hattı modunu kullanır. latency:pipeline süresi, bir işlem hattı toplu işindeki tüm isteklerin işlenmesi için geçen toplam süreyi yansıtır. |
latency:fork |
latency:fork süresi, bir alt sürecin çoğaltılması (fork) için geçen süreyi yansıtır. Daha büyük veri kümeleri daha uzun çoğaltma sürelerine neden olur. |
API referansı
| İşlem | Açıklama |
|---|---|
| DescribeSlowLogRecords | Belirtilen bir zaman aralığı içinde bir örnek için yavaş sorgu günlüklerini alır. |
İlgili konular
Zaman aşımı sorunlarını gidermek için yavaş sorgu günlüklerini kullanma