tload Komutu ile Terminal Üzerinde Sistem Yük Grafiğini Görselleştirme

Terminalde çalışırken sistem yükünü anlık olarak takip etmek, özellikle sorun giderme sırasında hayat kurtarıcı olabiliyor. top, htop, vmstat gibi araçlar bu iş için ilk akla gelenler, ama bazen tek istediğiniz şey yükün zaman içindeki seyrini grafik olarak görmek. İşte tam bu noktada tload devreye giriyor. Sade, hafif, ve şaşırtıcı derecede işlevsel bir araç.

tload Nedir ve Ne İşe Yarar?

tload, Linux sistemlerde /proc/loadavg dosyasını okuyarak sistem yük ortalamasını terminal üzerinde ASCII grafik biçiminde görselleştiren bir komuttur. procps paket grubunun bir parçası olarak gelir, yani çoğu dağıtımda zaten kurulu bulunur.

Temel mantığı şu: Sisteminizin 1 dakikalık yük ortalamasını belirli aralıklarla okur ve bu değerleri terminal genişliğinize sığacak şekilde sürekli güncellenen bir grafik olarak ekrana yansıtır. Grafiğin yanında uptime çıktısına benzer bir şekilde 1, 5 ve 15 dakikalık yük ortalamaları da gösterilir.

Neden kullanayım diye sorabilirsiniz. Şöyle düşünün: Bir sunucuda anlık bir yük artışı yaşanıyor ve siz bu artışın ne zaman başladığını, ne kadar sürdüğünü ve şu an nerede olduğunu görmek istiyorsunuz. top size anlık değeri verir, ama trendleri görmek için gözlerinizle değerleri takip etmeniz gerekir. tload ise bu trendi görsel olarak önünüze serer.

Kurulum

Debian/Ubuntu tabanlı sistemlerde:

sudo apt-get install procps

Red Hat/CentOS/Fedora sistemlerinde:

sudo yum install procps-ng
# veya
sudo dnf install procps-ng

Arch Linux için:

sudo pacman -S procps-ng

Büyük ihtimalle sisteminizde zaten kurulu. Kontrol etmek için:

which tload
# ya da
tload --version

Temel Kullanım

En basit haliyle sadece şunu yazmanız yeterli:

tload

Bu komutu çalıştırdığınızda terminal pencereniz bir grafiğe dönüşür. Üst kısımda dalgalı bir ASCII çizgisi, alt kısımda ise şuna benzer bir çıktı görürsünüz:

0.45, 0.52, 0.61

Bu üç değer sırasıyla son 1 dakika, 5 dakika ve 15 dakikalık yük ortalamalarıdır. Grafikten çıkmak için Ctrl+C kullanabilirsiniz.

Parametreler ve Kullanım Seçenekleri

tload minimal bir araç olduğu için parametre sayısı da sınırlı ama her biri işe yarar:

-s [skala]: Grafiğin dikey eksenini ölçeklendirir. Varsayılan değer 1’dir. Yüksek yük değerlerine sahip sistemlerde bu değeri artırmak grafiğin daha okunabilir olmasını sağlar. Örneğin -s 5 diyorsanız, grafiğin en üst noktası 5 yük değerine karşılık gelir.

-d [saniye]: Güncelleme aralığını saniye cinsinden belirtir. Varsayılan 5 saniyedir. -d 1 diyerek her saniye güncelleme alabilirsiniz, ancak bu çok yoğun sistemlerde daha fazla kaynak tüketir.

-l: Grafiğin log ölçeğinde gösterilmesini sağlar. Yük değerleri çok geniş bir aralıkta değişen sistemlerde kullanışlıdır.

terminal_adı: tload bir terminal adı alabilir. Bu özellik farklı bir terminal penceresine grafik çıktısı göndermek için kullanılır, biraz aşağıda bunu detaylıca ele alacağız.

Güncelleme Aralığını Ayarlama

tload -d 2

Bu komut grafiği her 2 saniyede bir güncelleyecektir. Hızlı değişen yük değerlerini takip etmek istediğinizde işe yarar.

Skala Ayarı

tload -s 3

Yük değerleriniz genellikle 2-3 civarında seyrediyorsa bu ayar grafiği daha okunabilir kılar. Aksi takdirde grafik hep üst kısmını zorlayarak tam bir anlam ifade etmez.

Farklı Terminal Penceresine Grafik Gönderme

Bu özellik tload‘un en ilginç yanlarından biri. Bir sunucuda birden fazla terminal oturumu açıkken, yük grafiğini ayrı bir pencerede sürekli açık tutabilirsiniz.

Önce hangi terminal oturumlarının açık olduğunu görelim:

who
# veya
w

Çıktıda /dev/pts/0, /dev/pts/1 gibi terminal isimleri görürsünüz. Şimdi grafiği farklı bir terminale yönlendirelim:

tload /dev/pts/1

Bu komutu çalıştırdığınız terminal değil, /dev/pts/1 numaralı terminal grafik gösterecektir. Bir monitörü ikiye bölüp birinde çalışırken diğerinde yük grafiğini sürekli açık tutmak için biçilmiş kaftan.

Mevcut terminalinizin adını öğrenmek için:

tty

Gerçek Dünya Senaryoları

Senaryo 1: Şüpheli Yük Artışlarını Takip Etme

Geçen ay bir müşteri sunucusunda gece yarısı periyodik yük artışları yaşanıyordu. Cron job’lardan mı, backup süreçlerinden mi, yoksa başka bir şeyden mi kaynaklandığını bulmak gerekiyordu. tload‘u -d 10 parametresiyle çalıştırıp sabaha kadar açık bıraktım. Grafik çıktısını script komutuyla da kaydettim:

script -a /tmp/tload_output.txt
tload -d 10

Sabah grafik çıktısını incelediğimde gece 02:00 ve 04:00’te belirgin yük tepeleri olduğunu gördüm. crontab -l ve /etc/cron.d/ içeriğine baktığımda bu saatlerdeki backup ve log rotation görevleri fark etti. Sorun çözüldü.

Senaryo 2: Web Sunucusu Stres Testi Sırasında İzleme

Bir uygulama güncellemesi öncesi yük testi yapıyorsunuz. tload‘u bir pencerede açık bırakıp diğer pencereden ab (Apache Benchmark) ya da wrk ile istek gönderiyorsunuz:

# Bir terminalde
tload -d 1 -s 4

# Diğer terminalde
ab -n 10000 -c 100 https://yourdomain.com/

Yük grafiğinin nasıl tepki verdiğini gözlemlemek, sistemin kapasitesini anlamak açısından hızlı bir görsel bilgi sağlar.

Senaryo 3: Bakım Penceresi Sonrası Doğrulama

Bir servis yeniden başlatması ya da sistem güncellemesi sonrasında yükün normale dönüp dönmediğini hızlıca teyit etmek için tload idealdir. watch komutunu ya da karmaşık araçları açmak yerine tek komutla durumu görebilirsiniz.

tload -d 3

Senaryo 4: Çoklu Sunucu İzleme ile Birlikte Kullanım

SSH üzerinden uzak bir sunucuya bağlanıp tload‘u çalıştırabilirsiniz:

ssh kullanici@sunucu1 "tload -d 5"

Birden fazla sunucuyu aynı anda izlemek için tmux kullanımıyla bunu güçlendirebilirsiniz:

tmux new-session -d -s monitor
tmux split-window -h
tmux send-keys -t monitor:0.0 "ssh user@server1 'tload -d 3'" Enter
tmux send-keys -t monitor:0.1 "ssh user@server2 'tload -d 3'" Enter
tmux attach -t monitor

Bu yapıyla iki sunucunun yük grafiğini yan yana izleyebilirsiniz.

tload Çıktısını Dosyaya Kaydetme

tload normalde terminal çıktısı üretir ve bu çıktıyı dosyaya yönlendirmek doğrudan işe yaramaz çünkü ANSI kontrol karakterleri dosyaya da gider. Ancak birkaç farklı yöntemle kayıt yapılabilir.

script komutuyla terminal oturumunu kaydetmek en temiz yöntem:

script -q -a /var/log/tload_session.log
tload -d 60
# Ctrl+D ile script oturumunu bitirin

Ya da daha basit bir yaklaşımla sadece yük değerlerini kaydetmek istiyorsanız tload‘u kullanmak yerine /proc/loadavg dosyasını düzenli aralıklarla okumak daha mantıklı olacaktır:

while true; do
    echo "$(date '+%Y-%m-%d %H:%M:%S') - $(cat /proc/loadavg)"
    sleep 60
done >> /var/log/load_history.txt

Bu basit döngü size saatlik bakımlarda ya da sorun analizi sırasında çok işe yarayacak bir log dosyası oluşturur.

/proc/loadavg ile Doğrudan Çalışmak

tload‘un arka planda ne okuduğunu anlamak, aracı daha iyi kullanmanızı sağlar:

cat /proc/loadavg

Örnek çıktı:

0.52 0.48 0.61 2/342 18453

Bu değerlerin anlamı:

  • 0.52: Son 1 dakikalık yük ortalaması
  • 0.48: Son 5 dakikalık yük ortalaması
  • 0.61: Son 15 dakikalık yük ortalaması
  • 2/342: Çalışan process sayısı / toplam process sayısı
  • 18453: Son oluşturulan process ID

tload işte bu dosyayı belirli aralıklarla okuyarak grafiği oluşturur. Yük ortalaması değerleri CPU çekirdek sayısına göre yorumlanmalıdır. 4 çekirdekli bir sistemde 4.0 yük ortalaması, tüm çekirdeklerin tam kapasitede çalıştığı anlamına gelir.

Çekirdek sayısını öğrenmek için:

nproc
# veya
grep -c processor /proc/cpuinfo

tload ile Birlikte Kullanılabilecek Komutlar

tload tek başına güçlü bir araç ama bazı komutlarla birlikte kullanıldığında daha değerli hale gelir.

uptime ile yük değerlerini daha ayrıntılı görmek:

watch -n 1 uptime

sar ile geçmiş yük verilerini almak (sysstat paketi gerekli):

sar -q 1 10

Bu komut 1 saniyelik aralıklarla 10 ölçüm yaparak yük ortalamalarını tablo halinde sunar.

Yük artışının nedenini bulmak için ps ile birlikte kullanım:

ps aux --sort=-%cpu | head -20

CPU en çok kullanan 20 process’i listeler. tload‘da bir tepe gördüğünüzde hemen bu komutu çalıştırarak suçluyu yakalamanız mümkün.

tload’un Sınırlılıkları ve Alternatifleri

Dürüst olmak gerekirse tload‘un bazı kısıtları var.

Renk desteği yok. Grafiğin hangi eşikte kırmızıya döneceğini ya da yeşil kalacağını ayarlayamazsınız. Salt ASCII. Bu bazı durumlarda yeterliyken, özellikle yüksek trafikli production ortamlarında gözü yoran bir çıktı olabilir.

Tek metrik. Sadece yük ortalamasını gösterir. CPU kullanımı, bellek, disk I/O gibi değerleri aynı anda görmek isterseniz yetersiz kalır.

Geçmiş veri yok. tload‘u başlatmadan önceki yük değerleri kaybolmuş, tarih. Sadece o an ve sonrasını görebilirsiniz.

Bu sınırlılıklar göz önünde bulundurulduğunda alternatif araçlar:

  • glances: Renkli, çoklu metrik, web arayüzü de var. Modern sysadminlerin favorisi.
  • nmon: Özellikle AIX geçmişi olanların aşina olduğu, oldukça kapsamlı bir izleme aracı.
  • atop: Proses bazlı detaylı sistem kaynağı takibi için güçlü bir araç.
  • htop: top‘un geliştirilmiş hali, interaktif ve renklendirmeli. Neredeyse herkesin bildiği araç.

Ama tüm bu alternatiflere rağmen tload‘un kendine has bir yeri var: Tek komutla, kurulum gerektirmeden, her sistemde çalışan minimalist bir yük monitörü. SSH ile bağlandığınız kısıtlı bir sistemde ya da paket yöneticisine erişiminiz olmadığında tload tam ihtiyacınız olan şey olabilir.

Pratik Bir İzleme Scripti

Aşağıdaki script, tload‘u tmux ile birleştirerek hem yük grafiğini hem de anlık süreç listesini aynı ekranda gösterir:

#!/bin/bash
# sistem_izle.sh - tload ve ps birlikte izleme

SESSION="izleme"

tmux new-session -d -s $SESSION -x 220 -y 50

# Üst panel: tload
tmux send-keys -t $SESSION "tload -d 2" Enter

# Alt panel: CPU kullanan processler
tmux split-window -v -t $SESSION
tmux send-keys -t $SESSION "watch -n 2 'ps aux --sort=-%cpu | head -15'" Enter

tmux attach -t $SESSION

Scripti çalıştırmak için:

chmod +x sistem_izle.sh
./sistem_izle.sh

Bu yapıyla ekranın üst yarısında yük grafiğini, alt yarısında ise her 2 saniyede güncellenen süreç listesini görebilirsiniz.

Sistem Yükünü Doğru Yorumlamak

tload size grafik verir ama bu grafiği doğru okumayı bilmek şart. Sadece sayıların yüksek olması her zaman sorun anlamına gelmez.

Yük ortalaması hesaplanırken sadece CPU’yu aktif kullanan processler değil, I/O beklemeye giren (D state) processler de sayılır. Yani yüksek bir yük değeri bazen disk ya da ağ I/O darboğazından kaynaklanıyor olabilir. Bunu ayırt etmek için iostat ya da vmstat ile birlikte inceleme yapmak gerekir:

iostat -x 1 5
vmstat 1 10

Eğer tload yüksek değerler gösteriyorsa ama vmstat çıktısındaki us (user) ve sy (system) düşükse, wa (I/O wait) yüksekse, sorun CPU değil disk ya da ağ kaynaklıdır.

Sonuç

tload gösterişsiz, sade, ve hızlı. Production sunucularında her şeyin yüklendiği anlarda, bağlantının yavaş olduğu uzak oturumlarda ya da sadece “şu an ne oluyor?” sorusuna hızlı yanıt aramak istediğinizde ideal bir araç. Grafana dashboard’larına, Prometheus metriklerine, karmaşık izleme sistemlerine karşı çıkmıyorum, bunların değeri ayrı. Ama bir sysadmin olarak terminalden ayrılmak istemediğiniz o anlarda tload sizi yarı yolda bırakmaz.

Sık kullanmayabileceğiniz ama var olduğunu bilmeniz gereken bir araç. Toolbox’ınızda yerini hak ediyor.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir