JAVA PERFORMANS VE JVM EĞİTİMİ
Java uygulamalarında performans yalnızca “hız” değil; gecikme, kaynak tüketimi ve kararlılık gibi metriklerin birlikte yönetilmesidir. Bu eğitimde JVM çalışma mantığını derinlemesine ele alır, performans sorunlarının kök nedenlerini sistematik biçimde bulmayı ve ölçülebilir iyileştirmeler yapmayı öğrenirsiniz.
Gerçek senaryolar üzerinden profilleme, GC analizi, thread ve memory sorunları, hotspot davranışları ve caching stratejileri çalışılır. Ekip, aynı dili konuşan bir performans yaklaşımı kazanır; üretimde daha az sürpriz, daha öngörülebilir kapasite ve daha güvenli sürüm çıkışları hedeflenir.
Katılımcı Profili
Bu eğitim, Java tabanlı sistemlerde performans sorumluluğu olan ve ölçüm temelli iyileştirme yapmak isteyen ekipler için tasarlanmıştır.
- Backend geliştiriciler: JVM odaklı optimizasyon pratiği kazanır
- Platform mühendisleri: Çalışma zamanı ayarlarını doğru yönetir
- SRE ekipleri: Gözlemlenebilirlik ve teşhis akışını güçlendirir
- Teknik liderler: Performans hedeflerini ekipçe standartlaştırır
- QA mühendisleri: Baseline ve regresyon kontrolleri tasarlar
Ön Gereklilikler
Katılımcıların eğitime maksimum fayda sağlayabilmesi için aşağıdaki temel bilgilerin bulunması önerilir.
- Java ile orta seviye geliştirme deneyimi
- Temel veri yapıları ve algoritma bilgisi
- Linux komut satırı ve temel sistem kavramları
- HTTP, concurrency ve thread kavramlarına aşinalık
- IDE kullanımı ve log okuma pratiği
Süresi ve Tarihi
Süre: 3 gün. Bu süre standart program içindir; ek modüllere ve hedefe göre süre özelleştirilebilir.
Eğitim tarihleri ve saatleri, ekibinizin uygunluğuna göre birlikte planlanır.
Kazanımlar
Eğitim sonunda ekip, JVM’in kritik davranışlarını ölçerek yorumlayabilir ve performans iyileştirmelerini güvenli şekilde hayata geçirebilir.
- JVM bellek modeli ve GC davranışlarını doğru yorumlama
- CPU, bellek ve thread darboğazlarını profilleme ile bulma
- Latency, throughput ve tail latency metriklerini birlikte yönetme
- JFR, JMC ve async-profiler ile tanılama yapma
- JMH ile güvenilir mikro benchmark kurgulama
- Heap dump analizi ile leak ve churn tespiti yapma
- Cache ve pooling kararlarını veriyle doğrulama
- Performans regressions için baseline ve alarm yaklaşımı kurma
Java Performans ve JVM Eğitimi Konuları
1. Java Performans ve JVM Eğitimi - Performans Zihniyeti ve Ölçüm Çerçevesi
- Performans hedeflerini net metriklerle tanımlama
- Latency ve throughput dengesini kurmak için yaklaşım seçimi
- Tail latency neden kritiktir ve nasıl iyileştirilir, örneklerle incelenir
- Ölçüm gürültüsünü azaltmak için kontrollü test tasarımı
- İyileştirme döngüsünü planlamak için basit süreç şablonu
2. Java Performans ve JVM Eğitimi - JVM Temelleri ve Çalışma Zamanı Bileşenleri
- HotSpot mimarisini yüksek seviyede konumlandırma
- Class loading sürecini anlamak için kritik noktaları inceleme
- JIT derleme ve optimizasyonların etkisi çünkü çalışma zamanı değişkendir
- Bytecode ve interpreter ilişkisini ölçümle doğrulama
- Safepoint kavramını pratikte izlemek için yöntem belirleme
- Runtime flag okuma ve etki alanını sınıflandırma
3. CPU Profilleme ve Hotspot Analizi
- CPU tüketiminde gerçek darboğazı ayırma
- Sampling profiler kullanımı ile hızlı içgörü elde etme
- Inlining ve deoptimization etkisi ama sonuçlar bağlama göre değişir
- Flame graph okuma pratiği ile odak noktası belirleme
- Algoritmik iyileştirmeyi ölçümle doğrulamak için adımlar
4. Thread, Concurrency ve Lock İçgörüleri
- Thread dump yorumlama ile kilitlenmeleri teşhis etme
- Lock contention kaynaklarını bulmak için ölçüm stratejisi
- Context switch artışı ve scheduler etkisi çünkü CPU görünümü yanıltabilir
- Thread pool ayarlarını iş yüküne göre uyarlama
- Blocking I/O ve async yaklaşımı seçmek için karar noktaları
- Deadlock ve livelock senaryolarını sistematik inceleme
5. Bellek Modeli, Heap Yapısı ve Allocation Davranışı
- Heap bölgelerini doğru şekilde haritalama
- Allocation rate takibi ile churn kaynaklarını bulma
- Escape analysis etkisi ve allocation azalması ama her zaman garanti değildir
- Object layout ve padding etkisini örneklerle değerlendirme
- TLAB davranışını gözlemlemek için pratik metrikler seçme
6. Garbage Collection Temelleri ve Doğru Seçim
- GC hedeflerini gecikme ve throughput ile ilişkilendirme
- G1 ve ZGC temel farklarını kullanım senaryosuna göre ayırma
- Pause time okuma ve tuning ama aşırı ayar riskini yönetmek gerekir
- GC loglarını etkinleştirme ve standart formatla toplama
- Heap sizing kararını ölçümle desteklemek için yöntem kurma
7. GC Log Analizi ve Tuning Pratikleri
- GC loglarından temel KPI çıkarma
- Young ve old gen baskısını anlamak için trend analizi
- Humongous allocation etkisi ve fragmentation ama kök neden farklı olabilir
- Throughput düşüşlerini loglarla ilişkilendirme
- Tuning değişikliklerini küçük adımlarla uygulama ve doğrulama
- Production değişikliği için güvenli rollout yaklaşımı belirleme
8. Heap Dump ve Memory Leak Teşhisi
- Heap dump alma ve saklama stratejisi belirleme
- Dominator tree ile şişen nesneleri hızlı tespit etme
- Leak mi cache mi ayrımı ama objelerin yaşam süresi incelenmelidir
- Retained size yorumlama ile gerçek etkiyi ölçme
- Classloader leak belirtilerini sistematik kontrol etme
9. Java Flight Recorder ve JMC ile Üretim Tanılama
- JFR event tiplerini doğru seçme
- Recording stratejisi ile düşük overhead sağlama
- Profiling verisini yorumlama ve aksiyon planı çıkarma çünkü veri çok katmanlıdır
- Allocation profiling ile churn noktalarını ortaya çıkarma
- Thread ve lock eventleriyle gecikme korelasyonu kurma
10. Async Profiler ve Linux Gözlemleri
- Async profiler kurulumu ve temel kullanım
- Perf ve top çıktıları ile JVM metriklerini eşleştirme
- Kernel kaynaklı gecikmeler ama JVM içi sinyallerle birlikte okunmalıdır
- CPU pinning ve cgroup limitlerini doğru yorumlama
- NUMA etkisini anlamak için basit kontrol listesi oluşturma
11. Uygulama Seviyesi Performans: I/O, Serialization, Network
- JSON ve binary formatların etkisini kıyaslama
- HTTP client ayarlarını gecikme hedeflerine göre optimize etme
- Connection pooling stratejisi ama timeout yönetimi unutulmamalıdır
- Backpressure yaklaşımı ile kuyruk şişmesini önleme
- Batching ve streaming kararlarını metriklerle destekleme
12. Gözlemlenebilirlik: Metrics, Tracing ve Log Tasarımı
- Önemli metrikleri sade bir setle belirleme
- Micrometer ile metrik standardizasyonu sağlama
- Distributed tracing kullanımı ve correlation ama maliyeti ölçmek gerekir
- Alert kurgusunu noise azaltacak şekilde tasarlama
- Log seviyeleri ve örnekleme ile performansı koruma
- Dashboard tasarımında karar vermeyi hızlandıracak düzen kurma
13. Benchmarking: JMH ile Doğru Mikro Ölçümler
- JMH temel kavramlarını hızlıca kavrama
- Warmup ve measurement ayarları ile güvenilir sonuç üretme
- Dead code elimination riski ama benchmark tasarımıyla engellenebilir
- Parametrik testlerle senaryo kapsamını artırma
- Sonuçları raporlama ve regresyon için kayıt standardı oluşturma
14. Üretimde Performans Yönetimi ve Güvenli İyileştirme
- Baseline oluşturmak için pratik metrik seçimi
- Canary ve gradual rollout ile riski azaltma
- Feature flag stratejisi ve geri dönüş planı ama test kapsamı zorunludur
- Kapasite planlamayı veriyle desteklemek için basit model kurma
- Performans regresyonlarını yakalamak için otomatik kontroller tasarlama
15. Ek Modül: Cache Stratejileri (Caffeine / Redis yaklaşımı)
- Cache kullanımı için doğru problem tanımı yapma
- Caffeine eviction ve TTL seçeneklerini senaryoya göre seçme
- Cache stampede ve consistency ama veri tazeliği planı gerekir
- Redis ile read-through ve write-through yaklaşımını kıyaslama
- Hit rate ve latency metrikleriyle cache başarısını ölçme
- Cache invalidation stratejilerini örneklerle değerlendirme
16. Ek Modül: DB ve ORM Performansına Etki Eden Java Pratikleri
- N+1 problemini hızlı tespit etme
- Connection pool ayarlarını iş yüküne göre optimize etme
- Fetch stratejileri ve batching ama bellek etkisi ölçülmelidir
- Query plan okuma ile uygulama kodunu ilişkilendirme
- ORM cache katmanlarını doğru kullanmak için karar noktaları belirleme
17. Ek Eğitim: Yük Testi ve Baseline Oluşturma Workshop
- Hedef kullanıcı yolculuklarını senaryoya dönüştürme
- Yük profili tanımı ile gerçekçi test dağılımı oluşturma
- Ramp-up ve steady-state kurgusu ama sistem limitleri izlenmelidir
- Sonuçları baseline olarak kaydetme ve karşılaştırma yöntemi belirleme
- Regresyon eşiği tanımı ile otomatik uyarı kriteri oluşturma
- Rapor formatı ile paydaşlara anlaşılır çıktı üretme
Java Performans ve JVM Eğitimi ile İlgili
Sıkça Sorulan Sorular ve Cevapları
JVM performans sorunlarını teşhis ederken hangi araçlar kullanılıyor?
Eğitimde Java Flight Recorder (JFR), Java Mission Control (JMC), async-profiler, thread dump ve heap dump analiz araçları üzerinden ilerlenir. Hangi aracın hangi senaryoda doğru sinyal verdiği ve düşük riskle nasıl uygulanacağı pratik örneklerle gösterilir.
Garbage Collection tuning sürecinde hangi karar noktaları ele alınıyor?
GC hedefleri (pause time ve throughput), heap sizing, allocation davranışı, log okuma ve değişikliklerin ölçüme dayalı doğrulanması çalışılır. G1 ve ZGC gibi seçeneklerin kullanım senaryoları ve tuning riskleri netleştirilir.
CPU ve thread kaynaklı darboğazlar nasıl ayırt ediliyor?
Sampling profilleme, flame graph okuma, lock contention analizi ve thread dump yorumlama birlikte ele alınır. Darboğazın JVM içi mi yoksa OS seviyesinde mi oluştuğu metrik korelasyonu ile ayrıştırılır.
Benchmarking tarafında doğru ölçüm için hangi hatalardan kaçınılıyor?
JMH ile warmup, measurement, fork ve parametrik test kurguları üzerinde durulur. Dead code elimination, JVM optimizasyonları, yanlış senaryo seçimi ve gürültülü ortam gibi hatalar örneklerle gösterilerek güvenilir ölçüm yaklaşımı oluşturulur.
Eğitim içeriğini ihtiyaçlarımıza göre özelleştirebilir misiniz?
Evet. Eğitim öncesinde ihtiyaç analizi yaparak içerik ve örnekleri ekibinize göre uyarlayabiliriz. Modüller eklenebilir, bazı başlıklar derinleştirilebilir veya sadeleştirilebilir.
Eğitim yeri, yöntemi ve sertifikasyon süreci nasıl ilerliyor?
Eğitim online (canlı) veya yerinde gerçekleştirilebilir; tarih ve saatleri ekibinizin uygunluğuna göre planlarız. Program sonunda katılım sertifikası verilir; talep edilirse ölçme-değerlendirme ve raporlama eklenebilir.



