Jump to content

Linux

  • entries
    24
  • comment
    1
  • views
    575

Linux'ta lscpu Komutu


Doğuhan ELMA

44 views

Linux işletim sisteminde CPU çekirdekleriyle ilgili bilgi almak ve etkileşimde bulunmak için kullanılan bazı yaygın komutlar ve çıktıları hakkında bilgi vereceğim.

lscpu: CPU mimarisi hakkında ayrıntılı bilgi verir. Çıktı, CPU ailesi, model, çekirdek sayısı, iş parçacığı sayısı, frekansı ve diğer özellikler gibi bilgileri içerir.

top: CPU kullanımını anlık olarak gösterir. Çıktı, her çekirdeğin ne kadar meşgul olduğunu ve hangi işlemlerin en çok CPU kullanımına sahip olduğunu gösterir.

mpstat: Çekirdek başına işlemci kullanım istatistiklerini görüntüler. Çıktı, kullanıcı, sistem, bekleme zamanı gibi farklı CPU zamanlarını içerir.

cat /proc/cpuinfo: Her çekirdek için ayrıntılı bilgi içeren bir çıktı verir. Bu, model adı, frekans, cache boyutları ve diğer düşük seviye detayları içerir.

htop: top komutuna benzer, ancak daha kullanıcı dostu bir arabirime sahiptir. Her çekirdeğin kullanımını grafiksel bir şekilde gösterir.

nproc: Sistemdeki çekirdek sayısını yazdırır.

cpufreq-info: CPU frekans politikası ve mevcut frekans bilgilerini gösterir. Bu komut, CPU frekansını değiştirmek için kullanılan cpufreq kullanıcı arayüzüne aittir.

turbostat: Intel işlemcilerinde kullanılan bir araç. Turbo Boost ve C-istatistiklerini, frekans, güç tüketimi gibi ayrıntılarla birlikte gösterir.

stress veya stress-ng: Bu araçlar, CPU'yu belirli bir yük altında çalıştırmak ve performansını test etmek için kullanılabilir.

 

lscpu komutu, CPU'nuzun mimarisi hakkında detaylı bilgi sağlar. İşte lscpu çıktısında görebileceğiniz bazı değerler ve açıklamaları:

  • Architecture: İşlemcinizin mimarisi (örneğin x86_64, i686).
  • CPU op-mode(s): İşlemcinin desteklediği işlem modları (örneğin 32-bit, 64-bit).
  • Byte Order: Sistemdeki byte sırası (Little veya Big Endian).
  • CPU(s): Toplam CPU çekirdek sayısı.
  • On-line CPU(s) list: Çalışan CPU'ların listesi.
  • Thread(s) per core: Her çekirdekteki iş parçacığı (thread) sayısı.
  • Core(s) per socket: Her soketteki çekirdek sayısı.
  • Socket(s): Toplam soket sayısı.
  • NUMA node(s): NUMA (Non-Uniform Memory Access) düğüm sayısı.
  • Vendor ID: İşlemci üreticisi (örneğin Intel, AMD).
  • CPU family: İşlemcinin ailesi (bu, spesifik bir üretici serisine işaret edebilir).
  • Model: İşlemci model numarası.
  • Model name: İşlemci model adı.
  • Stepping: İşlemci içinde kullanılan spesifik revizyon.
  • CPU MHz: Mevcut CPU frekansı (megahertz).
  • CPU max MHz: İşlemcinin maksimum frekansı.
  • CPU min MHz: İşlemcinin minimum frekansı.
  • BogoMIPS: İşlemcinin kabaca ölçülmüş hızı.
  • Virtualization: Desteklenen sanallaştırma türü (örneğin VT-x).
  • L1d cache: Veri için birinci seviye önbellek boyutu.
  • L1i cache: Talimatlar için birinci seviye önbellek boyutu.
  • L2 cache: İkinci seviye önbellek boyutu.
  • L3 cache: Üçüncü seviye önbellek boyutu.

1.png

Linux işletim sistemi, çok çeşitli CPU mimarilerinde çalışabilir. İşte bazı yaygın mimariler ve kısa açıklamaları:

x86 (IA-32): 32-bit işlemciler için standart mimari. 1980'lerin sonlarında ortaya çıkmıştır ve birçok masaüstü ve dizüstü bilgisayarda kullanılmaktadır.

x86_64 (AMD64): AMD tarafından geliştirilen 64-bit işlemci mimarisi. 64-bit işlem, daha fazla bellek adreslemesine olanak tanır ve günümüzde yaygın olarak kullanılmaktadır.

ARM: Akıllı telefonlar, tabletler ve bazı gömülü sistemlerde sıkça kullanılan bir mimaridir. Enerji verimli tasarımı ile bilinir.

MIPS: Özellikle ağ donanımında kullanılan bir mimaridir. MIPS, yüksek performans ve düşük güç tüketimi sunar.

PowerPC: Geçmişte Apple'ın Mac bilgisayarlarında kullanılmıştır, ancak şu anda özellikle gömülü sistemlerde ve sunucularda bulunur.

SPARC: Özellikle Sun Microsystems tarafından kullanılan bir mimari. Büyük ölçekli sunucular ve iş istasyonları için tasarlanmıştır.

Itanium (IA-64): Intel ve HP tarafından geliştirilmiştir. Ana hedefi, yüksek performanslı işlem ve büyük ölçekli sistemlerdir, ancak popülaritesi zamanla azalmıştır.

RISC-V: Açık kaynaklı bir işlemci mimarisi olan RISC-V, özelleştirme ve özgürlük sunar. Endüstri içinde yükselen bir trenddir.

s390x: IBM'in System z ve LinuxONE sunucuları için kullanılan bir mimaridir. Büyük veritabanları ve iş yükleri için tasarlanmıştır.

Alpha, PA-RISC, Motorolla 68k: Bunlar daha eski veya daha az kullanılan mimarilerdir. Alpha, DEC tarafından; PA-RISC, HP tarafından; Motorolla 68k ise Motorola tarafından geliştirilmiştir.

Linux, bu ve diğer birçok mimaride çalışacak şekilde derlenebilir, bu da onu çok çeşitli donanımlarda kullanılabilir kılar. Her mimarinin kendine özgü avantajları ve dezavantajları vardır, bu yüzden belirli bir uygulama için en uygun olanını seçmek önemli olabilir.

 

CPU'nun işlemci modları (operation modes veya op-modes), işlemcinin desteklediği farklı işletim modlarına işaret eder. Bu, işlemcinin hangi tür işletim sistemleri ve uygulamalarla uyumlu olacağını belirler. İşte bazı yaygın işlemci modları:

32-bit (IA-32): Bu mod, 32-bitlik genişlikte veri işleyebilir ve genellikle 32-bit işletim sistemleri ve uygulamalarla uyumludur.

64-bit (x86_64 veya AMD64): 64-bit genişliğinde veri işleyebilir. Bu, 64-bit işletim sistemleri ve uygulamalarla uyumlu olacak şekilde tasarlanmıştır.

Bir işlemci, 64-bit modu destekliyorsa, genellikle 32-bit modunu da destekler. Ancak, bu her zaman böyle değildir ve belirli işlemci modellerine bağlı olarak değişebilir.

64-bit modu, daha fazla RAM'i adresleyebilir ve daha fazla genel amaçlı kaydı (registers) içerir, bu da genellikle daha iyi performans anlamına gelir. Ancak, her yazılımın veya işletim sisteminin 64-bit modu desteklemeyeceğini unutmamak önemlidir. Özellikle eski yazılımlar, sadece 32-bit modunda çalışabilir.

Bu modlar, işlemcinin hangi tür komutları ve veri genişliklerini işleyebileceğini belirler, bu nedenle uyumlu yazılım ve işletim sistemleri seçerken dikkate alınması gereken önemli bir faktördür.

Byte order, veya diğer adıyla endianness, bir bilgisayar sisteminde birden fazla baytlık değerlerin (örneğin 32-bit veya 64-bit tam sayılar) nasıl saklandığını belirtir. İki ana byte order türü vardır: Little Endian ve Big Endian.

Little Endian: Bu düzenlemede, en düşük anlamlı byte (LSB), bellek adresinin en düşük bölümünde bulunur. Yani bir değerin baytları, en düşük anlamlı bayttan en yüksek anlamlı bayta doğru sıralanır.

Örneğin, 32-bitlik bir değer 0x12345678 olarak gösterildiğinde, Little Endian düzenlemesinde bellekte şu şekilde saklanır: 78 56 34 12.

Big Endian: Bu düzenlemede, en yüksek anlamlı byte (MSB), bellek adresinin en düşük bölümünde bulunur. Yani bir değerin baytları, en yüksek anlamlı bayttan en düşük anlamlı bayta doğru sıralanır.

Yine aynı örnek üzerinden gidersek, Big Endian düzenlemesinde bellekte şu şekilde saklanır: 12 34 56 78.

Bazı işlemci mimarileri yalnızca bir tür byte order destekler, bazıları ise her ikisini de destekleyebilir (bi-endian). İşlemci mimarisi tarafından kullanılan byte order, dosyaların, ağ protokollerinin ve diğer veri yapılarının işlenmesinde önemlidir.

Yazılımın farklı sistemler arasında taşınabilir olması için, endianness farklılıkları dikkate alınmalı ve gerekirse dönüşüm yapılmalıdır. Bazı programlama dilleri ve kütüphaneler, bu tür dönüşümleri kolaylaştırmak için yardımcı işlevler sunar.

 

NUMA (Non-Uniform Memory Access) node, çok işlemcili sistemlerde bellek erişimini düzenleyen bir yapıdır. İşlemci ve bellek arasındaki ilişki karmaşık olduğunda, her işlemcinin eşit uzaklıkta olmadığı ve dolayısıyla belleğe eşit hızda erişemediği durumlar ortaya çıkabilir. İşte burada NUMA devreye girer.

NUMA mimarisinde, işlemciler ve bellek, bir veya daha fazla NUMA düğümü içinde gruplandırılır. Her düğüm, bir veya daha fazla işlemci ve bu işlemcilerin "yerel" olarak erişebildiği bellek miktarını içerir. İşlemciler aynı düğüm içindeki belleğe "uzak" belleğe göre daha hızlı erişebilirler.

NUMA mimarisi, işte bu durumları optimize etmek için tasarlanmıştır:

Yerel Bellek Erişimi: Bir işlemci, kendi düğümündeki belleğe erişirse, bu "yerel" erişim olarak adlandırılır ve genellikle daha hızlıdır.

Uzak Bellek Erişimi: Bir işlemci, başka bir düğümdeki belleğe erişmeye çalışırsa, bu "uzak" erişim olarak adlandırılır ve genellikle yerel erişime göre daha yavaştır.

NUMA mimarisinin kullanıldığı sistemlerde, işletim sistemi ve uygulamalar, işlemcinin yerel belleğe erişimini mümkün olduğunca optimize etmeye çalışır. Bu, performansı artırabilir, ancak aynı zamanda karmaşıklığı da artırabilir.

lscpu gibi komutlar, sistemin NUMA düğümlerinin sayısını gösterebilir. Ayrıca, hangi işlemcilerin hangi düğümlere ait olduğunu görmek için işletim sisteminin diğer araçlarını da kullanabilirsiniz.

NUMA, büyük, çok işlemcili sunucular gibi yüksek performanslı bilgi işlem sistemlerinde yaygın olarak kullanılır. Özellikle yüksek derecede paralel işlem gereksinimleri olan uygulamalar için uygun olabilir. Ancak, NUMA'nın etkin bir şekilde kullanılabilmesi için işletim sisteminin ve çalıştırılan uygulamaların NUMA farkındalığına sahip olması gerekmektedir.

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...