Linux Sunucu Kaynaklarınızı İzlemek İçin Temel Araçlar: top, netstat, du ve Daha Fazlası
Linux Sunucu Kaynaklarınızı İzlemek İçin Temel Araçlar
Her bilgisayar sistemi, düzgün bir yönetim ve izleme ile fayda sağlar. Sisteminizin nasıl çalıştığını gözlemlemek, sorunları keşfetmenize ve hızla çözmenize yardımcı olacaktır.
Bu amaç için yaratılmış birçok komut satırı aracı bulunmaktadır. Bu rehber, araç kutunuzda bulundurmanız gereken en yardımcı uygulamalardan bazılarını tanıtacaktır.
Ön Koşullar
Bu rehberi takip etmek için, Linux tabanlı bir işletim sistemi çalıştıran bir bilgisayara erişiminiz olması gerekmektedir. Bu, SSH ile bağlandığınız bir sanal özel sunucu veya yerel makineniz olabilir. Bu öğretici, Ubuntu 20.04 çalıştıran bir Linux sunucusu kullanılarak doğrulandı, ancak verilen örnekler herhangi bir Linux dağıtımının herhangi bir sürümünde çalışan bir bilgisayar üzerinde çalışmalıdır.
Bu rehberi takip etmek için bir uzak sunucu kullanmayı planlıyorsanız, önce Ubuntu 20.04 Sunucu Kurulduktan Sonra Ilk Yapılması Gerekenler | Narweb.net Blog rehberimizi tamamlamanızı öneririz. Bunu yapmak, sudo ayrıcalıklarına sahip bir non-root kullanıcı ve UFW ile yapılandırılmış bir güvenlik duvarı dahil olmak üzere güvenli bir sunucu ortamıyla sizi kuracak – Linux becerilerinizi geliştirebileceğiniz bir ortam.
Adım 1 – Linux’ta Çalışan Süreçleri Nasıl Görüntülerim
Sunucunuzda çalışan tüm süreçleri top
komutunu kullanarak görebilirsiniz:
Output
top - 15:14:40 up 46 min, 1 user, load average: 0.00, 0.01, 0.05
Tasks: 56 total, 1 running, 55 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1019600k total, 316576k used, 703024k free, 7652k buffers
Swap: 0k total, 0k used, 0k free, 258976k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
3 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0
6 root RT 0 0 0 0 S 0.0 0.0 0:00.00 migration/0
7 root RT 0 0 0 0 S 0.0 0.0 0:00.03 watchdog/0
8 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 cpuset
9 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 khelper
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
İlk birkaç satır çıktı, CPU/bellek yükü ve çalışan toplam görev sayısı gibi sistem istatistiklerini sağlar.
1 çalışan süreç olduğunu ve CPU döngülerini aktif olarak kullanmadıkları için uyuyan olarak kabul edilen 55 süreç olduğunu görebilirsiniz.
Gösterilen çıktının geri kalanı, çalışan süreçleri ve kullanım istatistiklerini gösterir. Varsayılan olarak, top, en meşgul süreçleri ilk görebileceğiniz şekilde bu süreçleri CPU kullanımına göre otomatik olarak sıralar. Top, Ctrl+C tuş kombinasyonunu kullanarak çalışan bir süreci çıkana kadar kabuğunuzda çalışmaya devam eder. Bu, sürecin mümkünse zarif bir şekilde durmasını isteyen bir kill sinyali gönderir.
Top’un geliştirilmiş bir versiyonu olan htop, çoğu paket deposunda mevcuttur. Ubuntu 20.04’de, bunu apt ile yükleyebilirsiniz:
sudo apt update
sudo apt install htop
Daha sonra, htop komutu kullanılabilir olacaktır:
Output
Mem[||||||||||| 49/995MB] Load average: 0.00 0.03 0.05
CPU[ 0.0%] Tasks: 21, 3 thr; 1 running
Swp[ 0/0MB] Uptime: 00:58:11
PID USER PRI NI VIRT RES SHR S CPU% MEM% TIME+ Command
1259 root 20 0 25660 1880 1368 R 0.0 0.2 0:00.06 htop
1 root 20 0 24188 2120 1300 S 0.0 0.2 0:00.56 /sbin/init
311 root 20 0 17224 636 440 S 0.0 0.1 0:00.07 upstart-udev-brid
314 root 20 0 21592 1280 760 S 0.0 0.1 0:00.06 /sbin/udevd --dae
389 messagebu 20 0 23808 688 444 S 0.0 0.1 0:00.01 dbus-daemon --sys
407 syslog 20 0 243M
1404 1080 S 0.0 0.1 0:00.02 rsyslogd -c5
408 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.00 rsyslogd -c5
409 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.00 rsyslogd -c5
406 syslog 20 0 243M 1404 1080 S 0.0 0.1 0:00.04 rsyslogd -c5
553 root 20 0 15180 400 204 S 0.0 0.0 0:00.01 upstart-socket-br
htop, modern terminallerde renk desteğinin daha iyi farkındalığı ve daha fazla sıralama seçeneği gibi özellikler sunar. Diğer özellikler arasında, top’un aksine, her zaman varsayılan olarak yüklenmez. Top gibi htop’u Ctrl+C tuşlarına basarak çıkabilirsiniz.
İşte htop’u daha etkili bir şekilde kullanmanıza yardımcı olacak bazı klavye kısayolları:
- M: Süreçleri bellek kullanımına göre sırala
- P: Süreçleri işlemci kullanımına göre sırala
- ?: Yardıma erişim
- k: Geçerli/etiketli süreci öldür
- F2: htop’u yapılandır. Burada görüntüleme seçeneklerini seçebilirsiniz.
- /:: Süreçleri ara
Yardım veya kurulum aracılığıyla erişebileceğiniz birçok diğer seçenek vardır. Bunlar, htop’un işlevselliğini keşfederken ilk duraklarınız olmalıdır. Bir sonraki adımda, ağ bant genişliğinizi nasıl izleyeceğinizi öğreneceksiniz.
Adım 2 – Ağ Bant Genişliğini Nasıl İzlerim
Ağ bant genişliğini izlemek için birkaç farklı araç kullanabilirsiniz. Bu rehberde, iftop
ve nethogs
araçlarına odaklanacağız.
iftop
iftop
aracı, ağ trafiğini izlemenize olanak tanır. Bu, hangi bağlantıların en çok bant genişliğini kullandığını görmek için kullanışlıdır. Ubuntu 20.04’de, iftop
aracını şu komutla yükleyebilirsiniz:
sudo apt update
sudo apt install iftop
Daha sonra, iftop
komutunu kullanarak ağ trafiğini izleyebilirsiniz:
sudo iftop
Çıktı, aşağıdaki gibi görünecektir:
Output
iftop -i eth0 -B -n
10.0.0.1 => 10.0.0.2 1.25KB 2.50KB 2.50KB
10.0.0.1 <= 10.0.0.2 1.25KB 2.50KB 2.50KB
Bu, 10.0.0.1
IP adresinden 10.0.0.2
IP adresine ve tersine olan trafiği gösterir. Sağdaki üç sütun, sırasıyla son 2, 10 ve 40 saniyelik ortalama bant genişliğini gösterir.
nethogs
nethogs
aracı, hangi süreçlerin en çok bant genişliğini kullandığını gösterir. Ubuntu 20.04’de, nethogs
aracını şu komutla yükleyebilirsiniz:
sudo apt update
sudo apt install nethogs
Daha sonra, nethogs
komutunu kullanarak ağ trafiğini izleyebilirsiniz:
sudo nethogs
Çıktı, aşağıdaki gibi görünecektir:
Output
NetHogs version 0.8.5
PID USER PROGRAM DEV SENT RECEIVED
1234 user /usr/bin/curl eth0 20.0 KB 30.0 KB
Bu, /usr/bin/curl
sürecinin, eth0
ağ arayüzü üzerinden 20.0 KB gönderdiğini ve 30.0 KB aldığını gösterir.
iftop
ve nethogs
araçları, ağ trafiğini izlemenize ve hangi süreçlerin veya bağlantıların en çok bant genişliğini kullandığını belirlemenize yardımcı olabilir.
Bir sonraki adımda, disk kullanımını nasıl izleyeceğinizi öğreneceksiniz.
Adım 3 – Disk Kullanımını Nasıl İzlerim
Disk kullanımını izlemek için birkaç farklı araç kullanabilirsiniz. Bu rehberde, du
ve df
araçlarına odaklanacağız.
du
du
komutu, belirli bir dizindeki dosya ve dizinlerin disk kullanımını gösterir. Örneğin, /var
dizinindeki disk kullanımını görmek için şu komutu kullanabilirsiniz:
sudo du -h /var
Çıktı, aşağıdaki gibi görünecektir:
Output
4.0K /var/lib/yum/yumdb/d/3e6973c105d0d7640f014123456789abcdef1234
4.0K /var/lib/yum/yumdb/d
12K /var/lib/yum/yumdb
16K /var/lib/yum
...
Bu, /var/lib/yum/yumdb/d/3e6973c105d0d7640f014123456789abcdef1234
dizininde 4.0K disk alanı kullanıldığını gösterir. -h
seçeneği, çıktıyı “insan tarafından okunabilir” bir formatta gösterir, yani disk alanı KB, MB veya GB cinsinden gösterilir.
df
df
komutu, tüm dosya sistemlerinin disk kullanımını gösterir. Örneğin, tüm dosya sistemlerindeki disk kullanımını görmek için şu komutu kullanabilirsiniz:
df -h
Çıktı, aşağıdaki gibi görünecektir:
Output
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 20G 5.5G 14G 28% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/sdb1 30G 20G 9.0G 70% /data
Bu, /dev/sda1
dosya sisteminde 20G toplam alan olduğunu ve 5.5G’nin kullanıldığını gösterir. Ayrıca, kullanılabilir alanın 14G olduğunu ve dosya sisteminin %28’inin kullanıldığını gösterir.
du
ve df
araçları, disk kullanımını izlemenize ve hangi dosya ve dizinlerin en çok disk alanını kullandığını belirlemenize yardımcı olabilir.
Bir sonraki adımda, sistem loglarını nasıl izleyeceğinizi öğreneceksiniz.
Adım 4 – Sistem Loglarını Nasıl İzlerim
Sistem logları, sunucunuzda ne olduğunu anlamanıza yardımcı olabilir. Bu rehberde, dmesg
ve journalctl
araçlarına odaklanacağız.
dmesg
dmesg
komutu, kernel mesajlarını gösterir. Bu, özellikle donanım sorunlarını tanımlamak için kullanışlıdır. Örneğin, son kernel mesajlarını görmek için şu komutu kullanabilirsiniz:
dmesg | tail
Çıktı, aşağıdaki gibi görünecektir:
Output
[ 1234.567890] usb 1-1: new high-speed USB device number 2 using ehci_hcd
[ 1234.678901] usb 1-1: New USB device found, idVendor=1234, idProduct=5678
[ 1234.789012] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 1234.890123] usb 1-1: Product: USB Device
[ 1234.901234] usb 1-1: Manufacturer: USB Manufacturer
[ 1234.912345] usb 1-1: SerialNumber: 1234567890
Bu, yeni bir USB cihazının tanımlandığını gösterir. | tail
komutu, sadece son 10 mesajı gösterir. Daha fazla mesaj görmek için, | tail -n 20
gibi bir komut kullanabilirsiniz.
journalctl
journalctl
komutu, systemd journal loglarını gösterir. Bu, özellikle systemd hizmetlerinin durumunu kontrol etmek için kullanışlıdır. Örneğin, sshd
hizmetinin loglarını görmek için şu komutu kullanabilirsiniz:
journalctl -u sshd
Çıktı, aşağıdaki gibi görünecektir:
Output
-- Logs begin at Mon 2023-09-04 14:50:01 UTC, end at Mon 2023-09-04 15:00:01 UTC. --
Sep 04 14:50:01 server sshd[1234]: Server listening on 0.0.0.0 port 22.
Sep 04 14:50:01 server sshd[1234]: Server listening on :: port 22.
Sep 04 14:55:01 server sshd[5678]: Accepted publickey for user from 10.0.0.1 port 12345 ssh2
Sep 04 14:55:01 server sshd[5678]: pam_unix(sshd:session): session opened for user user by (uid=0)
Bu, sshd
hizmetinin başlatıldığını ve bir kullanıcının başarıyla oturum açtığını gösterir.
dmesg
ve journalctl
araçları, sistem loglarını izlemenize ve sunucunuzda ne olduğunu anlamanıza yardımcı olabilir.
Adım 5 – Sistem Kaynaklarını İzlemek için Diğer Araçlar
Linux’ta sistem kaynaklarını izlemek için birçok diğer araç da bulunmaktadır. İşte bazıları:
vmstat
vmstat
komutu, sanal bellek istatistiklerini gösterir. Bu, özellikle bellek kullanımını izlemek için kullanışlıdır. Örneğin, sanal bellek istatistiklerini görmek için şu komutu kullanabilirsiniz:
vmstat
Çıktı, aşağıdaki gibi görünecektir:
Output
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 1592832 81344 330848 0 0 41 35 647 897 3 1 96 0 0
Bu, sistemdeki mevcut bellek kullanımını ve CPU kullanımını gösterir.
iostat
iostat
komutu, CPU istatistiklerini ve giriş/çıkış istatistiklerini gösterir. Bu, özellikle disk I/O performansını izlemek için kullanışlıdır. Örneğin, CPU ve I/O istatistiklerini görmek için şu komutu kullanabilirsiniz:
iostat
Çıktı, aşağıdaki gibi görünecektir:
Output
Linux 5.4.0-26-generic (ubuntu) 09/04/23 _x86_64_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.23 0.00 0.34 0.03 0.00 98.40
Device tps kB_read/s kB_wrtn/s kB_read kB_wrtn
sda 0.80 12.34 40.56 123456 405678
Bu, CPU kullanımını ve sda
disk cihazının I/O istatistiklerini gösterir.
mpstat
mpstat
komutu, CPU istatistiklerini gösterir. Bu, özellikle çoklu CPU sistemlerinde CPU kullanımını izlemek için kullanışlıdır. Örneğin, CPU istatistiklerini görmek için şu komutu kullanabilirsiniz:
mpstat
Çıktı, aşağıdaki gibi görünecektir:
Output
Linux 5.4.0-26-generic (ubuntu) 09/04/23 _x86_64_ (1 CPU)
14:14:01 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
14:14:01 all 1.23 0.00 0.34 0.03 0.00 0.00 0.00 0.00 0.00 98.40
Bu, CPU kullanımını gösterir, burada %usr kullanıcı zamanını, %sys sistem zamanını ve %idle boşta geçen zamanı gösterir.
Bu araçlar, sistem kaynaklarını izlemenize ve sunucunuzun performansını optimize etmenize yardımcı olabilir.
Adım 6 – Sistem Kaynaklarını İzlemek için Grafiksel Araçlar
Komut satırı araçları dışında, sistem kaynaklarını izlemek için grafiksel araçlar da kullanabilirsiniz. İşte bazı popüler grafiksel araçlar:
GNOME Sistem İzleyici
GNOME Sistem İzleyici, GNOME masaüstü ortamında bulunan bir sistem izleme aracıdır. Bu araç, sistemde çalışan süreçleri, CPU kullanımını, bellek kullanımını ve daha fazlasını gösterir. Ubuntu 20.04’de, GNOME Sistem İzleyici’ni şu komutla yükleyebilirsiniz:
sudo apt update
sudo apt install gnome-system-monitor
Daha sonra, GNOME Sistem İzleyici’ni başlatmak için şu komutu kullanabilirsiniz:
gnome-system-monitor
KDE Sistem İzleyici
KDE Sistem İzleyici, KDE Plasma masaüstü ortamında bulunan bir sistem izleme aracıdır. Bu araç, sistemde çalışan süreçleri, CPU kullanımını, bellek kullanımını ve daha fazlasını gösterir. Ubuntu 20.04’de, KDE Sistem İzleyici’ni şu komutla yükleyebilirsiniz:
sudo apt update
sudo apt install ksysguard
Daha sonra, KDE Sistem İzleyici’ni başlatmak için şu komutu kullanabilirsiniz:
ksysguard
Bu grafiksel araçlar, sistem kaynaklarını izlemenize ve sunucunuzun performansını optimize etmenize yardımcı olabilir. Ayrıca, bu araçlar, sistem kaynaklarını izlerken daha görsel bir deneyim sunar.
Ayrıca sitemizde daha önce Docker konusu ile ilgili yazılmış bu yazılar da ilginizi çekebilir:
Docker Nedir? Ve NARWEB’den Aldığım Sunucuma Nasıl Kurabilirim? | Narweb.net Blog
Heroku Alternatifi PaaS Çözümü “Dokku” Nedir, Nasıl Kurulur Ve Nasıl Kullanılır? | Narweb.net Blog
Basit Bir Şekilde Kubernetes Cluster Oluşturma Rehberi | Narweb.net Blog
Portainer Nedir Ve Nasıl Kurulur? Docker Yönetimini Kolaylaştıran Arayüz | Narweb.net Blog
Web hosting ihtiyaçlarınız için Narweb web hosting paketlerine göz atabilirsiniz: Linux Hosting | Uygun Fiyat ve Yüksek Hızlı Enterprise SSD Hosting | Narweb
Sunucu ihtiyaçlarınız için Narweb VDS paketlerimize göz atabilirsiniz: VDS Sunucu | Enterprise SSD Dedicated Sanal Sunucu Yüksek Performans | Narweb
Ayrıca sitemizde daha önce yayınladığımız bu yazılar da dikkatinizi çekebilir:
Ubuntu Linux: Kapsamlı Bir Giriş | Narweb.net Blog
Ubuntu 20.04 Sunucu Kurulduktan Sonra Ilk Yapılması Gerekenler | Narweb.net Blog
Ubuntu 20.04 üzerine Plesk Hosting Kontrol Paneli Kurulumu Nasıl Yapılır? | Narweb.net Blog
En Çok Kullanılan 20 Linux Komutu Ve örnekleri | Narweb.net Blog
Ubuntu 20.04’te SSH Keys (Anahtarları) Nasıl Oluşturulur Ve Kullanılır? | Narweb.net Blog
SSH Temelleri: SSH Sunucuları, İstemcileri Ve Anahtarlarla Çalışma | Narweb.net Blog