Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 9822|Yanıt: 1

Linux vmstat komutu için pratikte ayrıntılı açıklama

[Bağlantıyı kopyala]
Yayınlandı 19.10.2014 19:36:48 | | |

vmstat komutu, sunucunun durum değerlerini belirli bir zaman aralığında, sunucunun durum değerleri dahil olmak üzere en yaygın Linux/Unix izleme aracıdırCPU kullanımı, bellek kullanımı, sanal bellek değişimi, IO okuma ve yazma işlemleri. Bu komut, Linux/Unix'i kontrol etmek için en sevdiğim komut; biri Linux/Unix'in desteklendiği, diğeri ise en üstteki komuta kıyasla tüm makinenin CPU, bellek ve işlem işlemleri kullanımını görebiliyorum, sadece her işlemin CPU ve bellek kullanımını görebiliyorum (farklı kullanım senaryoları).

Genellikle, vmstat aracının kullanımı iki sayısal parametre üzerinden yapılır; birinci parametre örneklenen zaman aralığı sayısı, birim saniyeler ve ikinci parametre örnek sayısıdır, örneğin:


root@ubuntu:~# vmstat 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1  0      0 3498472 315836 3819540    0    0     0     1    2    0  0  0 100  0

2, sunucu durumu her iki saniyede bir toplanırken, 1 ise sunucu durumunun sadece bir kez toplandığı anlamına gelir.

Aslında, başvuru sürecinde belirli bir süre boyunca izlerizler ve izlemek istemezsek, vmstat'ı doğrudan sonlandırabiliriz, örneğin:


root@ubuntu:~# vmstat 2  
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
1  0      0 3499840 315836 3819660    0    0     0     1    2    0  0  0 100  0
0  0      0 3499584 315836 3819660    0    0     0     0   88  158  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0     2   86  162  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0    10   81  151  0  0 100  0
1  0      0 3499732 315836 3819660    0    0     0     2   83  154  0  0 100  0

Bu, vmstat'ın her 2 saniyede bir veri topladığı ve programı bitirene kadar devam ettiği anlamına geliyor, ben de burada 5 kez veri topladıktan sonra programı bitiriyorum.

Tamam, komut tanıtıldı, şimdi her parametrenin anlamını açıklamaya başlayalım.

rBu, kuyruğu çalıştırmak (yani CPU'ya gerçekten tahsis edilen süreç sayısını), test ettiğim sunucunun şu anda nispeten boş olduğunu, hiç programın çalışmadığını ve bu değerin CPU sayısını aştığında bir CPU darboğazı oluşacağı anlamına geliyor. Bu aynı zamanda üst yükle de ilgilidir; genellikle yük 3'ü geçerse daha yüksektir, 5'i geçerse daha yüksektir, 10'u geçerse normal değildir ve sunucunun durumu çok tehlikelidir. Üstteki yük, saniyede koşan kuyruğun yüküne benzer. Çalışan kuyruk çok büyükse, CPU'nuzun meşgul olduğu anlamına gelir ve bu genellikle yüksek CPU kullanımına neden olur.

bBu, engellenmiş süreç demek, bu çok fazla söylenecek bir şey değil, süreç engellenmiş, herkes anlıyor.

SWPDKullanılan sanal bellek boyutu 0'dan büyükse, bu bilgisayarınızın yetersiz fiziksel belleğe sahip olduğu anlamına gelir ve program bellek sızıntısının nedeni bu değilse, belleği yükseltme veya bellek tüketen görevleri başka bir makineye taşıma zamanı gelmiştir.

serbest   Boş fiziksel belleğin boyutu, makine belleğimin toplamı 8G ve kalan 3415M.

Buff   Linux/Unix sistemi, dizindeki içeriği, izinleri vb. önbellek için kullanılıyor, bu makinede muhtemelen 300 milyondan fazla yer tutuyor

önbellekcache doğrudan açtığımız dosyaları hatırlamak ve dosyaları tamponlamak için kullanılır, kendi makinemde 300M'den fazla yer alırım (işte Linux/Unix'in zekice özelliği, boş fiziksel belleğin bir kısmını dosyaları ve dizinleri önbellek etmek için alırsınız, program performans artırmak için, program bellek kullandığında, buffer/cached hızlıca kullanılır.) )

si  Bu değer 0'dan büyükse, fiziksel hafızanın yeterli olmadığı veya hafızanın sızdırdığı anlamına gelir. Makinemin bolca hafızası var ve her şey yolunda.

yani  Saniyede sanal belleğe yazılan diskin boyutu, eğer bu değer 0'dan büyükse, yukarıdaki ile aynıdır.

Bi  Blok ekipmanıSaniyede alınan blok sayısı, burada blok cihazı sistemdeki tüm diskleri ve diğer blok cihazlarını ifade eder, varsayılan blok boyutu 1024 bayttır, makinede herhangi bir IO işlemi yok, yani her zaman 0 olmuştur, ancak büyük miktarda veri (2-3T) işleyen makinelerde 140000/s'ye ulaşabiliyor ve disk yazma hızı saniyede neredeyse 1400M

boÖrneğin, bir blok cihazı tarafından saniyede gönderilen blok sayısı, bir dosyayı okuduğumuzda, bo 0'dan büyüktür. Bi ve BO genellikle 0'a yakın, aksi takdirde IO çok sık ve ayarlanması gerekiyor.

içindeCPU'nun saniyesindeki kesinti sayısı, zaman kesintileri dahil

CSÖrneğin, bir sistem fonksiyonunu çağırdığımızda bağlam anahtarı sayısı, bağlamları ve iş zinciri anahtarlamalarını yapmamız gerekirSüreç bağlamıÖrneğin, Apache ve nginx gibi web sunucularında genellikle binlerce hatta on binlerce eşzamanlılıkla performans testleri yaparız ve web sunucusu seçme süreci sürecin zirvesi veya iş parçacığı stres testi ile düşürülebilir, ta ki cs nispeten küçük bir değere ulaşana kadar, işlem ve iş parçacağı sayısı daha uygun bir değer haline gelir. Sistem çağrıları da aynıdır; her sistem fonksiyonu çağrıldığında, kodumuz çekirdek alanına girer ve bu da bağlam değişimine yol açar, ki bu çok kaynak tüketicidir ve sistem fonksiyonlarına sık çağrılardan kaçınmalıyız. Çok fazla bağlam anahtarı, CPU'nun çoğunun bağlam değiştirmeye harcanmasına neden olur, bu da CPU'nun ciddi işleri yapması için daha az zaman alır ve CPU tam olarak kullanılmaz, bu da tavsiye edilmez.

BizkullanıcıCPU süresiBir keresinde US 100'e yakın olduğunu ve r kuyruğunun 80'e ulaştığını gördüm, bu sunucu çok sık şifreleme ve şifre çözme yapıyordu (makine stres testinden geçti ve performansı iyi değildi).

sySistem CPU süresi çok yüksekse, sistem çağrıları uzun olur, örneğin sık sık işlem işlemleri gibi.

Kimliği  Boşta CPU süresi, genel olarak, id + us + sy = 100, genellikle id boşta CPU kullanımı, us kullanıcı CPU kullanımı, sy sistem CPU kullanımı.

WTIO CPU zamanını bekle.







Önceki:Sevimli
Önümüzdeki:Deniz kenarı güzel
Yayınlandı 19.10.2014 19:40:57 |
Anlayamıyorum
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com