Linux Terminalden Ram - Bellek - Swap Değerlerine Bakmak
Terminalden kolayca kontrol edebileceğimiz bir komut olan;free
komutunu inceleyeceğiz. Opsiyon olarak top
ve htop
komutlarına da değineceğiz.
Free
free komutu, sistemdeki bellek kullanımı hakkında farklı formatlarda bilgi verebilen bir Unix komutudur. Başta fiziksel ve swap bellek değerleri olmak üzere mevcut sistem anında kullanılan, kullanılmayan ve diğer ayrılmış bellek değerlerini de gösterir.
Not: free
komutunu parametresiz bir şekilde kullandığımızda ilgili bellek değerlerini varsayılan olarak kibibayt (kibibyte) cinsinden gösterecektir.
$ free
veya free -k
veya free --kibi
Gördüğümüz değerlerin ne olduklarından kısaca bahsedelim;
- Mem: Fiziksel bellek değerini gösterecektir.
- Swap: Diskte ram kullanımı için ayrılmış değeri gösterecektir. Fiziksel bellek dolduğu zaman aktif olmayan page'ler ram'den swap alanına taşınır.
- Total: Sistemde olan bellek miktarını gösterecektir.
- Used: Sistemde ne kadar miktar bellek kullanıldığını gösterecektir.
- Free: Ne kadar miktar belleğin herhangi bir işlem için kullanılmadığını gösterecektir.
- Shared: Paylaşılan bellek miktarını gösterir. Kısaca açıklamak gerekirse, birden fazla işlemin (process) aynı belleği kullanması olarak düşünebiliriz.
- Buff/Cache: Buffers, kernel bufferları tarafından kullanılan bellek miktarını. Cache ise page cache ve slab'lar tarafından kullanılan bellek miktarını gösterir.
- Available: Tahmini olarak ne kadar miktarda belleğin kullanılabilir olduğunu gösterecektir.
Free -h (Human Readable) Opsiyon
Genelde parametrik olarak en çok tercih edilen komuta bakalım. Human readable formatta görmek için Linux terminalde;
free -h
veya free --human
free -h
kullanımında;
- İlgili değerleri otomatik olarak en kısa gösterecek şekilde dönüştürür (GiB, MiB vs).
free -h --si
parametresiyle bellek değerleri 10'luk tabandan gösterilebilir.
2'lik ve 10'luk Tabandan Gösterimler
Bellek değerlerini, Kikibyte veya Kilobyte - Mebibyte veya Megabayt gibi değerlerle gözlemeyebiliriz. Bunlar arasındaki fark basitçe;
- Kikibyte veya Mebibyte 2'lik taban sistemi yani 2 katları şeklinde gösterilir.
- Kilobyte veya Megabyte 10'luk taban sistemi yani 10 katları değeri bazında gösterilir.
- 1 Kilobyte (KB) 1000 bayt iken, 1 KikiByte (KiB) 1024 bayttır.
Not: Benzer değerler şu şekilde devam eder.
Onluk Taban | İkilik Taban |
---|---|
Kilobyte | Kikibyte |
Megabyte | Mebibyte |
Gigabyte | Gibibyte |
Terabayt | Tebibyte |
Petabyte | Pebibyte |
Örneğin, 8 GB ram değerleriyle bunları örnekleyelim;
- 8096051 KiloByte (KB) ve 7906300 KibiByte (KiB) değerlerine eşittir.
- 8096 MegaByte (MB) ve 7720 (MiB) değerlerine eşittir.
Diğer Opsiyon Parametreleri
KikiByte Cinsinden Gösterme
free
, free -k
veya free --kiki
komutlarıyla gösterilebilir.
KiloByte Cinsinden Gösterme
free --kilo
formatıyla gösterilir
Mebibit Cinsinden Göstermek
free -m
veya free --mebi
komutlarıyla gösterilir.
MegaByte Cinsinden Gösterme
free --mega
komutuyla Megabyte (MB) cinsinden gösterilir.
Diğer Opsiyonlar şu şekilde kullanılabilir;
free [options]
-b, --bytes bytes olarak gösterir
--kilo kilobytes olarak gösterir
--mega megabytes olarak gösterir.
--giga gigabytes olarak gösterir.
--tera terabytes olarak gösterir.
--peta petabytes olarak gösterir.
-k, --kibi kibibytes olarak gösterir.
-m, --mebi mebibytes olarak gösterir.
-g, --gibi gibibytes olarak gösterir.
--tebi tebibytes olarak gösterir.
--pebi pebibytes olarak gösterir.
Bellek Değerlerini Aralıklarla Takip Etmek
free -s {Seconds}
kullanımıyla {Seconds} alanı saniye parametresidir ve sayı değeri girilmelidir. Belirtilen saniye kadar sürede bir çalışacaktır.
Örnek olarak; 3 saniyede bir memory değerlerini mebibytes cinsinden görmek için;
Not: Process kill edilmediği sürece 3 saniyede bir göstermeye devam edecektir.
Bellek Değerlerini Kaç Defa Göstereceğini Belirtmek
free -c {Count}
Örnek olarak, free -m -c 2
komutu ile bellek değerlerini mebibyte cinsinden 2 defa göstermek isteyelim.
Bellek Değerlerini Aralıklı ve Belli Sayıda Görmek
free -s {Seconds} -c {Count}
Örnek olarak, free -h -s 5 -c 3
komutu ile bellek değerlerini human-readable formatta, 5 saniyede bir 3 defa göstermek isteyelim.
Buff ve Cache Değerlerini Ayrı Göstermek
free -w
veya free --wide
komutu buffers ve cache'yi ayrı gösterir
free -h
komutu ile buff/cache birleşik.
free -h -w
komutu ile buffers ve cache değerleri ayrı gösterilir.
Free --help ile Diğer Kullanımlar
free --help
komutu ile tüm kullanımlara dair açıklamalara bakılabilir.
Fiziksel ve Swap Değerlerini Beraber Görmek
free -t
komutuyla toplam bellek miktarları gösterilir.
free -t -h
komutu ile toplam bellek miktarlarını, human readable opsiyonla inceleyelim;
Diğer Alternatif Komutlar
1- top
top
komutu ile free
komutunda olduğu gibi bellek değerlerini gözlemlemenin yanında, CPU ve hangi işlemin (process) ne kadar kaynak tükettiğini de görmek mümkündür.
- İlgili değerlerin Mebibyte cinsinden görüldüğünü görebiliriz.
- İlgili processleri %MEM değerine göre sıralamak için "SHIFT + M" kullanılabilir.
- Çalışan processler ve CPU'ya ait bilgileri de görmek mümkündür.
2- htop
htop
komutu top
komutuna göre çok daha gelişmiş bir tool.
Not: Bu tool'u yüklemek gerekebilir.
- İlgili değerler gibibytes değerleriyle gösterilir.
- Mouse "click" kontrolleri yapılabilir (Sıralama, seçme vs)
- İlgili processler'i %MEM değerine göre sıralamak için SHIFT + M kullanılabilir
- Çalışan İşlemleri (Processleri) ve CPU değerlerini de görebiliriz.
- F6'ya basıp, Sorted By seçenekleriyle sıralamalar yapılabilir.
3- Meminfo
cat /proc/meminfo
komutu ile tüm bellek değerlerine bakılabilir.
cat /proc/meminfo
MemTotal: 16222540 kB
MemFree: 6328656 kB
MemAvailable: 10317004 kB
Buffers: 501160 kB
Cached: 3771164 kB
SwapCached: 0 kB
Active: 1858928 kB
Inactive: 7222992 kB
Active(anon): 41724 kB
Inactive(anon): 4924252 kB
Active(file): 1817204 kB
Inactive(file): 2298740 kB
Unevictable: 8164 kB
Mlocked: 16 kB
SwapTotal: 7906300 kB
SwapFree: 7906300 kB
Dirty: 1172 kB
Writeback: 0 kB
AnonPages: 4817856 kB
Mapped: 899656 kB
Shmem: 164068 kB
KReclaimable: 209384 kB
Slab: 415968 kB
SReclaimable: 209384 kB
SUnreclaim: 206584 kB
KernelStack: 24256 kB
PageTables: 63524 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 16017568 kB
Committed_AS: 19245960 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 93812 kB
VmallocChunk: 0 kB
Percpu: 8480 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
ShmemHugePages: 0 kB
ShmemPmdMapped: 0 kB
FileHugePages: 0 kB
FilePmdMapped: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
Hugetlb: 0 kB
DirectMap4k: 694192 kB
DirectMap2M: 13819904 kB
DirectMap1G: 2097152 kB
Sonuç
Linux terminalden bellek değerlerini nasıl gözlemleyebileceğimizi gördük. En çok kullanılan komutlardan olan free
, top
ve htop
komutlarına değindik. Meminfo dosyasına ulaşarak bu değerlerin nereden monitörlendiğini de görmüş olduk.