Linux Performans Analizi Araçlarının Süper Tam Koleksiyon-Özet Koleksiyonu

Linux işletim sistemine ilgi duymadan ve altta yatan bilgiye duyulan güçlü istek nedeniyle bu makale düzenlendi. Bu makale aynı zamanda temel bilgileri test etmek için bir gösterge olarak da kullanılabilir ve makale bir sistemin tüm yönlerini kapsar. Tam bilgisayar sistemi bilgisi, ağ bilgisi, işletim sistemi bilgisi ve dokümantasyondaki araçlar olmadan bunu tam olarak kavramak imkansızdır.Ayrıca, sistem performans analizi ve optimizasyonu uzun vadeli bir seridir.

Bu belge temel olarak Netflix Kıdemli Performans Mimarı Brendan Gregg olan Linux Daniel ile birleştirilerek Linux performans ayarlama araçlarının blog gönderisini güncellemek ve Linux sistem performansı optimizasyonu ile ilgili makaleleri harmanladıktan sonra, esas olarak blog gönderisinde yer alan ilkeleri birleştiren kapsamlı bir makale toplamaktadır. Performans testi için araçları açıklayın.

Arka plan bilgisi: Arka plan bilgisine sahip olmak, performans sorunlarını analiz ederken anlamanız gereken şeydir. Donanım önbelleği gibi; başka bir örnek işletim sistemi çekirdeğidir. Uygulamanın davranış detayları genellikle bunlarla ilgilidir.Bu düşük seviyeli şeyler, uygulamanın performansını beklenmedik şekillerde etkileyecektir.Örneğin, bazı programlar önbelleği tam olarak kullanamayacak ve performansın düşmesine neden olacaktır. Örneğin, gereksiz yere çok fazla sistem çağrısı yapmak, sık sık çekirdek / kullanıcı geçişine neden olmak vb. İşte bu makalenin devam içeriği için bir kaldırım. Ayarlama hakkında pek çok şey var. Bildiğimden fazlasını bilmiyorum. Umarım herkes öğrenebilir ve birlikte ilerleme kaydedebilir.

[Performans Analiz Aracı]

İlk önce bir resme bakın:

Yukarıdaki resim Brendan Gregg tarafından paylaşılan bir performans analizidir.Buradaki tüm araçlar, yardım dosyalarını almak için insan aracılığıyla edinilebilir. Sonraki soru kısaca genel kullanımı açıklamaktadır:

vmstat - sanal bellek istatistikleri

vmstat (VirtualMeomoryStatistics, sanal bellek istatistikleri), işletim sisteminin sanal belleğinin, işleminin, CPU'nun vb. genel durumunu izleyebilen Linux'ta belleği izlemek için yaygın bir araçtır.

Vmstat: vmstat aralık sürelerinin geleneksel kullanımı, her saniyede bir, toplam örnekleme zamanı örneklemesidir.Zamanlar atlanırsa, kullanıcı onu manuel olarak durdurana kadar veriler toplanacaktır. Basit bir örnek vermek gerekirse:

Vmstat'ın veri toplamasını durdurmak için ctrl + c kullanabilirsiniz.

İlk satır, başlatıldığı andan itibaren sistemin ortalama değerini gösterir, ikinci satır şu anda ne olduğunu göstermeye başlar ve sonraki satır her 5 saniyede bir ne olduğunu gösterir. Her sütunun anlamı aşağıda gösterildiği gibi baştadır:

procs: r sütunu cpu için kaç işlemin beklediğini gösterir ve b sütunu kaç işlemin uykuda olduğunu (IO için beklediğini) kesintisiz olarak gösterir.

Bellek: Takas sütunu diskten kaç bloğun değiştirildiğini (sayfa değiştirme) gösterir ve kalan sütunlar kaç bloğun boş olduğunu (kullanılmadığını), kaç bloğun arabellek olarak kullanıldığını ve kaç bloğun kullanıldığını gösterir. İşletim sistemi önbelleği olarak.

takas: Takas etkinliğini gösterir: saniyede kaç bloğun (diskten) ve (diske) takas edildiği.

io: Blok cihazından kaç bloğun okunduğunu (bi) ve yazıldığını (bo) gösterir, genellikle sabit disk G / Ç'sini yansıtır.

sistem: Saniyedeki kesinti (giriş) ve bağlam anahtarlarının (cs) sayısını gösterir.

cpu: Kullanıcı kodunu yürütme (çekirdek dışı), sistem kodunu yürütme (çekirdek), boşta kalma ve GÇ'yi bekleme dahil olmak üzere çeşitli işlemlerde harcanan tüm cpu süresinin yüzdesini gösterir.

Yetersiz bellek performansı: boş bellek büyük ölçüde azalır, arabelleklerin ve önbelleklerin kurtarılması yardımcı olmaz, çok sayıda takas bölümü (swpd) kullanılır, sayfa takasları (takas) sık görülür, okuma ve yazma disklerinin sayısı (io) artar, sayfa hatası kesintileri (giriş) artar ve bağlam Anahtarlama sayısı (cs) artar, IO (b) için bekleyen işlem sayısı artar ve IO (wa) beklemek için çok fazla CPU zamanı harcanır.

iostat - merkezi işlemci istatistiklerini rapor etmek için kullanılır

iostat, tüm sistemin, adaptörlerin, tty cihazlarının, disklerin ve CD-ROM'ların merkezi işlem birimi (CPU) istatistiklerini ve giriş / çıkış istatistiklerini raporlamak için kullanılır. Varsayılan olarak, vmstat ile aynı CPU kullanım bilgilerini görüntüler. Genişletilmiş olanı görüntülemek için aşağıdaki komutu kullanın Ekipman istatistikleri:

İlk satır, sistemin başlatılmasından bu yana ortalama değeri ve ardından, her cihaz için bir satır olmak üzere ortalama artış değerini gösterir.

Yaygın Linux disk IO göstergeleri kısaltılmış alışkanlıklardır: rq istek, r okunur, w yazma, qu kuyruk, sz boyut, a ortalama, tm zaman ve svc hizmettir.

rrqm / s ve wrqm / s: saniyede birleştirilmiş okuma ve yazma istekleri. "Birleştirilmiş", işletim sisteminin kuyruktan birden çok mantıksal isteği aldığı ve bunları gerçek diskte tek bir istekte birleştirdiği anlamına gelir.

r / s ve w / s: Aygıta saniyede gönderilen okuma ve yazma isteklerinin sayısı.

rsec / s ve wsec / s: Saniyede okunan ve yazılan sektör sayısı.

avgrq -sz: istenen sektör sayısı.

avgqu -sz: Aygıt kuyruğunda bekleyen isteklerin sayısı.

await: Her bir GÇ talebine harcanan süre.

svctm: Gerçek istek (hizmet) süresi.

Kullanım yüzdesi: En az bir aktif talebin işgal ettiği sürenin yüzdesi.

dstat - sistem izleme aracı

dstat, cpu kullanımını, disk io durumunu, ağ paket gönderme durumunu ve sayfa değiştirme durumunu gösterir.Çıktı renkli ve daha okunabilirdir.Vmstat ve iostat girişleriyle karşılaştırıldığında, daha detaylı ve daha sezgiseldir. Kullanımdayken doğrudan komutu girebilirsiniz, tabii ki belirli parametreleri de kullanabilirsiniz.

Aşağıdaki gibi: dstat -cdlmnpsy

iotop - LINUX süreci için gerçek zamanlı izleme aracı

İotop komutu, özellikle sabit disk GÇ'sini görüntüleyen bir komuttur. Arabirim stili, GÇ yükünün hangi işlemin üretildiğini gösterebilen üst komuta benzer. Disk G / Ç kullanımını izlemek için kullanılan en iyi araçtır.PID, kullanıcı, G / Ç, işlem ve diğer ilgili bilgiler dahil olmak üzere tepeye benzer bir UI'ye sahiptir.

Etkileşimli olmayan bir şekilde kullanılabilir: iotop -bod aralığı, her işlemin G / Ç'sini görüntülemek için pidstat, pidstat -d instat kullanabilirsiniz.

pidstat-monitör sistem kaynakları

pidstat esas olarak CPU, bellek, aygıt GÇ, görev değiştirme, iş parçacıkları vb. gibi tüm veya belirtilen süreçler tarafından sistem kaynaklarının doluluğunu izlemek için kullanılır.

Kullanım: pidstat -d aralığı; pidstat ayrıca CPU kullanım bilgilerini saymak için kullanılabilir: pidstat -u aralığı; istatistik bellek bilgileri: Pidstat -r aralığı.

üst

En üstteki komutun özet alanı, sistem performans bilgilerinin beş yönünü gösterir:

1. Yük: zaman, oturum açmış kullanıcı sayısı, ortalama sistem yükü;

2. Süreç: koş, uyu, dur, zombi;

3. cpu: kullanıcı modu, çekirdek modu, NICE, boşta, IO bekleniyor, kesinti vb .;

4. Bellek: toplam, kullanılan, boşta (sistem perspektifi), arabellek, önbellek;

5. Değişim bölümü: toplam, kullanılmış, ücretsiz

Görev alanı varsayılan olarak şunları gösterir: işlem kimliği, etkin kullanıcı, işlem önceliği, GÜZEL değer, işlem tarafından kullanılan sanal bellek, fiziksel bellek ve paylaşılan bellek, işlem durumu, CPU kullanımı, bellek kullanımı, kümülatif CPU süresi, işlem komut satırı bilgileri.

htop

htop, ncurses gerektiren bir metin modu uygulaması (konsolda veya X terminalinde) olan Linux sistemindeki etkileşimli bir işlem görüntüleyicidir.

Htop, kullanıcıların etkileşimli olarak çalışmasına olanak tanır, renk temalarını destekler, işlem listesinde yatay veya dikey olarak kaydırabilir ve fare işlemlerini destekler.

Top ile karşılaştırıldığında, htop aşağıdaki avantajlara sahiptir:

Tüm işlemleri ve eksiksiz komut satırlarını görmek için işlem listesinde yatay veya dikey olarak gezinebilirsiniz.

Başlangıçta, üstten daha hızlı.

İşlemi sonlandırırken işlem numarasını girmeye gerek yoktur.

htop, fare kullanımını destekler.

mpstatmpstat, gerçek zamanlı bir sistem izleme aracı olan Multiprocessor Statistics'in kısaltmasıdır. Rapor ve CPU istatistikleri / proc / stat dosyasında saklanır. Çoklu CPU'lu bir sistemde, yalnızca tüm CPU'ların ortalama durum bilgilerini değil, aynı zamanda belirli bir CPU'nun bilgilerini de görüntüleyebilir. Yaygın kullanım: mpstat -P ALL aralık süreleri.

netstat

Netstat, IP, TCP, UDP ve ICMP protokolleriyle ilgili istatistiksel verileri görüntülemek için kullanılır ve genellikle makinenin her bağlantı noktasının ağ bağlantısını kontrol etmek için kullanılır.

Yaygın kullanım:

netstat -npl, açmak istediğiniz bağlantı noktasının zaten açık olup olmadığını kontrol edebilir.

netstat -rn yazdırma yönlendirme tablosu bilgileri.

netstat -in sistem hakkında arayüz bilgisi sağlar, her arayüzün MTU'sunu, giriş paketlerinin sayısını, giriş hatalarını, çıkış paketlerinin sayısını, çıkış hatalarını, çakışmaları ve mevcut çıkış kuyruğunun uzunluğunu yazdırır.

ps - Mevcut işlemin durumunu göster

Çok fazla ps parametresi var. Özel kullanım için lütfen man ps'ye bakın. Yaygın olarak kullanılan yöntemler: ps aux #hsserver; ps ef | grep #hundsun

Bir programı sonlandırma yöntemi: ps aux | grep mysqld | grep v grep | awk {print $ 2} xargs kill -9

Zombi sürecini öldürün: ps eal | awk {if ($ 2 == Z ) {print $ 4}} | xargs kill -9

strace

Programın veya komutun yürütülmesinde karşılaşılan anormal durumların analizine yardımcı olmak için programın yürütülmesi sırasında alınan sistem çağrılarını ve sinyalleri izleyin.

Örnek: mysqld'nin Linux'ta hangi yapılandırma dosyasını yüklediğini kontrol etmek için aşağıdaki komutu çalıştırabilirsiniz: strace e stat64 mysqld print defaults > / dev / null

çalışma süresi

Sistemin toplam çalışma süresini ve sistemin ortalama yükünü yazdırabilir.Çalışma süresi komutunun çıkardığı üç sayı, sistemin ortalama yükünün 1 dakika, 5 dakika ve 15 dakikasını ifade eder.

lsof

lsof (açık dosyaları listele), mevcut sistemdeki açık dosyaları listeleyen bir araçtır. Lsof aracı aracılığıyla, sistem algılama ve sorun giderme, genel kullanım için bu listeyi görüntüleyebilirsiniz:

Dosya sistemini engelleyen lsof / boot'u görüntüleyin

Bağlantı noktası numarasının lsof -i: 3306 tarafından işgal edildiğini kontrol edin

Kullanıcının lsof -u kullanıcı adını hangi dosyaları açtığını görüntüleyin

Lsof -p 4838 işlemi tarafından hangi dosyaların açıldığını kontrol edin

Uzaktan açılan ağ bağlantısını lsof -i @ 192.168.34.128 görüntüleyin

performans

perf, Linux çekirdeği ile birlikte gelen bir sistem performansı optimizasyon aracıdır. Avantajı, Linux Çekirdeği ile yakın entegrasyonda yatmaktadır, Kernel'e eklenen yeni özelliğe ilk uygulanan, etkin nokta işlevlerini görüntülemek, nakit kaçırma oranlarını görüntülemek ve böylece geliştiricilerin program performansını optimize etmelerine yardımcı olmak için kullanılabilir.

Perf ve Oprofile gibi performans ayarlama araçlarının temel ilkesi, izlenen nesneyi örneklemektir.En basit durum, kene kesmesine göre örneklemektir, yani kene kesmesindeki örnekleme noktasını tetiklemek ve örnekleme noktasında programın bağlamını yargılamaktır. . Bir programın zamanının% 90'ı foo () işlevine harcanıyorsa, örnekleme noktalarının% 90'ı foo () işlevi bağlamında olmalıdır. Şans tahmin edilemez, ancak örnekleme sıklığı yeterince yüksek ve örnekleme süresi yeterince uzun olduğu sürece, yukarıdaki kesinti daha güvenilirdir. Bu nedenle, örneklemeyi kene ile tetikleyerek, programın neresinde en çok zaman aldığını anlayabilir ve analize odaklanabiliriz.

Bu aracı daha iyi anlamak için lütfen şu adrese bakın:

Özet: Yukarıda yaygın olarak kullanılan performans testi komutlarını birleştirerek ve makalenin başında performans analizi araçlarının diyagramına başvurarak, performans analizi sürecinde hangi araçların (komutların) kullanıldığına dair bir ön anlayış elde edebilirsiniz.

[Yaygın olarak kullanılan performans testi araçları]

İkinci bölümün performans analizi komut araçlarında uzman ve yetkin, birkaç performans testi aracı tanıtın ve aşağıdakileri sunmadan önce birkaç performans testi aracını kısaca anlayın:

perf_events: Çekirdek topluluğu tarafından bakımı yapılan ve geliştirilen, Linux çekirdek koduyla birlikte yayınlanan ve sürdürülen bir performans tanı aracı. Perf yalnızca uygulamaların performans istatistikleri analizi için değil, aynı zamanda performans istatistikleri ve çekirdek kodunun analizi için de kullanılabilir.

Daha fazla referans:

eBPF araçları: Bcc kullanarak performans izleme için bir araç eBPF haritası, özelleştirilmiş eBPF programları kullanılarak çekirdek ayarlamada yaygın olarak kullanılabilir ve ayrıca kullanıcı düzeyinde eşzamansız kodu da okuyabilir. Önemli olan bu harici verilerin kullanıcı alanında yönetilebilmesidir. K-v biçimindeki bu harita veri gövdesi, işlemleri oluşturmak, eklemek ve silmek için kullanıcı alanında bpf sistem çağrısı başlatılarak yönetilir. daha fazla:

perf-araçları: perf_events (perf) ve ftrace'e dayalı bir Linux performans analizi ve ayarlama aracı seti. Perf-Tools birkaç kitaplığa bağlıdır ve kullanımı kolaydır. Linux 3.2 ve üstü çekirdek sürümünü destekleyin. daha fazla: https://github.com/brendangregg/perf-tools.

bcc (BPF Derleyici Koleksiyonu): eBPF kullanan mükemmel bir performans analiz aracı. Çeşitli yararlı araçlar ve örnekler de dahil olmak üzere verimli çekirdek izleme ve düzenleme programları oluşturmak için bir araç seti. Resmi olarak eBPF olarak adlandırılan genişletilmiş BPF'yi (Berkeley Paket Filtresi) kullanarak, ilk olarak Linux 3.15'e yeni bir özellik eklendi. Çok amaçlı, Linux 4.1 veya üzeri BCC gerektirir.

Daha fazla referans için: https://github.com/iovisor/bcc#tools.

ktap: Linux komut dosyaları için yeni bir dinamik performans izleme aracı türü. Kullanıcıların Linux çekirdek dinamiklerini izlemesine izin verin. ktap, birlikte çalışacak şekilde tasarlanmıştır ve kullanıcıların operasyonel öngörüleri ayarlamasına, kernel ve uygulamaları sorun gidermesine ve genişletmesine olanak tanır. Linux ve Solaris DTrace SystemTap'a benzer. Daha fazla referans: https://github.com/ktap/ktap.

Alev Grafikleri: Görselleştirmek için perf, system tap ve ktap kullanan bir grafik yazılımıdır.En sık kullanılan kod yollarının hızlı ve doğru bir şekilde tanımlanmasını sağlar.Github.com/brendangregg/flamegraph adresindeki geliştirme kaynak kodu kullanılarak oluşturulabilir.

Daha fazla referans için: 1. Linux gözlemlenebilirlik araçları | Linux performans gözlem araçları

İlk öğrenmeniz gereken temel araçlar şunlardır: uptime, top (htop), mpstat, isstat, vmstat, free, ping, nicstat, dstat.

Gelişmiş komutlar şunlardır: sar, netstat, pidstat, strace, tcpdump, blktrace, iotop, slabtop, sysctl, / proc.

Daha fazla referans için: ayrıntılı komut kullanımı için lütfen 2. adıma bakın. Linux kıyaslama araçları | Linux performans değerlendirme araçları

Bu bir performans değerlendirme aracıdır.Farklı modüllerin performans testi için ilgili araçları kullanabilirsiniz.Daha fazla bilgi edinmek isterseniz alt kısımdaki ek belgesine başvurabilirsiniz.

Üç, Linux ayarlama araçları | Linux performans ayarlama araçları

Esas olarak linux çekirdeği kaynak kodu katmanından ayarlanan bir performans ayarlama aracıdır.Derinlemesine anlamak için, aşağıdaki ekli belgelere başvurabilirsiniz.

Dört, Linux gözlemlenebilirlik sar | linux performans gözlem aracı

sar (System Activity Reporter sistem etkinliği raporu) şu anda LINUX üzerindeki en kapsamlı sistem performansı analiz araçlarından biridir. Sistem etkinliklerini birçok yönden raporlayabilir, örneğin: dosya okuma ve yazma, sistem çağrısı kullanımı, disk G / Ç, CPU verimliliği, bellek kullanımı, işlem etkinlikleri ve IPC ile ilgili etkinlikler.

Sar: sar t'yi kullanmanın genel yolu burada: t örnekleme aralığıdır, n örnekleme sayısıdır, varsayılan değer 1'dir; -o dosya komut sonucunu ikili biçimde bir dosyada saklamak anlamına gelir ve dosya dosya adıdır. seçenekler komut satırı seçenekleridir

Dağlık bölgelerde geride kalan çocuklara sevgi dikmek için kiraz ağacı dikin
önceki
Audi Q7 e-tron plug-in hibrid otomobil 928.800 fiyatla satışa sunuldu
Sonraki
Yönetmen Paul "Görünmez Konuk" dan "Serap" a, pisliğin "diktatörlüğünü" şüpheyle tersine çevirdi
İki gün sonra YOHO! GIRL, New York Moda Haftası'nda büyük bir şey yapacak!
Redis: MySQL kaç yaşında?
Ning Wang Zach'in savaşı kontrol etmek için vahşi kör atlaması, netizenler: ulusal hizmetteki ilk ormancı hakkında bilgi edinin
"The Faraway Pastoral" edebi afişleri ve posterleri iki kez yayınlandı. Tema yürekleri ısıtıyor: hayat her zaman "geçiş" yolundadır.
S8'in ilk gününde LPL'deki iki AD oyuncusunu karşılaştırarak, hangisinin performansı sizin için daha tatmin edici?
Dağlık bölgelerde geride kalan çocuklar için 300 kiraz ağacı dikin
"Avengers 4" IMAX Kuzey Amerika özel posteri gösterildi
Kayıtla ilgili kapsamlı değerlendirme, ünlü bir okula karşı saldırıya geçmek için bir fırsat daha
Ruo Feng evlendiğinde "Beauty" nin canlı yayınını üst üste iki gece izledi Netizenler, hile yapmak istiyorlar mı?
Gece Okuması | Evde zekice alev alan 6 yaşındaki kız çocuğu polisi arayarak 3 yaşındaki kız kardeşini kurtardı | Hafızasını kaybetmiş ancak annesinin dış görünüşünü unutmamış bir adam
"Kar fırtınası", Lin Haixueshan'ın "altın altın kasası" nın karmaşık durumunu ortaya çıkarmak için bir karakter ilişkisi posteri yayınladı
To Top