Alat sederhana untuk menggambarkan penggunaan memori?


14

Apakah ada skrip yang akan menunjukkan penggunaan memori sebagai grafik, misalnya sebagai diagram lingkaran, dengan masing-masing proses menjadi irisan terpisah?

Saya tidak mencari sesuatu seperti Munin untuk menggambarkan penggunaan memori dari waktu ke waktu, tetapi menunjukkan penggunaan memori per-proses pada satu titik waktu.

Untuk membuat permintaan saya semakin tidak jelas, itu untuk server tanpa kepala (jadi tidak ada aplikasi X). Cara paling sederhana adalah menulis file PNG, atau mungkin file HTML (yang bisa menggunakan Javascript untuk memungkinkan penyaringan proses, mengubah antara tipe grafik dan sebagainya)

Jawaban:


13

Per proses penghitungan memori rumit karena sejumlah alasan saya akan membahasnya sebentar lagi. Untuk skrip pemantauan, gkrellmd, atau nagios yang sederhana mungkin sudah cukup. Jika Anda menginginkan akurasi yang lebih besar, Anda harus terlihat lebih keras.

smem memperkenalkan konsep Ukuran Set Proporsional :

Karena sebagian besar memori fisik biasanya dibagi di antara beberapa aplikasi, ukuran standar penggunaan memori yang dikenal sebagai resident set size (RSS) akan secara signifikan melebih-lebihkan penggunaan memori. Sebagai gantinya, PSS mengukur "bagian yang adil" dari masing-masing aplikasi untuk masing-masing area bersama untuk memberikan ukuran yang realistis.

Contoh: Anda memulai GNOME, menyebabkan sejumlah proses dimulai, satu untuk setiap applet dan program. Mereka semua terhubung ke libglib. Linux memuat libglib ke dalam satu blok memori dan memetakannya ke dalam setiap proses yang menginginkan libglib. Akuntansi memori naif menghitung ukuran libglib penuh terhadap setiap proses yang menghubungkannya.

smem membagi biaya libglib di antara proses menggunakannya, untuk memberikan gambaran yang lebih dekat tentang kenyataan. Ini juga memiliki sejumlah opsi untuk menampilkan penggunaan memori (dari situs web):

  1. Tampilkan smem informasi proses dasar
  2. Tampilkan tampilan sistem smem -R 4G -K / path / ke / vmlinux -w
  3. Tampilkan total dan persentase smem -t -p
  4. Tampilkan kolom yang berbeda, sm -c "name user pss"
  5. Tampilkan proses yang difilter dengan memetakan smem -M libxml
  6. Tampilkan pemetaan yang difilter oleh proses smem -m -P [e] volution
  7. Baca data dari capture tarball smem --source capture.tar.gz
  8. Tampilkan bagan batang berlabel pid smem --bar pid -c "pss uss"
  9. Tampilkan diagram lingkaran dari RSS berlabel menurut nama smem --pie name -s rss

Anda akan membutuhkan kernel yang sangat baru (> 2.6.27).


1
Ya, saran mereka bahwa 2.6.27 cukup baru-baru ini cukup menggelikan. Satu-satunya distro yang saya tahu yang dikirimkan dengan kernel yang lebih baru adalah Fedora 10 dan Ubuntu 9.01.
Dave Cheney

9.04; Ubuntu 8.10 dikirimkan dengan 2.6.27, tetapi 2.6.30 ada di rc3.
jldugger

Saya minta maaf, saya telah menghabiskan waktu lama di tanah RHEL, di mana 2.6.18 dianggap baru-baru ini.
Dave Cheney

5

Tidak bisa memikirkan apa pun dari rak

namun, kombinasi dari skrip PHP yang mengeksekusi ps -AH v | awk '{print $ 8, $ 9, $ 10}' dan menggunakannya dengan pChart dapat memberi Anda halaman web yang akan melakukan apa yang Anda cari? (penggunaan dalam Kb, persentase total dan nama proses)


1
+1, saya mengerti tentang hal itu dengan google chart api. :)
Node

Poin yang bagus. google chart api mungkin lebih cepat bekerja dengan ...
Mark Regensberg

2

Lihatlah sarface - tergantung pada data sar, dan Anda dapat memonitor penggunaan memori Anda (dan semua data sar / sysstat lainnya) secara langsung.



1

Lakukan sendiri. Buat skrip shell sederhana memperbarui database RRD. Kemudian gambarkan grafik menggunakan rrdtool.


1

Jika Anda benar-benar ke tingkat detail yang lebih rendah, jangan lupa kumpulkan. Berikut adalah contoh jenis per proses pemanfaatan memori yang dapat dilaporkan:

REKAM 1 cag-dl585-02 (1244758290.002) (Kamis 11 Juni 18:11:30 2009)

RINGKASAN PROSES (penghitung adalah / detik)
# PID Pengguna S VmSize VmLck VmRSS VmData VmStk VmExe VmLib MajF MinF Command
 9089 root S 66856K 0 2328K 1440K 212K 736K 6812K 0 0 sendmail:
 9097 smmsp S 57600K 0 1772K 1304K 204K 736K 5904K 0 0 sendmail:
 9108 root S 6428K 0 360K 180K 84K 88K 1944K 0 0 gpm
 9120 root S 74808K 0 1136K 476K 520K 48K 1920K 0 0 baik
 9173 xfs S 20904K 0 1828K 1124K 88K 104K 3084K 0 0 xfs

Jika Anda tertarik pada proses tertentu, Anda dapat menentukan filter yang sesuai (termasuk sakelar untuk menampilkan utas).

Dan jika Anda tertarik pada memori secara umum juga dapat menampilkan detail slab dan bahkan memiliki output format vmstat. Mengapa Anda ingin menampilkan data dalam format vmstat ketika alat yang ada sudah melakukannya? Itu mudah - dengan terkumpul, Anda dapat mencatat statistik suatu file dan memutarnya kembali dalam berbagai format.

Cobalah, Anda akan menyukainya


1
  1. Grep prosesnya.
  2. Parsing output dan simpan dalam format yang dipisahkan koma dalam file teks.
  3. buka file yang dipisahkan koma di excel.
  4. Gambarlah grafik untuk data itu menggunakan utilitas bagan excel.

Jika Anda ingin snapshot memori pada interval waktu yang berbeda ... atur pekerjaan cron pada interval yang diinginkan dan jalankan skrip.

berharap itu bisa membantu ....


0

Ini bukan apa yang Anda cari, tetapi mungkin Anda dapat menyesuaikannya dengan kebutuhan Anda menggunakan referensi ini (lihat "Per Proses Penggunaan Memori").




0

Saya tidak membahas lebih detail, tetapi collectl memiliki opsi untuk menghasilkan keluaran yang dipisahkan pembatas sehingga dalam kasus gnuplot, Anda hanya menghasilkan data dengan spasi di dalamnya dan Anda siap. Bahkan akan memuat dengan baik ke excel. Jika Anda ingin koma, Anda dapat mengubah pembatas dan jika Anda benar-benar ingin melakukan rute rrd (hanya berhati-hati karena plot tidak perlu cocok dengan data!), Anda dapat mengubah delimeter ke titik dua dan bahkan mengubah cap waktu ke UTC. -menandai


0

kSar, berdasarkan data sar, tetapi berbasis java, sehingga platform ini lebih atau kurang independen dan akan memungkinkan Anda untuk ssh ke host jarak jauh untuk mengambil data.

http://ksar.atomique.net/


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.