SAP Commerce (Hybris) Performans Optimizasyonu Rehberi

SAP Commerce (Hybris) performansı: FlexibleSearch disiplini, bölge önbelleği ayarı, Solr indeksleme stratejisi, cronjob planlaması ve darboğaz teşhis metodolojisi.

FlexibleSearch sorgu optimizasyonunu gösteren Hybris kod editörü penceresi

Hybris'te performans sorunu nereden başlar?

SAP Commerce projelerinde performans şikâyetlerinin büyük bölümü platformdan değil, platformun güçlü araçlarının disiplinsiz kullanımından doğar: kontrolsüz FlexibleSearch sorguları, ayarlanmamış önbellek bölgeleri, her şeyi indeksleyen Solr yapılandırmaları ve mesai saatinde çalışan ağır cronjob'lar. Bu yazı, şikâyetten köke inen katmanlı bir teşhis ve iyileştirme metodolojisi sunar.

Teşhis önce: ölçmeden ayar yapılmaz

İlk adım her zaman görünürlüktür: yavaş sayfa mı, yavaş sorgu mu, yavaş entegrasyon mu? Uygulama izleme (APM) ile isteklerin katman kırılımı; veritabanı tarafında yavaş sorgu logları; Hybris tarafında sorgu ve önbellek istatistikleri birlikte okunur. "En yavaş 10 istek + en sık 10 sorgu" listesi, çoğu projede iyileştirme sırasını tek başına belirler. Ölçüm olmadan yapılan her ayar, tahmindir.

Katman katman: belirti → kök neden → önlem

Katman

Tipik belirti

Öncelikli önlem

FlexibleSearch

DB CPU yüksek; aynı sorgu binlerce kez

N+1 temizliği, alan seçimli sorgu, sayfalama

Önbellek

Düşük isabet oranı; sık tahliye

Bölge boyutlarının tip profiline göre ayarı

Solr

Arama gecikmesi; uzun tam indeksleme

İndekslenen alan diyeti; artımlı indeks stratejisi

Cronjob

Belirli saatlerde genel yavaşlama

Yoğun saat dışına planlama; ayrı düğüm

JVM/GC

Periyodik duraklamalar

Heap ve GC'nin yüke göre yapılandırılması

Ön yüz/CDN

Sunucu hızlı, sayfa yavaş

Medya CDN'i, sayfa parça önbelleği

FlexibleSearch disiplini: en büyük kazanım burada

Üç kural çoğu sorunu çözer. Birincisi N+1'in avlanmasıdır: liste ekranında her satır için ayrı sorgu üreten servis kodu, tek toplu sorguya çevrilir. İkincisi alan seçimidir: yalnızca PK'sı veya birkaç alanı gereken yerde tam model hidrasyonu yerine alan döndüren sorgular kullanılır — model doldurma, hem sorgu hem önbellek maliyetidir. Üçüncüsü sayfalamadır: sınırsız sonuç döndüren sorgu, bugün küçük olan katalogda yarın olay çıkarır. Bu kuralların kalıcı olması için kod incelemesine 'sorgu başına maliyet' sorusu eklenir ve yavaş sorgu logu düzenli taranır.

Önbellek: boyut değil, profil ayarı

Hybris'in bölge önbelleği (region cache), tip bazında ayrılabilir alanlardan oluşur; varsayılan boyutlar her katalog profiline uymaz. Doğru yaklaşım isabet/tahliye istatistiklerinin izlenmesi ve en çok okunan tiplerin (ürün, fiyat, stok, kategori) bölgelerinin bu veriye göre boyutlandırılmasıdır. İkinci başlık geçersiz kılmadır (invalidation): kümedeki düğümler arası geçersiz kılma trafiği, yazma-yoğun senaryolarda kendisi bir yük kaynağı olabilir — toplu içe aktarmaların önbellek davranışı planlanmalı, dev importlar mümkünse bakım pencerelerine alınmalıdır.

Solr: indeks diyeti ve artımlı strateji

Arama performansının iki düşmanı vardır: her özniteliği indekslemek ve her değişiklikte tam indeks koşturmak. İlki için indekslenen alan listesi iş gereksinimiyle sınırlanır — aranmayan, filtrelenmeyen, listelenmeyen alan indekste yer almaz. İkincisi için artımlı (update) indeksleme ana yol olur; tam indeksleme, düşük trafik penceresine planlanır ve süresi bir metrik olarak izlenir. Sorgu tarafında facet sayısı ve boost karmaşıklığı da gecikmeye doğrudan yansır; arama deneyimi tasarımı ile performans birlikte düşünülmelidir.

Cronjob ve entegrasyon planlaması

Gece koşması gereken işin gündüz koşması, en sık rastlanan 'gizli' performans sorunudur. Cronjob envanteri çıkarılır; her işin süresi, kaynak profili ve çakışmaları görünür hale getirilir. Ağır işler (fiyat/stok içe aktarma, indeksleme, rapor) yoğun saat dışına ve mümkünse yalnızca arka plan işlerine ayrılmış düğümlere planlanır. Kuyruk tabanlı entegrasyonlarda geri basınç (backpressure) tanımlanır — kaynak sistemin ani yığını, storefront'un faturası olmamalıdır.

İş etkisi: hız, dönüşüm oranıdır

E-ticarette sayfa hızı ile dönüşüm arasındaki ilişki sektörde defalarca ölçülmüştür; yavaşlık doğrudan ciro kaybıdır ve arama motoru sıralamasını da etkiler. Teknik tarafta ise ölçüme dayalı optimizasyon, donanım büyütmeden — yani bulut faturasını şişirmeden — kapasite kazandırır. Performans çalışmasının çıktısı yalnızca hızlı sayfa değil; ölçüm altyapısı, sorgu disiplini ve planlama pratiği olarak kalıcı mühendislik kültürüdür.

Sık sorulan sorular

Önce donanım mı büyütelim, önce optimizasyon mu?

Önce ölçüm: darboğaz sorgu veya indekslemedeyse donanım parayı erteler, çözmez. Donanım, ölçümle doğrulanmış kapasite ihtiyacında anlamlıdır.

Her şeyi önbelleğe almak çözüm mü?

Hayır — yanlış boyutlanmış önbellek tahliye fırtınası ve bellek baskısı üretir. Önbellek, isabet istatistiğiyle yönetilen bir bütçedir.

CCv2'de bu ayarlar elimde mi?

Uygulama katmanı ayarlarının (sorgular, önbellek bölgeleri, indeks stratejisi, cronjob planı) tamamı sizin elinizdedir; altyapı boyutlandırması bulut yapılandırmasıyla yönetilir.

Yük testi ne zaman yapılmalı?

Büyük kampanya ve sürüm öncesi düzenli olarak; üretim benzeri veri hacmiyle. Küçük katalogla yapılan test, üretim davranışını temsil etmez.

Performans kontrol listesi

  1. APM + yavaş sorgu logu + önbellek istatistikleri aktif

  2. En yavaş istek/sorgu listesi düzenli raporlanıyor

  3. N+1 taraması yapıldı; alan seçimli sorgular yaygın

  4. Önbellek bölgeleri isabet verisiyle boyutlandırıldı

  5. Solr alan diyeti uygulandı; artımlı indeks ana yol

  6. Cronjob envanteri ve yoğun saat planı tanımlı

  7. Kampanya öncesi yük testi süreci kurulu

SSH Yazılım, SAP Commerce (Hybris) projelerinde performans teşhisi ve optimizasyonunu ölçüme dayalı yürütür. Storefront'unuzun darboğaz haritasını birlikte çıkaralım.