- 23 Kasım 2025
- 1,103
- 46
### Temel Komutlarla Hızlı Bakış
Linux sistemlerinde performans analizi yapmak için birçok temel komut mevcuttur. Bu komutlar, sistemin anlık durumunu hızla gözlemlemek ve olası sorunları belirlemek için ilk başvuru noktalarıdır. Örneğin, `top` komutu CPU ve bellek kullanımı, çalışan süreçler ve sistem yükü hakkında dinamik bir genel bakış sunar. Benzer şekilde, `htop` komutu `top`'ın daha kullanıcı dostu ve interaktif bir versiyonudur. Bellek durumunu kontrol etmek için `free -h` komutu kullanılır; bu komut toplam, kullanılan ve boş bellek miktarını kolayca okunabilir formatta gösterir. Disk alanı kullanımını anlamak için ise `df -h` komutu dosya sistemlerinin doluluk oranlarını listeler. Bu komutlar sayesinde sistemin anlık sağlık durumu hakkında hızlıca fikir edinmek mümkündür. Sonuç olarak, bu temel araçlar, herhangi bir derinlemesine incelemeden önce sistem yöneticileri için vazgeçilmezdir.
### CPU Performansını Anlamak
CPU performansı, bir Linux sisteminin genel verimliliği için kritik bir göstergedir. `mpstat` gibi komutlar, her bir CPU çekirdeğinin ayrı ayrı kullanım istatistiklerini detaylandırır. `sar -u` ise CPU kullanımının zaman içindeki değişimini gösteren güçlü bir araçtır. CPU yükü (load average) ortalaması, sistemin ne kadar yoğun çalıştığını ifade eder; bu değer, çalışan ve çalışmaya hazır süreçlerin ortalama sayısını temsil eder. Yüksek bir yük ortalaması, CPU'nun bir darboğaz olabileceğine işaret edebilir. Bununla birlikte, sadece yüksek kullanım oranlarına bakmak yanıltıcı olabilir; örneğin, bir sunucu yoğun bir hesaplama görevi yaparken CPU'nun %100 kullanılması beklenen bir durumdur. Asıl önemli olan, beklenmedik zamanlarda ortaya çıkan yüksek kullanım veya uzun süreli `iowait` (disk G/Ç bekleyişi) değerleridir. Başka bir deyişle, CPU performansını değerlendirirken, sistemin görevini ve genel bağlamı göz önünde bulundurmak büyük önem taşır.
### Bellek Kullanımını Optimize Etmek
Bellek, Linux sistemlerinin hızlı ve sorunsuz çalışmasında merkezi bir role sahiptir. `free -h` komutunun yanı sıra, `vmstat` da bellek, takas (swap), disk ve CPU etkinliklerini özetleyen çok yönlü bir araçtır. Özellikle `cached` ve `buffers` alanları, Linux'un disk G/Ç işlemlerini hızlandırmak için kullandığı belleği temsil eder ve bu belleğin "boş" olmadığını bilmek önemlidir. Aşırı takas (swap) kullanımı, fiziksel belleğin yetersiz kaldığını ve sistemin disk üzerinde veri okuyup yazdığını gösterir; bu durum ciddi performans düşüşlerine yol açar. Bellek sızıntılarını tespit etmek için ise belirli uygulamaların bellek tüketimini düzenli olarak izlemek gerekir. Örneğin, `ps aux --sort=-rss` komutu en fazla bellek kullanan süreçleri listeler. Bu nedenle, bellek yönetimini anlamak ve düzenli olarak izlemek, sistemin uzun vadeli kararlılığı ve performansı için elzemdir.
### Disk I/O Performansını İzlemek
Disk G/Ç performansı, özellikle veritabanı sunucuları, dosya sunucuları veya yoğun G/Ç işlemleri yapan uygulamalar için hayati öneme sahiptir. `iostat` komutu, her bir diskin okuma/yazma hızlarını, işlem sayısını ve G/Ç bekleme sürelerini detaylı bir şekilde gösterir. `iotop` ise süreç bazında disk G/Ç kullanımını anlık olarak izlemeye olanak tanır, bu da hangi uygulamanın diski yoğun kullandığını belirlemek için oldukça faydalıdır. Yüksek `await` (bekleme süresi) değerleri veya uzun `queue length` (kuyruk uzunluğu), diskin bir darboğaz haline geldiğini ve taleplere yetişemediğini işaret edebilir. SSD'ler, geleneksel HDD'lere göre çok daha yüksek G/Ç performansına sahiptir, bu nedenle diskin türü de performansı etkiler. Başka bir deyişle, disk G/Ç performansını doğru analiz etmek, sistemin genel yanıt verme süresini ve uygulama performansını doğrudan etkiler.
### Ağ Performansını Değerlendirmek
Ağ performansı, özellikle internete açık sunucular ve dağıtık sistemler için kritik bir izleme alanıdır. `netstat` ve `ss` komutları, açık ağ bağlantılarını, dinleme portlarını ve ağ istatistiklerini görüntülemek için kullanılır. `iftop` ise ağ arayüzleri üzerinden geçen trafiği bant genişliği bazında anlık olarak gösterir, böylece hangi uygulamaların veya adreslerin ağı yoğun kullandığını hızlıca görebiliriz. Paket kaybı, yüksek gecikme süreleri (latency) veya düşük bant genişliği, ağ bağlantısında sorunlar olduğunu gösteren belirtilerdir. Ağ kartı hataları veya yanlış yapılandırmalar da performansı olumsuz etkileyebilir. Örneğin, bir web sunucusunda yüksek trafik yükü altında ağ performansının düzenli olarak izlenmesi, kullanıcılara kesintisiz hizmet sunabilmek için hayati öneme sahiptir. Sonuç olarak, ağ performansını doğru değerlendirmek, dış dünya ile etkileşim halindeki her sistem için temel bir zorunluluktur.
### Kaynak Kullanımını Sürekli Takip ve Loglama
Anlık performans izleme önemli olsa da, sistemin davranışını zaman içinde anlamak ve potansiyel sorunları proaktif olarak tespit etmek için sürekli takip ve loglama vazgeçilmezdir. `sar` (System Activity Reporter) aracı, CPU, bellek, disk I/O ve ağ istatistiklerini belirli aralıklarla toplayarak geçmiş verileri analiz etme olanağı sunar. Bununla birlikte, daha kapsamlı ve merkezi bir izleme için Prometheus, Grafana, Zabbix veya Nagios gibi profesyonel araçlar tercih edilir. Bu araçlar, verileri toplar, görselleştirir, alarm kuralları oluşturur ve uzun vadeli eğilimleri analiz etmeye olanak tanır. Sistem log dosyaları (örneğin `/var/log/syslog`, `/var/log/kern.log`), çekirdek mesajları ve uygulama hataları hakkında önemli ipuçları barındırır. Bu nedenle, düzenli log analizi ve otomatik izleme sistemleri, sistem yöneticilerinin sorunları büyümeden önce tespit etmelerini sağlar.
### Darboğazları Tespit ve Çözüm Yöntemleri
Performans izlemenin nihai amacı, sistemdeki darboğazları (bottleneck) tespit etmek ve bunları ortadan kaldırmaktır. Bir darboğaz, sistemin genel performansını sınırlayan tek bir kaynak veya bileşendir. İzleme verilerini analiz ederek, sorunun CPU, bellek, disk G/Ç veya ağ kaynaklarından hangisinde olduğunu belirlemek ilk adımdır. Örneğin, sürekli yüksek `iowait` değerleri diskin bir darboğaz olduğunu gösterirken, bellek yetersizliği `swap` kullanımını artırır. Bir uygulamanın sürekli %100 CPU kullanması ise uygulama içi optimizasyona ihtiyaç duyulduğunu işaret edebilir. Darboğaz tespit edildikten sonra çözüm yolları aranır. Bu, donanım yükseltmesi (daha hızlı CPU, daha fazla RAM, SSD kullanımı), yazılım optimizasyonu (kod düzenlemeleri, veritabanı indekslemeleri) veya yapılandırma değişiklikleri (çekirdek parametreleri, uygulama ayarları) olabilir. Başka bir deyişle, doğru teşhis, etkili ve kalıcı bir çözüm için anahtardır.
Linux sistemlerinde performans analizi yapmak için birçok temel komut mevcuttur. Bu komutlar, sistemin anlık durumunu hızla gözlemlemek ve olası sorunları belirlemek için ilk başvuru noktalarıdır. Örneğin, `top` komutu CPU ve bellek kullanımı, çalışan süreçler ve sistem yükü hakkında dinamik bir genel bakış sunar. Benzer şekilde, `htop` komutu `top`'ın daha kullanıcı dostu ve interaktif bir versiyonudur. Bellek durumunu kontrol etmek için `free -h` komutu kullanılır; bu komut toplam, kullanılan ve boş bellek miktarını kolayca okunabilir formatta gösterir. Disk alanı kullanımını anlamak için ise `df -h` komutu dosya sistemlerinin doluluk oranlarını listeler. Bu komutlar sayesinde sistemin anlık sağlık durumu hakkında hızlıca fikir edinmek mümkündür. Sonuç olarak, bu temel araçlar, herhangi bir derinlemesine incelemeden önce sistem yöneticileri için vazgeçilmezdir.
### CPU Performansını Anlamak
CPU performansı, bir Linux sisteminin genel verimliliği için kritik bir göstergedir. `mpstat` gibi komutlar, her bir CPU çekirdeğinin ayrı ayrı kullanım istatistiklerini detaylandırır. `sar -u` ise CPU kullanımının zaman içindeki değişimini gösteren güçlü bir araçtır. CPU yükü (load average) ortalaması, sistemin ne kadar yoğun çalıştığını ifade eder; bu değer, çalışan ve çalışmaya hazır süreçlerin ortalama sayısını temsil eder. Yüksek bir yük ortalaması, CPU'nun bir darboğaz olabileceğine işaret edebilir. Bununla birlikte, sadece yüksek kullanım oranlarına bakmak yanıltıcı olabilir; örneğin, bir sunucu yoğun bir hesaplama görevi yaparken CPU'nun %100 kullanılması beklenen bir durumdur. Asıl önemli olan, beklenmedik zamanlarda ortaya çıkan yüksek kullanım veya uzun süreli `iowait` (disk G/Ç bekleyişi) değerleridir. Başka bir deyişle, CPU performansını değerlendirirken, sistemin görevini ve genel bağlamı göz önünde bulundurmak büyük önem taşır.
### Bellek Kullanımını Optimize Etmek
Bellek, Linux sistemlerinin hızlı ve sorunsuz çalışmasında merkezi bir role sahiptir. `free -h` komutunun yanı sıra, `vmstat` da bellek, takas (swap), disk ve CPU etkinliklerini özetleyen çok yönlü bir araçtır. Özellikle `cached` ve `buffers` alanları, Linux'un disk G/Ç işlemlerini hızlandırmak için kullandığı belleği temsil eder ve bu belleğin "boş" olmadığını bilmek önemlidir. Aşırı takas (swap) kullanımı, fiziksel belleğin yetersiz kaldığını ve sistemin disk üzerinde veri okuyup yazdığını gösterir; bu durum ciddi performans düşüşlerine yol açar. Bellek sızıntılarını tespit etmek için ise belirli uygulamaların bellek tüketimini düzenli olarak izlemek gerekir. Örneğin, `ps aux --sort=-rss` komutu en fazla bellek kullanan süreçleri listeler. Bu nedenle, bellek yönetimini anlamak ve düzenli olarak izlemek, sistemin uzun vadeli kararlılığı ve performansı için elzemdir.
### Disk I/O Performansını İzlemek
Disk G/Ç performansı, özellikle veritabanı sunucuları, dosya sunucuları veya yoğun G/Ç işlemleri yapan uygulamalar için hayati öneme sahiptir. `iostat` komutu, her bir diskin okuma/yazma hızlarını, işlem sayısını ve G/Ç bekleme sürelerini detaylı bir şekilde gösterir. `iotop` ise süreç bazında disk G/Ç kullanımını anlık olarak izlemeye olanak tanır, bu da hangi uygulamanın diski yoğun kullandığını belirlemek için oldukça faydalıdır. Yüksek `await` (bekleme süresi) değerleri veya uzun `queue length` (kuyruk uzunluğu), diskin bir darboğaz haline geldiğini ve taleplere yetişemediğini işaret edebilir. SSD'ler, geleneksel HDD'lere göre çok daha yüksek G/Ç performansına sahiptir, bu nedenle diskin türü de performansı etkiler. Başka bir deyişle, disk G/Ç performansını doğru analiz etmek, sistemin genel yanıt verme süresini ve uygulama performansını doğrudan etkiler.
### Ağ Performansını Değerlendirmek
Ağ performansı, özellikle internete açık sunucular ve dağıtık sistemler için kritik bir izleme alanıdır. `netstat` ve `ss` komutları, açık ağ bağlantılarını, dinleme portlarını ve ağ istatistiklerini görüntülemek için kullanılır. `iftop` ise ağ arayüzleri üzerinden geçen trafiği bant genişliği bazında anlık olarak gösterir, böylece hangi uygulamaların veya adreslerin ağı yoğun kullandığını hızlıca görebiliriz. Paket kaybı, yüksek gecikme süreleri (latency) veya düşük bant genişliği, ağ bağlantısında sorunlar olduğunu gösteren belirtilerdir. Ağ kartı hataları veya yanlış yapılandırmalar da performansı olumsuz etkileyebilir. Örneğin, bir web sunucusunda yüksek trafik yükü altında ağ performansının düzenli olarak izlenmesi, kullanıcılara kesintisiz hizmet sunabilmek için hayati öneme sahiptir. Sonuç olarak, ağ performansını doğru değerlendirmek, dış dünya ile etkileşim halindeki her sistem için temel bir zorunluluktur.
### Kaynak Kullanımını Sürekli Takip ve Loglama
Anlık performans izleme önemli olsa da, sistemin davranışını zaman içinde anlamak ve potansiyel sorunları proaktif olarak tespit etmek için sürekli takip ve loglama vazgeçilmezdir. `sar` (System Activity Reporter) aracı, CPU, bellek, disk I/O ve ağ istatistiklerini belirli aralıklarla toplayarak geçmiş verileri analiz etme olanağı sunar. Bununla birlikte, daha kapsamlı ve merkezi bir izleme için Prometheus, Grafana, Zabbix veya Nagios gibi profesyonel araçlar tercih edilir. Bu araçlar, verileri toplar, görselleştirir, alarm kuralları oluşturur ve uzun vadeli eğilimleri analiz etmeye olanak tanır. Sistem log dosyaları (örneğin `/var/log/syslog`, `/var/log/kern.log`), çekirdek mesajları ve uygulama hataları hakkında önemli ipuçları barındırır. Bu nedenle, düzenli log analizi ve otomatik izleme sistemleri, sistem yöneticilerinin sorunları büyümeden önce tespit etmelerini sağlar.
### Darboğazları Tespit ve Çözüm Yöntemleri
Performans izlemenin nihai amacı, sistemdeki darboğazları (bottleneck) tespit etmek ve bunları ortadan kaldırmaktır. Bir darboğaz, sistemin genel performansını sınırlayan tek bir kaynak veya bileşendir. İzleme verilerini analiz ederek, sorunun CPU, bellek, disk G/Ç veya ağ kaynaklarından hangisinde olduğunu belirlemek ilk adımdır. Örneğin, sürekli yüksek `iowait` değerleri diskin bir darboğaz olduğunu gösterirken, bellek yetersizliği `swap` kullanımını artırır. Bir uygulamanın sürekli %100 CPU kullanması ise uygulama içi optimizasyona ihtiyaç duyulduğunu işaret edebilir. Darboğaz tespit edildikten sonra çözüm yolları aranır. Bu, donanım yükseltmesi (daha hızlı CPU, daha fazla RAM, SSD kullanımı), yazılım optimizasyonu (kod düzenlemeleri, veritabanı indekslemeleri) veya yapılandırma değişiklikleri (çekirdek parametreleri, uygulama ayarları) olabilir. Başka bir deyişle, doğru teşhis, etkili ve kalıcı bir çözüm için anahtardır.
