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.