Tüm Ürünler
Search
Belge Merkezi

Tair (Redis® OSS-Compatible):Yüksek CPU kullanımını giderme

Son Güncelleme:Oct 03, 2026

Bir Tair (veya Redis Open-Source Edition) örneğinde yüksek CPU kullanımı çeşitli nedenlerden kaynaklanabilir. CPU bir darboğaz oluşturmuyorsa, yüksek eşzamanlılık ve aktarım hızına sahip uygulamalar için bu durum beklenen bir davranış olabilir. Ancak genellikle bir soruna işaret eder. Örneğin, iş yükü bir Redis Open-Source Edition örneğinin kapasitesini aşabilir. Bu durumda, parça veya çoğaltma ekleyerek ya da Tair (Enterprise Edition) sürümüne yükselterek kaynak darboğazını çözebilirsiniz. Yanlış kullanım; örneğin CPU yoğun komutları çalıştırmak veya sık erişilen anahtarlara ya da büyük anahtarlara erişmek de CPU kullanımında anormal artışlara neden olabilir. Uygulama kararlığını sağlamak için ortalama CPU kullanımının %70'i aşıp aşmadığını veya beş dakika boyunca art arda %90'ın üzerinde kalıp kalmadığını araştırın.

Yüksek CPU kullanımının nedenleri

  • CPU yoğun komut: KEYS, HGETALL gibi komutlar veya birçok anahtar üzerinde aynı anda işlem yapmak için MGET, MSET, HMSET ve HMGET kullanılması, N'nin büyük bir değer olduğu O(N) zaman karmaşıklığına sahiptir. Zaman karmaşıklığı daha yüksek olan komutlar daha fazla CPU kaynağı tüketir ve bu da CPU kullanımının artmasına yol açar.

    Komutlar tek bir iş parçacığında yürütüldüğünden, bu komutların çalıştırılması örneği engelleyebilir, diğer isteklerin kuyrukta beklemesine neden olabilir ve uygulama gecikme süresini artırabilir. Aşırı durumlarda bu durum zaman aşımlarına ve önbellek katmanını atlayarak trafiğin doğrudan arka uç veritabanınıza ulaşmasına neden olan bir önbellek selmesine yol açabilir.

    Not

    Her komutun zaman karmaşıklığı hakkında daha fazla bilgi için bkz. Commands.

  • Sık erişilen anahtar: Az sayıda anahtar orantısız şekilde çok sayıda istek aldığında bunlar sık erişilen anahtar haline gelir. Sık erişilen bir anahtar önemli miktarda CPU kaynağı tüketebilir ve diğer işlemlerin gecikme süresini artırabilir. Bir küme mimarisinde, sık erişilen anahtarlar birkaç veri düğümünde yoğunlaşırsa CPU kullanımında dengesizliğe neden olabilir; bu durumda söz konusu düğümlerin CPU kullanımı diğer düğümlere göre çok daha yüksek olur.

  • Büyük anahtar: Büyük bir anahtara erişmek daha fazla bellek, CPU kaynağı ve ağ bant genişliği tüketir. Büyük bir anahtarın sık erişilen anahtar haline gelmesi daha olasıdır ve bu durum yüksek CPU kullanımına katkıda bulunur. Büyük anahtarlar belirli veri düğümlerinde yoğunlaşırsa CPU kullanımında dengesizliğin yanı sıra bellek ve bant genişliği kullanımında da dengesizliğe yol açabilir.

  • Kısa ömürlü bağlantı: Sık bağlantı oluşturma ve sonlandırma işlemi, veri işlemeye kıyasla bağlantı yönetimi için önemli miktarda CPU kaynağı tüketir.

  • AOF: Yalnızca ekleme yapılan dosya (AOF) kalıcılığı varsayılan olarak etkindir. Bir örnek yoğun yük altındayken AOF işleminin disk G/Ç'si CPU kullanımını ve komut gecikme süresini artırabilir.

  • Süresi dolan anahtarların temizlenmesi: Çok sayıda anahtar aynı anda süresi dolduğunda, Redis süresi dolan anahtarları geri kazanmak için önemli miktarda CPU harcar ve bu durum CPU kullanımının ani artışına neden olabilir.

    Bu senaryoyu gidermek için:

    1. CPU kullanımının ani artış gösterdiği anda bellek kullanımının düşüp düşmediğini kontrol edin. Anahtarların toplu olarak süresinin dolmasıyla birlikte bellek düşüşü yaşanması, sorunun nedeni olarak süresi dolan anahtarların geri kazanılmasını işaret eder.

    2. O sırada expired_keys ve evicted_keys sayaçlarının önemli ölçüde artıp artmadığını kontrol etmek için INFO komutunu çalıştırın.

    3. Daha fazla bilgi için bkz. What is the default eviction policy ve How to clear expired keys.

Yüksek CPU kullanımının görüldüğü senaryolar

Yüksek CPU kullanımı genellikle üç yaygın senaryoda ortaya çıkar:

Senaryonuz doğrultusunda CPU kullanımını azaltmak için uygun adımları uygulayın.

CPU kullanımında ani artış

Örneğinizin genel CPU kullanımı aniden artarsa sorunu araştırmak ve çözmek için aşağıdaki adımları izleyin.

CPU yoğun komutları belirleme ve devre dışı bırakma

Yordam

  1. Performans izleme özelliğini kullanarak CPU kullanımının yüksek olduğu belirli zaman aralığını belirleyin. Daha fazla bilgi için bkz. Performans izleme verilerini görüntüleme.

  2. CPU yoğun komutları belirlemek için aşağıdaki araçları kullanın:

    • latency insights özelliği, tüm komutların ve özel olayların gecikme süresini kaydeder. Belirli bir düğümde belirli bir zaman diliminde yüksek gecikme süresine sahip komutları bulmak için bu özelliği kullanabilirsiniz.

    • slow query log özelliği, belirtilen yürütme süresini (varsayılan olarak 20 ms) aşan komutları kaydeder. Uzun süren, CPU yoğun komutları bulmak için bu özelliği kullanabilirsiniz.

Çözümler

  • FLUSHALL, KEYS ve HGETALL gibi yüksek riskli ve CPU yoğun komutları değerlendirin ve devre dışı bırakın. Daha fazla bilgi için bkz. Yüksek riskli komutları devre dışı bırakma.

  • İsteğe bağlı: İş gereksinimlerinize bağlı olarak aşağıdaki örnek ayarlamalarını göz önünde bulundurun:

    Not

    Yavaş günlük veya denetim günlüğü kaynak yoğun komutlar ortaya koymuyorsa, yüksek CPU kullanımının genellikle iki nedeni vardır. Birincisi, yüksek QPS altında biriken büyük hacimli O(1) komutlardır (GET ve SET gibi); bu komutlar yavaş günlük eşiğinden (varsayılan olarak 20 ms) daha hızlı yürütülür ve kaydedilmez, bu nedenle komutları devre dışı bırakmak yardımcı olmaz; bunun yerine istek baskısını dağıtmak için aşağıda açıklandığı gibi mimariyi ayarlayın. İkincisi, sık sık kurulan kısa ömürlü bağlantılardır; bunlar da CPU tüketir ve yavaş günlükte görünmez; sorun giderme ve optimizasyon için bu konudaki "Kısa ömürlü bağlantılar için optimizasyon yapma" bölümüne bakın.

    • CPU yoğun komutları veya uygulamaları yükten almak için örneği bir okuma/yazma bölme mimarisine değiştirin.

    • Çoklu iş parçacığı yeteneklerinden yararlanmak ve CPU kullanımını azaltmak için örneği bir DRAM tabanlı örneğe değiştirin.

    Not

    Bir örneğin mimarisini ve türünü nasıl değiştireceğinizle ilgili talimatlar için bkz. Bir örneğin yapılandırmalarını değiştirme.

Kısa ömürlü bağlantılar için optimizasyon yapma

Yordam

  1. Performans izleme özelliğini kullanarak CPU kullanımının yüksek olduğu belirli zaman aralığını belirleyin. Daha fazla bilgi için bkz. Performans izleme verilerini görüntüleme.

  2. Performans izleme sayfasında, yüksek CPU kullanımı, yüksek bağlantı sayısı ve beklenenden düşük saniye başına sorgu sayısı (QPS) kombinasyonunu kontrol edin. Bu desen, kısa ömürlü bağlantılarla ilgili bir soruna işaret eder.

Çözümler

AOF'u devre dışı bırakma

AOF varsayılan olarak etkindir. Yoğun yük altında, sık AOF işlemleri yüksek CPU kullanımına katkıda bulunabilir.

İş gereksinimleriniz izin veriyorsa, etkiyi en aza indirmek için kalıcılığı devre dışı bırakmayı ve veri yedeklemelerini yoğun olmayan saatlerde planlamayı göz önünde bulundurun.

Uyarı

Örneğiniz bir DRAM tabanlı örnek ise, AOF'u devre dışı bıraktıktan sonra verileri bir AOF dosyasından geri yükleyemezsiniz. Bu, veri geri sarma özelliğinin kullanılamadığı anlamına gelir. Yalnızca verileri bir yedekleme setinden yeni bir örneğe geri yükleyebilirsiniz. Dikkatli ilerleyin.

Hizmet kapasitesini değerlendirme

Önceki optimizasyonları yaptıktan sonra normal operasyonlar sırasında ortalama CPU kullanımı yüksek (%70'in üzerinde) kalıyorsa, örneğinizde muhtemelen bir performans darboğazı vardır.

Öncelikle, alışılmadık komutlar veya belirli bir uygulama sunucusundan gelen yüksek hacimli istekler gibi anormal erişim desenlerini kontrol edin. Bu sorunlar uygulama düzeyinde ele alınmalıdır. Tüm erişim meşruysa, yüksek yük iş yükünüzün normal bir sonucudur. Kararlı çalışmayı sağlamak için örnek teknik özelliklerinizi yükseltmenizi veya bir küme mimarisine ya da okuma/yazma bölme mimarisine geçiş yapmanızı öneririz. Daha fazla bilgi için bkz. Bir örneğin yapılandırmalarını değiştirme.

Not

İş kararlığını sağlamak için, üretim örneğinizi yükseltmeden önce yük ve uyumluluk testi yapmak üzere kullandıkça öde bir örnek satın almanızı öneririz. Testleri tamamladıktan sonra test örneğini serbest bırakabilirsiniz.

Veri düğümü CPU kullanımında dengesizlik

Bir küme mimarisi veya okuma/yazma bölme mimarisi kullanıyorsanız, bazı veri düğümlerinin CPU kullanımının yüksek, diğerlerinin ise düşük olduğunu gözlemleyebilirsiniz. Sorunu araştırmak ve çözmek için aşağıdaki adımları izleyin.

Sık erişilen anahtarları giderme ve optimize etme

Yordam

  1. Performans izleme özelliğini kullanarak CPU kullanımının yüksek olduğu belirli zaman aralığını belirleyin. Daha fazla bilgi için bkz. Performans izleme verilerini görüntüleme.

  2. Real-time Key Statistics geçmiş sayfasında, CPU kullanımı yüksek olan veri düğümünü seçin, 1. Adımdaki zaman aralığını belirtin ve ardından Search tıklayın. Bu işlem, yüksek CPU kullanımı dönemindeki sık erişilen anahtarları gösterir.

Çözümler

  • İş mantığınıza göre sık erişilen anahtarı bölün. Örneğin, anahtar adına bir kullanıcı kimliği veya bir zaman damgası aralığı ekleyin.

  • Yüksek hacimli okuma istekleri sık erişilen anahtara neden oluyorsa, her veri düğümündeki okuma baskısını azaltmak için örneği okuma/yazma bölme mimarisine değiştirmeyi düşünün.

    Not

    Son derece yüksek istek hacmine sahip senaryolarda, okuma/yazma bölme mimarisi kaçınılmaz çoğaltma gecikmesi getirebilir ve bu durum eski verilerin okunmasına yol açabilir. Bu nedenle, hem yüksek okuma ve yazma baskısı içeren hem de güçlü veri tutarlılığı gerektiren iş yükleri için bu mimari en iyi çözüm olmayabilir.

CPU yoğun komutları belirleme ve devre dışı bırakma

Yordam

  1. Performans izleme özelliğini kullanarak CPU kullanımının yüksek olduğu belirli zaman aralığını belirleyin. Daha fazla bilgi için bkz. Performans izleme verilerini görüntüleme.

  2. CPU yoğun komutları belirlemek için aşağıdaki araçları kullanın:

    • latency insights özelliği, tüm komutların ve özel olayların gecikme süresini kaydeder. Belirli bir düğümde belirli bir zaman diliminde yüksek gecikme süresine sahip komutları bulmak için bu özelliği kullanabilirsiniz.

    • slow query log özelliği, belirtilen yürütme süresini (varsayılan olarak 20 ms) aşan komutları kaydeder. Uzun süren, CPU yoğun komutları bulmak için bu özelliği kullanabilirsiniz.

Çözüm

FLUSHALL, KEYS ve HGETALL gibi yüksek riskli ve CPU yoğun komutları değerlendirin ve devre dışı bırakın. Daha fazla bilgi için bkz. Yüksek riskli komutları devre dışı bırakma.

Büyük anahtarları giderme ve optimize etme

Yordam

  1. Performans izleme özelliğini kullanarak CPU kullanımının yüksek olduğu belirli zaman aralığını belirleyin. Daha fazla bilgi için bkz. Performans izleme verilerini görüntüleme.

  2. Cache Analysis sayfasında, Analyze Now tıklayın. CPU kullanımı yüksek olan veri düğümünü seçin ve OK tıklayın. Bu işlem, yüksek CPU kullanımı döneminde var olan büyük anahtarları gösterir.

Çözüm

İstek yükünü dağıtmak için iş gereksinimlerinize bağlı olarak büyük anahtarları daha küçük anahtarlara bölün.

Proxy düğümü CPU kullanımında dengesizlik

Bir küme mimarisi veya bir okuma/yazma bölme mimarisi kullanıyorsanız, bazı proxy düğümlerinin CPU kullanımının yüksek, diğerlerinin ise düşük olduğunu fark edebilirsiniz. Sorunu araştırmak ve çözmek için aşağıdaki adımları izleyin.

Yordam

Performance Trends sayfasının Proxy Node sekmesinde, connection utilization değerinin düğümler arasında dengeli olup olmadığını kontrol edin. Daha fazla bilgi için bkz. Performance Trends.

Çözümler

Bağlantı kullanımının dengeli olup olmadığına bağlı olarak aşağıdaki işlemlerden birini gerçekleştirin:

  • Bağlantı kullanımı dengeliyse: Bağlantıları yeniden dengelemek için istemci uygulamanızı veya proxy düğümlerini yeniden başlatın. Bir proxy düğümünü yeniden başlatmak için bkz. Restart or rebuild proxy nodes.

  • Bağlantı kullanımı dengesizse: Bu dengesizlik genellikle büyük ölçekli pipeline veya batch işlemlerinden kaynaklanır. Bu işlemlerin boyutunu, örneğin büyük bir toplu işi birkaç daha küçük işe bölerek azaltın.