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
volkan@Volkan:~$ free
total used free shared buff/cache available
Mem: 16222540 4056152 9249576 125128 2916812 11733644
Swap: 7906300 0 7906300
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
volkan@Volkan:~$ free -h
total used free shared buff/cache available
Mem: 15Gi 10Gi 197Mi 218Mi 4,8Gi 4,5Gi
Swap: 7,5Gi 12Mi 7,5Gi
free -h
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.
volkan@Volkan:~$ free -h --si
total used free shared buff/cache available
Mem: 15G 10G 175M 223M 4,9G 4,5G
Swap: 7,7G 12M 7,7G
free -h --si
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.
free -k
total used free shared buff/cache available
Mem: 16222540 11103248 344768 208400 4774524 4577916
Swap: 7906300 32512 7873788
free
veya free -k
veya free --kiki
KiloByte Cinsinden Gösterme
free --kilo
formatıyla gösterilir
free --kilo
total used free shared buff/cache available
Mem: 16611880 11386777 328843 210255 4896260 4673880
Swap: 8096051 33292 8062758
free --kilo
Mebibit Cinsinden Göstermek
free -m
veya free --mebi
komutlarıyla gösterilir.
free -m
total used free shared buff/cache available
Mem: 15842 10825 352 209 4664 4482
Swap: 7720 31 7689
free -m
veya free --mebi
MegaByte Cinsinden Gösterme
free --mega
komutuyla Megabyte (MB) cinsinden gösterilir.
free --mega
total used free shared buff/cache available
Mem: 16611 11347 374 218 4890 4705
Swap: 8096 33 8062
free --mega
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;
free -m -s 3
total used free shared buff/cache available
Mem: 15842 5718 6208 221 3915 9584
Swap: 7720 0 7720
total used free shared buff/cache available
Mem: 15842 5835 6038 273 3968 9414
Swap: 7720 0 7720
total used free shared buff/cache available
Mem: 15842 6016 5794 322 4031 9184
Swap: 7720 0 7720
[5]+ Stopped free -m -s 3
free -m -s 3
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.
free -m -c 2
total used free shared buff/cache available
Mem: 15842 5485 6460 181 3896 9857
Swap: 7720 0 7720
total used free shared buff/cache available
Mem: 15842 5485 6460 181 3896 9857
Swap: 7720 0 7720
free -m -c 2
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.
free -h -s 5 -c 3
total used free shared buff/cache available
Mem: 15Gi 5,4Gi 6,3Gi 181Mi 3,8Gi 9,6Gi
Swap: 7,5Gi 0B 7,5Gi
total used free shared buff/cache available
Mem: 15Gi 5,7Gi 5,8Gi 344Mi 4,0Gi 9,1Gi
Swap: 7,5Gi 0B 7,5Gi
total used free shared buff/cache available
Mem: 15Gi 6,1Gi 5,3Gi 458Mi 4,1Gi 8,6Gi
Swap: 7,5Gi 0B 7,5Gi
free -h -s 5 -c 3
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.
total used free shared buff/cache available
Mem: 15Gi 6,0Gi 5,5Gi 213Mi 4,0Gi 9,0Gi
Swap: 7,5Gi 0B 7,5Gi
free -h
free -h -w
komutu ile buffers ve cache değerleri ayrı gösterilir.
free -h -w
total used free shared buffers cache available
Mem: 15Gi 6,0Gi 5,5Gi 211Mi 434Mi 3,6Gi 9,0Gi
Swap: 7,5Gi 0B 7,5Gi
free -h -w
veya free -hw
Free --help ile Diğer Kullanımlar
free --help
komutu ile tüm kullanımlara dair açıklamalara bakılabilir.

free --help
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;
free -t -h
total used free shared buff/cache available
Mem: 15Gi 5,1Gi 6,1Gi 156Mi 4,2Gi 9,9Gi
Swap: 7,5Gi 0B 7,5Gi
Total: 23Gi 5,1Gi 13Gi
free -t -h
veya free -th
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.

htop
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.