Saya sudah terbiasa top
melihat penggunaan memori saat ini. Tetapi saya ingin memantau penggunaan memori selama periode waktu tertentu. Misalnya mulai pemantauan dan kemudian jalankan beberapa perintah, dan terakhir hentikan pemantauan dan lihat berapa banyak memori yang telah digunakan selama periode tersebut.
Bagaimana saya bisa melakukan ini di Server Ubuntu?
Saya kira saya bisa memulai cronjob setiap 5 detik atau lebih, dan menjalankan perintah yang mencatat penggunaan memori saat ini dalam file teks. Tetapi perintah apa yang harus saya gunakan untuk mendapatkan penggunaan memori saat ini dalam format yang mudah untuk login ke file teks?
2896
dan kemudian1528
untuk buffer, bukankah ini berarti Anda menggunakannya2896 + 1528
?Mem: used
adalah total memori yang digunakan.-/+ buffers/cache: used
adalah total memori yang digunakan dikurangi buffer dan cache. Saya tahu outputnya terlihat lucu, tetapi tidak diperlukan aritmatika di sini. Anda hanya mencari bekas / gratis di baris - / + buffer / cache.free -h
, misalnyawatch -n 5 free -h
untuk mendapatkan keluaran "yang bisa dibaca manusia", misalnya2.1G
alih-alih2170
dalam keluaran.Saya pikir
htop
ini solusi terbaik.sudo apt-get install htop
Dengan cara ini Anda akan melihat program apa yang menggunakan sebagian besar RAM. dan Anda dapat dengan mudah menghentikannya jika mau. Ini screenshotnya!
sumber
htop
bagus karena lebih "grafis" dan mungkin lebih mudah dibaca daripadafree
.RES
memori yang digunakan oleh aplikasi itu dalam MB? Lalu apaSHR
?htop
menunjukkan 'penggunaan memori selama periode waktu'?Jika Anda mencari pemecahan memori yang bagus yang digunakan oleh setiap proses yang sedang berjalan, maka saya mungkin merekomendasikan untuk memeriksa ps_mem.py (ditemukan di sini di pixelbeat.org).
Saya tahu dalam komentar di atas, Anda menyebutkan menginginkan snapshot satu baris dari gratis , tetapi saya pikir orang lain mungkin menganggap ini berguna.
Contoh output:
Satu-satunya bagian yang saya tidak suka adalah kenyataan bahwa skrip mengklaim membutuhkan hak akses root. Saya belum memiliki kesempatan untuk melihat mengapa hal ini terjadi.
sumber
pip install ps_mem
) dan di GitHub .Gunakan perintah gratis . Misalnya, ini adalah ouput dari
free -m
:free -m | grep /+
hanya akan mengembalikan baris kedua:sumber
947
adalah penggunaan memori dikurangi memori yang digunakan untuk buffer dan cache?The menonton perintah mungkin berguna. Cobalah
watch -n 5 free
untuk memantau penggunaan memori dengan pembaruan setiap lima detik.sumber
Anda bisa melakukannya menggunakan
cat /proc/meminfo
.sumber
watch cat /proc/meminfo
free
perintah mengambil informasi dari/proc/meminfo
dan menyajikan mereka dengan cara yang kompak. Gunakanfree -h
untuk keluaran yang bisa dibaca manusia.Untuk pemantauan visual dari keseluruhan penggunaan RAM, jika Anda menggunakan Byobu , itu akan menjaga penggunaan memori Anda di sudut kanan bawah terminal dan akan berjalan saat Anda berada di sesi terminal apa pun.
Seperti yang dapat Anda lihat dari tangkapan layar, mesin virtual saya memiliki uptime 1h3m, beban 0,00, memiliki prosesor 2,8GHz (virtual) dan 994MB (21%) dari RAM yang tersedia pada sistem.
sumber
Solusi dan output jalur tunggal:
Berikut adalah contoh dari output yang diharapkan:
sumber
Saya akan menggunakan Cacti . Ini akan menggambarkan penggunaan memori Anda dll. Selama periode waktu tertentu, dan Anda akan dapat memeriksa penggunaan menggunakan browser web Anda.
sumber
Memonitor Penggunaan Memori
Saya lebih sejalan dengan salah satu posting sebelumnya yang menyebutkan Cacti sebagai cara yang bagus untuk memantau penggunaan memori. Namun, karena tampaknya kaktus tidak lagi populer di arus utama, ada aplikasi grafik alternatif bernama Graphite.
Graphite relatif mudah dipasang di server ubuntu dan untuk menginstalnya, Anda dapat memeriksa tautan ini untuk prosedur instalasi yang mudah diikuti.
Setelah grafit diinstal, sekarang, Anda dapat mengirim metrik memori ke sana, pada interval mana pun yang Anda inginkan; setiap 5 detik, setiap menit, setiap jam ... dll.
Untuk membuat grafik metrik memori, seperti yang telah disarankan dalam posting sebelumnya, Anda dapat menulis skrip Anda sendiri menggunakan alat sistem untuk mengumpulkan informasi memori yang diperlukan. Atau, Anda dapat menggunakan plugin snmp prewritten yang akan melakukan semua pekerjaan untuk Anda.
Jika Anda ingin menulis skrip memori Anda sendiri, akan lebih bijak untuk memastikan Anda memperhitungkan memori buffered dan cache ketika menghitung memori yang digunakan, jika tidak, Anda akhirnya akan mengumpulkan data palsu.
Jika Anda ingin menggunakan plugin snmp yang sudah melakukan semua perhitungan yang diperlukan untuk Anda, berikut ini tautan yang berfungsi dengan baik: checkMemoryviaSNMP .
Pro SNMP:
Saya telah menginstal snmp pada semua node jarak jauh yang saya monitor. Ini memungkinkan saya untuk memonitor semua sistem saya dari satu server pusat , tanpa harus menyalin atau meletakkan plugin pada node jarak jauh.
Kekurangan SNMP:
Anda harus memastikan agen snmp diinstal pada masing-masing node jarak jauh yang ingin Anda pantau memori. Namun, instalasi ini akan menjadi kesepakatan satu kali. Jika Anda menggunakan alat otomatisasi seperti koki atau boneka atau alat serupa di lingkungan Anda, maka ini bukan masalah sama sekali.
Konfigurasi agen SNMP pada node jarak jauh:
Setelah agen snmp diinstal, cukup vi file /etc/snmpd/snmpd.conf dan tambahkan baris ini ke dalamnya:
Kemudian restart agen snmpd, dengan:
Kemudian, di server pusat Anda, dari mana Anda memantau semua server Anda yang lain, Anda dapat menjalankan perintah berikut:
sumber