Java sanal iş parçacıkları ve mikroservis performansı: Bloklayan giriş/çıkış tabanlı mimariler üzerine bir analiz
Java virtual threads and microservice performance: An analysis of blocking input/output-based architectures
- Tez No: 1010518
- Danışmanlar: DR. ÖĞR. ÜYESİ MUAMMER AKÇAY
- Tez Türü: Yüksek Lisans
- Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
- Anahtar Kelimeler: Java, Mikroservis, Performans analizi, Performans ölçümleri, Verimlilik analizi, Java, Microservice, Performance analysis, Performance measurements, Productivity analysis
- Yıl: 2026
- Dil: Türkçe
- Üniversite: Kütahya Dumlupınar Üniversitesi
- Enstitü: Lisansüstü Eğitim Enstitüsü
- Ana Bilim Dalı: Bilgisayar Yazılımı Ana Bilim Dalı
- Bilim Dalı: Belirtilmemiş.
- Sayfa Sayısı: Belirtilmemiş.
Özet
Modern mikroservis mimarileri, doğaları gereği yoğun Giriş/Çıkış (G/Ç) operasyonlarına bağımlıdır ve bu durum, yüksek eşzamanlılık yönetimi gerektirir. Geleneksel“istek başına iş parçacığı”(thread-per-request) modeli, işletim sistemi tarafından yönetilen ve maliyetli olan platform iş parçacıklarının (platform threads) G/Ç beklemesi sırasında bloke olması nedeniyle ciddi performans ve ölçeklenebilirlik sorunlarına yol açmaktadır. Bu darboğaz, sistem verimini (throughput) düşürürken, gecikmeyi (latency) artırır ve kaynakların verimsiz kullanılmasına neden olur. Bu tez çalışması, Java 21 ile sunulan Sanal İş Parçacıklarının (Virtual Threads), bu köklü soruna getirdiği çözümü ampirik olarak analiz etmeyi amaçlamaktadır. Çalışmanın temel hedefi, bloklayan G/Ç operasyonları içeren kontrollü bir mikroservis mimarisinde, Sanal İş Parçacıklarının geleneksel platform iş parçacığı modeline kıyasla sistem performansı üzerindeki etkilerini nicel verilerle ortaya koymaktır. Bu hedef doğrultusunda, servisler arası bloklayan HTTP çağrılarını simüle eden üç adet Spring Boot uygulamasından oluşan bir test ortamı tasarlanmıştır. Bu ortamda, artan eşzamanlı kullanıcı yükü altında, platform iş parçacığı havuzuyla sınırlandırılmış geleneksel model ile Sanal İş Parçacıklarının etkinleştirildiği saf model ve Semaphore kullanılarak eşzamanlılık denetiminin sağlandığı hibrit model karşılaştırmalı olarak incelenmiştir. Performans analizi; verim, yanıt süresi, sistem kararlılığı ve kaynak verimliliği gibi temel metrikler üzerinden gerçekleştirilmiştir. Elde edilen bulgular, Sanal İş Parçacıklarının özellikle yüksek eşzamanlılık gerektiren G/Ç'ye bağlı senaryolarda platform iş parçacıklarına göre belirgin bir üstünlük sergilediğini göstermiştir. Platform iş parçacığı havuzunun doygunluğa ulaştığı yüksek yük seviyesinde (5.000 istek) Semaphore ile optimize edilmiş Sanal İş Parçacıkları kullanan sistemin toplam işlem süresi 61,58 saniyeden 35,59 saniyeye gerileyerek %42 oranında kısalmış ve sistem verimi 1,7 kata kadar artmıştır. Ayrıca kritik yük seviyesinde (4.000 istek) saf Sanal İş Parçacığı modeli %25 hata oranı ile sistem kararlılığını yitirirken, hibrit model %100 başarı oranı ile çalışmaya devam etmiştir. Bununla birlikte çalışma, Sanal İş Parçacıklarının kontrolsüz kullanımının veritabanı kaynaklarında aşırı çekişmeye (resource contention) yol açarak sistem hatalarına neden olabildiğini; bu nedenle üretim ortamlarında Semaphore gibi geri basınç (backpressure) mekanizmalarının uygulanmasının mimari bir zorunluluk haline geldiğini ortaya koymuştur. Ayrıca, Sanal İş Parçacıklarının bu üstün performansı çok daha az sayıda işletim sistemi iş parçacığı kullanarak başardığı ve bu sayede sistem kaynaklarını önemli ölçüde daha verimli kullandığı gözlemlenmiştir. Sonuç olarak bu çalışma, Sanal İş Parçacıklarının, reaktif programlama gibi karmaşık kodlama paradigmalarına geçiş yapma zorunluluğu olmaksızın, geleneksel bloklayan kodlama stilinin basitliği ve okunabilirliği ile yüksek ölçeklenebilirlik ve performans sunduğunu kanıtlamaktadır. Bu yeni teknoloji, doğru mimari desenlerle desteklendiğinde, G/Ç'ye bağlı modern Java uygulamalarının geliştirilmesinde ve performansının iyileştirilmesinde devrim niteliğinde bir potansiyel taşımaktadır.
Özet (Çeviri)
Modern microservice architectures inherently rely on intensive Input/Output (I/O) operations, a condition that necessitates high concurrency management. The traditional“thread-per-request”model leads to serious performance and scalability issues due to the blocking of costly, operating system-managed platform threads during I/O waiting periods. This bottleneck reduces system throughput while increasing latency and causing inefficient resource utilization. This thesis aims to empirically analyze the solution brought to this fundamental problem by Virtual Threads, introduced in Java 21. The primary objective of the study is to quantitatively demonstrate the effects of virtual threads on system performance compared to the traditional platform thread model within a controlled microservice architecture containing blocking I/O operations. To this end, a test environment consisting of three Spring Boot applications simulating inter-service blocking HTTP calls was designed. In this environment, under increasing concurrent user load, a comparative analysis was conducted among the traditional model limited by a platform thread pool, the pure model where virtual threads are enabled, and the hybrid model where concurrency control is provided using Semaphores. The performance analysis was carried out based on key metrics such as throughput, response time, system stability, and resource efficiency. The findings indicate that virtual threads exhibit a distinct superiority over platform threads, particularly in I/O-bound scenarios requiring high concurrency. At peak load levels (5.000 requests) where the platform thread pool reached saturation, the system using virtual threads optimized with Semaphores reduced total processing time from 61,58 seconds to 35,59 seconds (by 42%) and increased system throughput by up to 1.7 times. Additionally, at the critical load level (4.000 requests), while the pure Virtual Thread model lost system stability with a 25% error rate, the hybrid model continued to operate with a 100% success rate. Nevertheless, the study also revealed that the uncontrolled use of virtual threads can lead to system errors by causing excessive resource contention in database resources; therefore, the implementation of backpressure mechanisms, such as Semaphores, in production environments is an architectural necessity. Furthermore, it was observed that virtual threads achieved this superior performance using significantly fewer operating system threads, thereby utilizing system resources much more efficiently. In conclusion, this study demonstrates that virtual threads offer high scalability and performance combined with the simplicity and readability of the traditional blocking coding style, without the necessity of transitioning to complex coding paradigms like reactive programming. When supported by appropriate architectural patterns, this new technology holds promising potential for the development and performance improvement of I/O-bound modern Java applications.
Benzer Tezler
- Kural tabanlı optimizasyon ile ağ saldırılarının tespiti
Detection of network attacks with rule-based optimization
OĞUZ ÖZGER
Yüksek Lisans
Türkçe
2023
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolSakarya Uygulamalı Bilimler ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
DOÇ. DR. HALİT ÖZTEKİN
- Executing codes for IA-32 (x86) architecture on java virtual machines
IA-32 (x86) mimarisi için geliştirilmiş kodların java sanal makinasında koşturulması
ERDEM GÜVEN
Yüksek Lisans
İngilizce
2009
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolDokuz Eylül ÜniversitesiBilgisayar Mühendisliği Bölümü
YRD. DOÇ. DR. ŞEN ÇAKIR
- Kurumsal kaynak planlama yazılımları, sap yazılımı incelemesi ve perakende satış alanında SAP ile enegre bir yazılım geliştirilmesi
Analysis of erp softwares, SAP software and developing a sap integrated retailing software
ÖMER AYDIN
Yüksek Lisans
Türkçe
2014
Endüstri ve Endüstri MühendisliğiDumlupınar ÜniversitesiElektrik-Elektronik Mühendisliği Ana Bilim Dalı
YRD. DOÇ. DR. HASAN TEMURTAŞ
- Bir dağıtılmış ortak bellek sisteminin gerçeklenmesi
Implementation of a distributed shared memory system
YUNUS EMRE SELÇUK
Yüksek Lisans
Türkçe
2000
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik ÜniversitesiDOÇ.DR. NADİA ERDOĞAN
- Design and implementation of shared memory and hybrid communication models for Portico RTI
Portico RTI için paylaşımlı hafıza ve hibrit iletişim modellerinin tasarımı ve geliştirilmesi
SERKAN ÖZEN
Yüksek Lisans
İngilizce
2014
Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolOrta Doğu Teknik ÜniversitesiBilgisayar Mühendisliği Ana Bilim Dalı
YRD. DOÇ. DR. SELİM TEMİZER