Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar

Linux makinelerde CPU performansını değerlendirmeye yönelik araçlar hakkında konuşmaya devam ediyoruz. Bugün materyalde: temci, uarch-bench, likwid, perf-tools ve llvm-mca.

Daha fazla kıyaslama:

Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar
Fotoğraf - lukas blazek — Sıçramayı kaldır

temci

Bu, iki programın yürütme süresini tahmin etmeye yönelik bir araçtır. Temel olarak, iki uygulamanın yürütme süresini karşılaştırmanıza olanak tanır. Yardımcı programın yazarı, bunu 2016 yılında lisans tezinin bir parçası olarak geliştiren Almanya'dan bir öğrenci olan Johannes Bechberger'di. Bugünün aracı tarafından dağıtıldı GNU Genel Kamu Lisansı kapsamında lisanslanmıştır.

Johannes, kontrollü bir ortamda bir bilgi işlem sisteminin performansını ölçmesine olanak sağlayacak bir araç yaratmak istiyordu. Bu nedenle temci'nin temel özelliklerinden biri test ortamı kurabilmesidir. Örneğin, kimse yapamaz: CPU frekans yöneticisi ayarlarını değiştirin, devre dışı bırakın hiper iş parçacığı ve L1 ve L2 önbellekleri, Intel işlemcilerdeki turbo modunu kapatın vb. Karşılaştırmalı değerlendirme için temci araçları kullanır zaman, perf_stat и alışmak.

Yardımcı program ilk durumda şöyle görünür:

# compare the run times of two programs, running them each 20 times
> temci short exec "sleep 0.1" "sleep 0.2" --runs 20
Benchmark 20 times                [####################################]  100%
Report for single runs
sleep 0.1            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      100.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1800k, deviation = 3.86455%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

sleep 0.2            (   20 single benchmarks)
     avg_mem_usage mean =           0.000, deviation =   0.0
     avg_res_set   mean =           0.000, deviation =   0.0
     etime         mean =      200.00000m, deviation = 0.00000%
     max_res_set   mean =         2.1968k, deviation = 3.82530%
     stime         mean =           0.000, deviation =   0.0
     utime         mean =           0.000, deviation =   0.0

Karşılaştırma sonuçlarına göre sistem şunları üretir: uygun rapor temci'yi benzer çözümlerden ayıran diyagramlar, tablolar ve grafiklerle.

Temci'nin eksiklikleri arasında "gençliği" öne çıkıyor. Bu yüzden o her şey desteklenmiyor donanım ve yazılım yapılandırmaları. Örneğin macOS üzerinde çalıştırmak zordur ve bazı özellikler ARM tabanlı bir sistemde mevcut değildir. Gelecekte, yazar aktif olarak projeyi geliştirdiğinden ve GitHub'daki yıldızların sayısı giderek arttığından durum değişebilir - çok uzun zaman önce değil. yorumlarda tartışıldı Hacker Haberleri'nde.

uarch-bank

Mühendis Travis Downs (Travis Downs). Son zamanlarda blog yazıyor Performans Önemlidir Kıyaslama araçları ve diğer ilgili şeylerden bahseden GitHub Sayfalarında. Genel olarak, uarch-bench yeni popülerlik kazanmaya başlıyor, ancak zaten oldukça yaygın adı geçen Hacker News sakinleri, kıyaslama için başvurulacak bir araç olarak tematik başlıklarda yer alıyor.

Uarch-bench, bellek performansını, paralel veri yükleme hızını ve temizleme işini değerlendirmenize olanak tanır YMM kayıtları. Program tarafından oluşturulan kıyaslama sonuçlarının neye benzediğini burada bulabilirsiniz resmi depoda sayfanın sonunda.

Temci gibi uarch-bank'ın olduğunu belirtmekte fayda var. devre dışı bırakır Test sonuçlarının tutarlı olması için Intel Turbo Boost işlevi (yük altında işlemci saat hızını otomatik olarak artırır).

Şimdilik proje geliştirmenin ilk aşamalarında olduğundan uarch-bench'in ayrıntılı dokümantasyonu yoktur ve çalışması hatalar içerebilir; örneğin, zorluklar biliniyor Ryzen lansmanıyla birlikte. Ayrıca yalnızca x86 mimarilerine yönelik kıyaslamalar desteklenir. Yazar gelecekte daha fazla işlevsellik ekleyeceğini vaat ediyor ve sizi geliştirmeye katılmaya davet ediyor.

iki kat

Bu, Intel, AMD ve ARMv8 işlemcili Linux makinelerinin performansını değerlendirmek için kullanılan bir dizi araçtır. 2017 yılında Alman Federal Eğitim ve Araştırma Bakanlığı'nın himayesinde oluşturuldu ve açık kaynak olarak yayınlandı.

Likwid araçları arasında, RAPL kayıtlarından sistem tarafından tüketilen güçle ilgili bilgileri görüntüleyen likwid-powermeter'ın yanı sıra işlemci frekansını kontrol etmenizi sağlayan likwid-setFrequencing'leri vurgulayabiliriz. Tam listeyi görebilirsiniz depoda bul.

Araç, HPC araştırmasında yer alan mühendisler tarafından kullanılır. Örneğin, likwid ile işler Almanya'daki Erlangen-Nürnberg Üniversitesi'nin (RRZE) Bölgesel Bilgi İşlem Merkezi'nden bir grup uzman. Ayrıca bu araç setinin geliştirilmesinde de aktif rol alıyor.

Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar
Fotoğraf - Clem Onojeghuo — Sıçramayı kaldır

mükemmel araçlar

Linux sunucularının performansını analiz etmek için bu araç gönderilen Brendan Gregg. Geliştiricilerden biridir DTrace — uygulamalarda gerçek zamanlı hata ayıklamaya yönelik dinamik bir izleme çerçevesi.

perf-tools, perf_events ve ftrace çekirdek alt sistemlerini temel alır. Yardımcı programları, G/Ç gecikmesini (iosnoop) analiz etmenize, sistem çağrısı bağımsız değişkenlerini izlemenize (unccount, funcslower, funcgraph ve functrace) ve dosya önbelleğindeki (cachestat) "isabetlere" ilişkin istatistikler toplamanıza olanak tanır. İkinci durumda komut şöyle görünür:

# ./cachestat -t
Counting cache functions... Output every 1 seconds.
TIME HITS MISSES DIRTIES RATIO BUFFERS_MB CACHE_MB
08:28:57 415 0 0 100.0% 1 191
08:28:58 411 0 0 100.0% 1 191
08:28:59 362 97 0 78.9% 0 8
08:29:00 411 0 0 100.0% 0 9

Enstrümanın etrafında oldukça geniş bir topluluk oluştu (GitHub'da neredeyse 6 bin yıldız). Ve mükemmel araçları aktif olarak kullanan şirketler var, örneğin Netflix. Ancak araç daha da geliştirilmekte ve değiştirilmektedir (her ne kadar son zamanlarda güncellemeler oldukça nadiren yayınlanmış olsa da). Bu nedenle, işleminde hatalar meydana gelebilir - yazar, bazen mükemmel araçların çekirdek paniğine neden olduğunu yazıyor.

llvm-mca

Makine kodunun farklı CPU'larda ne kadar bilgi işlem kaynağına ihtiyaç duyacağını tahmin eden bir yardımcı program. O değerlendirir Döngü Başına Talimatlar (IPC) ve belirli bir uygulamanın oluşturduğu donanım üzerindeki yük.

llvm-mca 2018 yılında proje kapsamında sunuldu LLVMProgramların analizi, dönüşümü ve optimizasyonu için evrensel bir sistem geliştiren. llvm-mca'nın yazarlarının yazılım performansını analiz etmeye yönelik bir çözümden ilham aldıkları biliniyor Intel'den IACA ve alternatif yaratmaya çalıştık. Kullanıcılara göre aracın çıktısı (düzeni ve miktarı) gerçekten IACA'ya benziyor - örnek burada bulunabilir. Ancak llvm-mca yalnızca kabul eder AT&T sözdizimi, bu nedenle büyük olasılıkla onunla çalışmak için dönüştürücüler kullanmanız gerekecektir.

Bloglarımızda ve sosyal ağlarımızda ne hakkında yazıyoruz:

Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar "Mat. Wall Street modeli" veya bulut maliyetlerinin nasıl optimize edileceği

Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar Linux sisteminizin güvenliğini nasıl sağlayabilirsiniz: 10 ipucu
Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar Risk minimizasyonu: verilerinizi nasıl kaybetmezsiniz?

Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar Halihazırda sistem yönetimine dahil olanlar veya yeni başlamayı planlayanlar için kitaplar
Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar Seçim: ağlar üzerine beş kitap ve bir kurs

Linux sunucuları için karşılaştırmalar: çeşitli açık araçlar1cloud.ru olarak ücretsiz bir hizmet sunuyoruz "DNS barındırma" DNS kayıtlarını tek bir kişisel hesapta yönetebilirsiniz.

Kaynak: habr.com

Yorum ekle