VDS Sunucu

Linux I/O Scheduler Nedir? Disk Performansı Nasıl Optimize Edilir?

21 Eylül 2026 12 dk okuma 54 görüntülenme Burak A.
Linux I/O Scheduler Nedir? Disk Performansı Nasıl Optimize Edilir?

Bir VDS sunucuda CPU ve RAM yeterli olduğu halde sistemin zaman zaman yavaşladığını fark edebilirsiniz. Özellikle veritabanı işlemleri, dosya transferleri, backup süreçleri ve yoğun log yazma işlemleri sırasında disk tarafında beklemeler oluşabilir. Linux I/O Scheduler nedir sorusunun cevabı tam olarak burada önem kazanır. Linux I/O Scheduler, işletim sisteminin disk üzerindeki okuma ve yazma isteklerini nasıl yöneteceğini ve sıralayacağını belirleyen mekanizmadır.

VDS performansında yalnızca SSD veya NVMe kullanmak yeterli değildir. Depolama cihazına gönderilen I/O isteklerinin nasıl yönetildiği de gecikme ve sistem davranışı üzerinde etkili olabilir.

VDS disk I/O ve IOPS performansı rehberimizde bu konunun temelini daha detaylı ele almıştık. I/O Scheduler ise bu yapının işletim sistemi tarafındaki önemli parçalarından biridir.

🔍 Linux I/O Scheduler Nedir?

Linux I/O Scheduler, uygulamalardan gelen disk okuma ve yazma isteklerinin işletim sistemi tarafından yönetilmesini sağlayan block layer bileşenlerinden biridir.

Basitleştirilmiş yapı şu şekilde düşünülebilir:

Uygulama → Dosya Sistemi → Linux Block Layer → I/O Scheduler → Depolama

Birden fazla uygulama aynı anda diske eriştiğinde çok sayıda I/O isteği oluşabilir. Scheduler, kullanılan yapıya göre bu isteklerin nasıl kuyruğa alınacağını ve depolama cihazına nasıl gönderileceğini belirler.

Özellikle VDS sunucularda web sunucusu, veritabanı, Docker, backup ve log servisleri aynı anda çalışıyorsa disk üzerinde çok sayıda I/O işlemi oluşabilir.

💡 İpucu:
VDS sunucunuzda disk kaynaklı yavaşlama yaşanıyorsa yalnızca disk modeline bakmak yerine I/O Wait, disk latency ve I/O yoğunluğunu birlikte inceleyin.

⚙️ I/O Scheduler Ne İşe Yarar?

Bir VDS üzerinde aynı anda birçok servis çalışabilir:

  • MySQL veya MariaDB
  • Web sunucusu
  • PHP-FPM
  • Docker container’ları
  • Backup servisleri
  • Log sistemleri
  • Dosya transferleri
  • Cache işlemleri

Bu işlemlerin tamamı depolama cihazına I/O isteği gönderebilir.

Scheduler’ın amacı, bu isteklerin belirli bir yöntemle yönetilmesini sağlamaktır.

Bazı scheduler’lar gecikmeyi kontrol etmeye, bazıları kaynakları daha adil paylaşmaya, bazıları ise gereksiz yeniden sıralama işlemlerini azaltmaya odaklanır.

Bu nedenle Linux I/O Scheduler nedir sorusunun yanında, kullanılan scheduler’ın hangi iş yüküne uygun olduğunu anlamak da önemlidir.

💾 Linux’ta Disk I/O Nasıl Çalışır?

Modern Linux sistemlerinde block I/O altyapısının önemli parçalarından biri blk-mq, yani Multi-Queue Block I/O yapısıdır.

Bu yapı özellikle SSD ve NVMe gibi yüksek paralellik sunabilen depolama cihazlarında birden fazla I/O kuyruğunun kullanılmasına olanak sağlar.

Örneğin bir web sunucusunda aynı anda onlarca işlem diske erişmeye çalışıyorsa Linux bu istekleri block layer üzerinden depolama cihazına iletir.

Burada scheduler seçimi devreye girebilir.

Disk tarafındaki gerçek davranışı incelemek için daha önce hazırladığımız iostat ile Linux disk I/O performansı ölçme rehberini de kullanabilirsiniz. iostat ile Linux Disk I/O Performansı Nasıl Ölçülür?

Linux I/O Scheduler nedir ve nasıl çalışır
Linux I/O Scheduler, uygulamalardan gelen disk isteklerini Linux Block Layer üzerinden yöneterek depolama cihazına iletir.

🧩 Linux I/O Scheduler Türleri Nelerdir?

Linux sisteminizde kullanılabilecek scheduler seçenekleri kernel sürümüne ve yapılandırmaya göre değişebilir.

Yaygın olarak karşılaşabileceğiniz seçenekler:

  • none
  • mq-deadline
  • bfq
  • kyber

Ancak her sistemde bu seçeneklerin tamamının bulunması gerekmez.

Kendi sunucunuzdaki kullanılabilir scheduler’ları şu komutla görebilirsiniz:

cat /sys/block/sda/queue/scheduler

Örneğin:

[mq-deadline] none bfq

çıktısında köşeli parantez içerisindeki scheduler aktif olan seçenektir.

🔍 Teknik Not:
/sys/block/ altında bulunan cihaz isimleri sistemden sisteme değişebilir. Bu nedenle önce lsblk ile disk adlarını kontrol etmek daha güvenlidir.

🚀 None I/O Scheduler Nedir?

none, I/O isteklerini mümkün olduğunca yeniden sıralamadan ilgili kuyruğa gönderen scheduler yaklaşımıdır.

Özellikle modern SSD ve NVMe depolama cihazlarında değerlendirilebilecek seçeneklerden biridir.

Ancak:

“NVMe kullanıyorum, kesinlikle none kullanmalıyım.”

şeklinde genel bir kural yoktur.

Depolama cihazı, Linux kernel sürümü, workload ve sanallaştırma altyapısı birlikte değerlendirilmelidir.

VDS üzerinde kullanılan depolama altyapısının genel performansını değerlendirirken VDS sunucuda performansın en etkili 10 yolu rehberimizdeki optimizasyonları da göz önünde bulundurabilirsiniz.

⏱️ mq-deadline Nedir?

mq-deadline, I/O isteklerinin belirli gecikme sınırları içerisinde işlenmesine yardımcı olmak amacıyla tasarlanmış scheduler’lardan biridir.

Özellikle okuma ve yazma isteklerinin bekleme sürelerini kontrol altında tutmaya odaklanır.

VDS gibi web sunucusu, veritabanı ve arka plan işlemlerinin aynı depolama kaynağını kullandığı sistemlerde değerlendirilebilir.

💡 İpucu:
Scheduler seçimini yalnızca teorik özelliklere göre değil, gerçek sunucu workload’u üzerinde yapılan ölçümlerle değerlendirmek daha sağlıklıdır.

⚖️ BFQ Nedir?

BFQ, yani Budget Fair Queueing, I/O kaynaklarını farklı işlemler arasında daha kontrollü şekilde paylaşmayı amaçlayan scheduler’dır.

Özellikle latency ve kaynak paylaşımına önem veren iş yüklerinde kullanılabilir.

BFQ’nun düşük latency odaklı davranışı bazı durumlarda maksimum throughput ile farklı sonuçlar ortaya çıkarabilir. Bu nedenle kullanım senaryosu önemlidir.

🧠 Linux I/O Scheduler ile I/O Wait Arasındaki İlişki

Linux I/O Scheduler nedir sorusunu cevaplarken I/O Wait kavramını da anlamak gerekir.

iowait, CPU’nun I/O işlemlerinin tamamlanmasını beklediği zamanla ilişkilidir.

Örneğin:

vmstat 1

veya:

top

kullanarak sistem davranışını inceleyebilirsiniz.

Ancak yüksek iowait gördüğünüzde doğrudan scheduler’ın yanlış olduğunu düşünmek doğru değildir.

Disk performansı, RAID yapısı, sanallaştırma katmanı, host yoğunluğu ve uygulamanın I/O davranışı da etkili olabilir.

Bu konuyu daha ayrıntılı incelemek için I/O Wait nedir? VDS sunucuda disk beklemesi rehberimize göz atabilirsiniz.

🔬 Mevcut I/O Scheduler Nasıl Kontrol Edilir?

Öncelikle diskleri görüntüleyebilirsiniz:

lsblk

Ardından ilgili disk için:

cat /sys/block/sda/queue/scheduler

Örneğin:

[mq-deadline] none bfq

Burada mq-deadline aktif scheduler’dır.

NVMe cihazlarda ise disk adı genellikle nvme0n1 şeklinde olabilir:

cat /sys/block/nvme0n1/queue/scheduler

🔍 Teknik Not:
Komutlarda sda veya nvme0n1 değerini kendi sunucunuzdaki gerçek disk adıyla değiştirmelisiniz.

🛠️ I/O Scheduler Nasıl Değiştirilir?

Scheduler çalışma sırasında değiştirilebilir.

Örneğin:

echo mq-deadline | sudo tee /sys/block/sda/queue/scheduler

Daha sonra:

cat /sys/block/sda/queue/scheduler

ile kontrol edebilirsiniz.

Alternatif olarak:

echo none | sudo tee /sys/block/sda/queue/scheduler

kullanılabilir.

⚠️ Dikkat:
Bu yöntemle yapılan değişiklik sistem yeniden başlatıldığında kalıcı olmayabilir. Üretim sunucularında kalıcı yapılandırma yapmadan önce mevcut ayarı kaydetmek ve değişiklik sonrası performans ölçümü gerçekleştirmek önemlidir.

📊 Hangi I/O Scheduler Tercih Edilmeli?

Tek bir scheduler’ı bütün VDS sunucuları için en iyi seçenek olarak değerlendirmek doğru değildir.

SchedulerGenel yaklaşımKullanım odağı
noneMinimum yeniden sıralamaModern hızlı depolama
mq-deadlineGecikme kontrollüDengeli I/O
bfqKaynak paylaşımıLatency ve fairness
kyberGecikme odaklıBazı düşük gecikmeli iş yükleri

Linux I/O Scheduler nedir sorusunun yanında asıl önemli soru, kullanılan workload için hangi scheduler’ın daha uygun olduğudur.

Burada özellikle VDS’nin genel darboğaz durumunu da hesaba katmak gerekir. Örneğin VDS sunucuda darboğaz tespit etme rehberimizde CPU, RAM ve disk kaynaklarının birlikte nasıl analiz edileceğini ele alıyoruz.

🖥️ VDS Sunucularda I/O Scheduler

VDS ortamlarında fiziksel disk her zaman doğrudan sanal makineye ait değildir.

Genellikle yapı:

VDS → Sanal Disk → Hypervisor → Host Storage → SSD/NVMe/RAID

şeklindedir.

Bu nedenle VDS içerisinde scheduler değiştirmek, fiziksel host tarafındaki bütün I/O problemlerini çözmez.

Örneğin host üzerinde yoğun depolama kullanımı varsa guest işletim sisteminde scheduler değiştirmeniz sorunun tamamını ortadan kaldırmayabilir.

Bu noktada VDS performans sorunu analiz rehberimizde olduğu gibi CPU, RAM, disk, Load Average ve sanallaştırma katmanını birlikte değerlendirmek gerekir.

💡 NVMe Sunucularda Scheduler Değiştirmek Gerekir mi?

Her NVMe sunucuda scheduler değiştirmek gerekli değildir.

Modern NVMe cihazları yüksek paralellik ve çoklu queue yapılarından yararlanabilir. none gibi basit scheduler’lar bu tür depolama cihazlarında değerlendirilebilir.

Ancak gerçek performans sonucu workload’a göre değişebilir.

Bu nedenle önce:

cat /sys/block/nvme0n1/queue/scheduler

ile mevcut durumu kontrol edin.

Ardından gerçek kullanım senaryosunda ölçüm yapın.

🧪 Scheduler Değişikliğini Nasıl Test Etmeli?

Scheduler değiştirdikten sonra performansı ölçmek için:

iostat -xz 1

kullanabilirsiniz.

Kontrollü disk testleri için ise:

fio

aracı kullanılabilir.

Özellikle şu değerleri karşılaştırın:

  • IOPS
  • Ortalama latency
  • await
  • Disk utilization
  • Read throughput
  • Write throughput
  • CPU kullanımı

Örneğin iostat ile disk I/O performansını ölçme rehberimizde gerçek sistem yükü altında disk davranışını nasıl inceleyebileceğinizi detaylandırıyoruz.

⚠️ Dikkat:
Sadece MB/s değerine bakmayın. Veritabanı gibi küçük ve rastgele I/O yapan uygulamalarda latency ve IOPS çok daha anlamlı olabilir.

🔗 I/O Scheduler ile VDS Darboğazı

Bir VDS yavaşladığında tek bir bileşene odaklanmak yerine bütün kaynakları değerlendirmek gerekir.

CPU yüksekse: CPU darboğazı araştırılmalı.

CPU Steal Time yüksekse: Hypervisor ve fiziksel CPU kaynak paylaşımı incelenmeli.

I/O Wait yüksekse: Depolama tarafı araştırılmalı.

Disk latency yüksekse: Depolama altyapısı incelenmeli.

IOPS sınırına ulaşılıyorsa: Depolama veya sanallaştırma limitleri kontrol edilmeli.

Özellikle CPU tarafında problem olup olmadığını anlamak için CPU Steal Time nedir? VDS sunucuda CPU bekleme sorunu rehberimize bakabilirsiniz.

Bu nedenle Linux I/O Scheduler, VDS performans analizinin yalnızca bir parçasıdır.

🧱 Sanallaştırma Katmanı da Neden Önemli?

VDS performansını değerlendirirken yalnızca sanal makinenin içerisindeki kaynaklara bakmak bazen yeterli değildir.

Fiziksel CPU kaynaklarının birden fazla sanal makine arasında paylaşılması, sanallaştırma altyapısının çalışma şekli ve kaynak tahsisi de sistem davranışını etkileyebilir.

Örneğin CPU Overcommit nedir? VDS sunucuda işlemci nasıl paylaştırılır? rehberimizde fiziksel işlemci kaynaklarının sanal makineler arasında nasıl paylaştırılabildiğini incelemiştik.

Benzer şekilde VDS içerisindeki sanal işlemci kaynaklarının ne anlama geldiğini anlamak için vCPU nedir? Fiziksel CPU’dan farkı nedir? rehberimize göz atabilirsiniz.

⚠️ Scheduler Değiştirirken Nelere Dikkat Edilmeli?

Değişiklik öncesinde mevcut ayarı kaydedin:

cat /sys/block/sda/queue/scheduler

Diskleri kontrol edin:

lsblk

Birden fazla depolama cihazınız varsa hangi cihaz üzerinde işlem yaptığınızdan emin olun.

Özellikle üretim ortamında değişiklikleri doğrudan uygulamak yerine mümkünse test ortamında denemek daha güvenlidir.

Ayrıca scheduler değişikliğini tek başına değerlendirmek yerine VDS’nin genel performansını da takip etmek gerekir.

❓ Sık Sorulan Sorular

Linux I/O Scheduler nedir?

Linux I/O Scheduler, disk üzerindeki okuma ve yazma isteklerinin işletim sistemi tarafından nasıl yönetileceğini belirleyen mekanizmadır.

Linux’ta I/O Scheduler nasıl kontrol edilir?

cat /sys/block/sda/queue/scheduler

komutuyla mevcut ve kullanılabilir scheduler’ları görebilirsiniz.

VDS için hangi I/O Scheduler daha iyidir?

Tek bir seçenek bütün VDS sunucuları için uygun değildir. Disk türü, workload, Linux kernel yapısı ve sanallaştırma altyapısı birlikte değerlendirilmelidir.

NVMe için none kullanılmalı mı?

none modern NVMe sistemlerinde değerlendirilebilir ancak otomatik olarak en iyi seçenek değildir.

I/O Scheduler değiştirmek VDS’yi hızlandırır mı?

Bazı workload’larda olumlu sonuç verebilir. Ancak VDS performans sorunlarının tamamı scheduler kaynaklı değildir.

Scheduler değişikliği kalıcı mıdır?

Sysfs üzerinden yapılan değişiklik genellikle çalışma zamanı değişikliğidir ve yeniden başlatma sonrasında kalıcı olmayabilir.

Linux I/O Scheduler ile VDS disk performansı optimizasyonu
Doğru I/O Scheduler seçimi ve performans ölçümü, VDS sunucularda disk kaynaklarının daha verimli kullanılmasına yardımcı olabilir.

🏁 Sonuç

Linux I/O Scheduler nedir sorusunun temel cevabı, Linux’un disk I/O isteklerini yönetmek ve depolama cihazına nasıl gönderileceğini belirlemek için kullandığı mekanizmadır.

none, mq-deadline, bfq ve bazı sistemlerde kyber gibi seçeneklerle karşılaşabilirsiniz. Ancak scheduler seçimini yalnızca genel tavsiyelere göre yapmak yerine kendi VDS sunucunuzdaki gerçek workload’u analiz etmek daha doğru yaklaşımdır.

Özellikle VDS performansında I/O Wait, disk latency, IOPS, CPU Steal Time ve genel sistem darboğazlarını birlikte değerlendirmek gerekir.

Daha geniş bir optimizasyon kontrolü yapmak isterseniz VDS sunucuda performansın en etkili 10 yolu rehberimizi de tamamlayıcı kaynak olarak kullanabilirsiniz.

🚀 Kısacası amaç sadece scheduler değiştirmek değil, sunucunuzdaki gerçek I/O problemini tespit edip buna uygun yapılandırmayı seçmektir.

Paylaş:
Tüm Yazılara Dön Hemen İnceleyin → VDS Sunucu Paketleri Yüksek performanslı, tam izole VDS sunucu paketlerimizi inceleyin. Tam izole kaynak NVMe SSD %99.9 uptime

Yorum Yap

E-posta adresiniz yayınlanmayacaktır. Zorunlu alanlar işaretlenmiştir.

Yardıma mı ihtiyacınız var? Size nasıl yardımcı olabiliriz?
WhatsApp Destek Bizi Arayın E-posta Gönder