Bellek kullanımı, Disk Kullanımı ve CPU Yükünü görüntüleme komutu


16

Bellek kullanımını, Disk Kullanımını ve CPU Yükünü aşağıdaki biçimde görüntülemek istiyorum:

Memory Usage: 33/512MB (6%)    
Disk usage: 4.2/20GB (23%) 
CPU Load: 0.01

Bunu nasıl yaparım?


Ödev gibi görünüyor. / Proc'un kendisinden veya diğer komutlardan ihtiyacınız olan verileri alın ve awk, perl veya sadece bash ile biçimlendirin.
mikebabcock

Unix ve Linux Stack Exchange'e hoş geldiniz! Lütfen daima işletim sisteminizi ekleyin. Çözümler sıklıkla kullanılan İşletim Sistemine bağlıdır. Unix, Linux, BSD, OSX, başka bir şey kullanıyor musunuz? Hangi versiyon?
terdon

Yardımlarınız için teşekkürler çocuklar. Ancak, cevabımı burada aldım stackoverflow.com/questions/33774260/…
Mohsin Inayat Khan

Yanıtlar:


33

Bunu deneyin, Debian sistemim üzerinde çalışıyor. Ayrıntılar, işletim sisteminizin kullandığı bu araçların uygulanmasına bağlı olarak değişebilir:

#!/bin/sh
free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
df -h | awk '$NF=="/"{printf "Disk Usage: %d/%dGB (%s)\n", $3,$2,$5}'
top -bn1 | grep load | awk '{printf "CPU Load: %.2f\n", $(NF-2)}' 

Yukarıdakileri bir komut dosyası olarak kaydedip çalıştırırsanız, (sistemimden örnek) alırsınız:

$ ./foo.sh 
Memory Usage: 4986/7994MB (62.37%)
Disk Usage: 23/68GB (35%)
CPU Load: 0.78

Yukarıdaki komut dosyasının /bölüm için disk kullanımı sağladığını unutmayın . Ne istediğini belirtmedin, bu yüzden peşinde olduğunu tahmin ediyorum.



@RahulPatil iyi görünüyor, neden göndermiyorsun?
terdon

3
çünkü bu sadece sizin kopyaladığınız ans. : D
Rahul Patil

1
free -m satırı bana bir hata veriyor, yüzde düzgün bir şekilde kaçmadı. şu şekilde olmalı:free -m | awk 'NR==2{printf "Memory Usage: %s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }'
simon

1
@ user1735921 Lütfen bir soru sorun . Ancak ilk olarak, google bir komutun çıktısını bir değişkende nasıl saklayacağımız önemsizdir. Ardından, soruda neyi saklamak istediğinizi ve neyi test etmek istediğinizi açıklayın.
terdon

5

Üstünü kontrol et .

Bunu okuyun, https://lwn.net/Articles/387202/

Görmek, resim açıklamasını buraya girin

Uygulamalara göre disk / bellek / cpu yükünü görebilirsiniz:

resim açıklamasını buraya girin

Örneğin, disk kullanımı:

resim açıklamasını buraya girin

dizinde günlük /var/log/atop/olarak ikili biçim dosyalarında toplanan istatistikleri üstüne . Bir kılavuz sayfasını okuyabilirsiniz, yararlı bilgiler elde etmenin bir yolu olmalıdır.


2

Tam olarak kendi biçiminizde görüntülenecek bir komut yoktur, ancak aşağıdakiler, bir komut dosyası oluşturabilen temel değerlerden bazılarını sağlar, alternatif olarak / proc ve / sys'den değerleri okumak da mümkündür.

free - hızlı genel bakış

vmstat 1 sistem performansı i / o istatistiklerini gösterir

top dinamik

htop başa benzer


1
Benim kişisel favorim iostat.
mikebabcock

0

Sanırım nagios yardıma ihtiyacınız var, çünkü tüm bu eklentiler / nagios için srcipts zaten yapılmış ve nagios kurulumu olmadan indirip test edebilirsiniz.



0

İşte CPU ve RAM kullanımı için benim kod:

### 1. get total average CPU usage for the past minute
avg_cpu_use=$(uptime)
# a. split response
IFS=',' read -ra avg_cpu_use_arr <<< "$avg_cpu_use"
# b. find cpu usage
avg_cpu_use=""
for i in "${avg_cpu_use_arr[@]}"; do :
    if [[ $i == *"load average"* ]]; then
        avg_cpu_use=$i
        break       
    fi
done
# c. create response
avg_cpu_use=$(echo ${avg_cpu_use:16})   # Remove "  load average: "
if [[ -z "${avg_cpu_use// }" ]]; then
    avg_cpu_use="CPU: N/A%%"
    exit -1
else
    avg_cpu_use="CPU: ${avg_cpu_use}%%"
fi

### 2. get RAM usage
ram_use=$(free -m)
# a. split response by new lines
IFS=$'\n' read -rd '' -a ram_use_arr <<< "$ram_use"
# b. remove extra spaces
ram_use="${ram_use_arr[1]}"
ram_use=$(echo "$ram_use" | tr -s " ")
# c. split response by spaces
IFS=' ' read -ra ram_use_arr <<< "$ram_use"
# d. get variables
total_ram="${ram_use_arr[1]}"
ram_use="${ram_use_arr[2]}"
# e. create response
ram_use="RAM: ${ram_use}/${total_ram} MB"

echo $avg_cpu_use
echo $ram_use

-2

Bellek kullanımını, Disk Kullanımını ve CPU Yükünü aşağıdakileri kullanarak görüntüleyebilmeniz gerekir:

(ps hax -o rss,user | awk '{a[$2]+=$1;}END{for(i in a)print i" "int(a[i]/1024+0.5);}' | sort -rnk2)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.