Bagaimana saya bisa memonitor penggunaan memori?

Saya telah menggunakan top untuk melihat penggunaan memori saat ini. Tapi saya ingin memantau penggunaan memori selama periode waktu. E. g mulai memantau dan kemudian mengeksekusi beberapa perintah, dan terakhir berhenti memantau dan melihat berapa banyak memori yang telah digunakan selama periode tersebut.

Bagaimana saya bisa melakukan ini di Ubuntu Server?

Saya kira saya bisa mulai cronjob setiap 5 detik atau lebih, dan memanggil perintah yang log penggunaan memori saat ini di textfile. Tapi perintah apa yang harus saya gunakan untuk mendapatkan penggunaan memori saat ini dalam format yang lebih mudah untuk log ke file teks?

Larutan

Saya merekomendasikan menggabungkan jawaban sebelumnya

watch -n 5 free -m

Perhatikan bahwa Linux suka menggunakan memori tambahan untuk cache hard drive blok. Sehingga anda don't ingin melihat hanya bebas Mem. Anda ingin melihat gratis kolom -/+ buffers/cache: baris. Hal ini menunjukkan berapa banyak memori yang tersedia untuk aplikasi. Jadi aku hanya berlari free-m dan mendapat ini:

             total       used       free     shared    buffers     cached
Mem:          3699       2896        802          0        247       1120
-/+ buffers/cache:       1528       2170
Swap:         1905         62       1843

Saya tahu bahwa saya'm menggunakan 1528 KB dan 2170 MB gratis.

Catatan: Untuk menghentikan menonton siklus anda hanya dapat menekan Pilih+C.

Komentar (7)

Saya pikir htop adalah solusi terbaik.

  • sudo apt-get install htop

Dengan cara ini anda akan melihat program apa yang menggunakan sebagian RAM. dan anda dapat dengan mudah menghentikan satu jika anda ingin. Berikut ini's screenshot!

Komentar (5)

Jika anda sedang mencari rincian dari memori yang digunakan oleh masing-masing proses yang berjalan, maka saya akan merekomendasikan memeriksa ps_mem.py (ditemukan di sini di pixelbeat.org).

Aku tahu di komentar di atas, anda ingin disebutkan satu baris snapshot dari gratis, tapi saya pikir orang lain mungkin menemukan ini berguna.

Contoh output:

user@system:~$ sudo ps_mem.py
[sudo] password for user:
 Private  +   Shared  =  RAM used       Program

  4.0 KiB +   7.5 KiB =  11.5 KiB       logger
  4.0 KiB +   8.0 KiB =  12.0 KiB       mysqld_safe
  4.0 KiB +  10.0 KiB =  14.0 KiB       getty
  4.0 KiB +  42.0 KiB =  46.0 KiB       saslauthd (5)
 48.0 KiB +  13.0 KiB =  61.0 KiB       init
 56.0 KiB +  27.5 KiB =  83.5 KiB       memcached
 84.0 KiB +  26.5 KiB = 110.5 KiB       cron
120.0 KiB +  50.0 KiB = 170.0 KiB       master
204.0 KiB + 107.5 KiB = 311.5 KiB       qmgr
396.0 KiB +  94.0 KiB = 490.0 KiB       tlsmgr
460.0 KiB +  65.0 KiB = 525.0 KiB       rsyslogd
384.0 KiB + 171.0 KiB = 555.0 KiB       sudo
476.0 KiB +  83.0 KiB = 559.0 KiB       monit
568.0 KiB +  60.0 KiB = 628.0 KiB       freshclam
552.0 KiB + 259.5 KiB = 811.5 KiB       pickup
  1.1 MiB +  80.0 KiB =   1.2 MiB       bash
  1.4 MiB + 308.5 KiB =   1.7 MiB       fail2ban-server
888.0 KiB +   1.0 MiB =   1.9 MiB       sshd (3)
  1.9 MiB +  32.5 KiB =   1.9 MiB       munin-node
 13.1 MiB +  86.0 KiB =  13.2 MiB       mysqld
147.4 MiB +  36.5 MiB = 183.9 MiB       apache2 (7)
---------------------------------
                        208.1 MiB
=================================

 Private  +   Shared  =  RAM used       Program

Satu-satunya bagian I don't suka adalah kenyataan bahwa script mengaku membutuhkan hak akses root. Aku ingin't memiliki kesempatan lagi untuk melihat persis mengapa hal ini terjadi.

Komentar (7)

Gunakan gratis perintah. Sebagai contoh, ini adalah ouput dari free-m:

             total       used       free     shared    buffers     cached
Mem:          2012       1666        345          0        101        616
-/+ buffers/cache:        947       1064
Swap:         7624          0       7624

free-m | grep /+ akan kembali hanya baris kedua:

-/+ buffers/cache:        947       1064
Komentar (1)

The watch perintah semoga bermanfaat. Mencoba watch-n 5 gratis untuk memantau penggunaan memori dengan update setiap lima detik.

Komentar (1)

Anda dapat melakukannya dengan menggunakan cat /proc/meminfo.

MemTotal:        4039160 kB
MemFree:          309796 kB
MemAvailable:    3001052 kB
Buffers:          345636 kB
Cached:          2341288 kB
SwapCached:            8 kB
Active:          1725160 kB
Inactive:        1551652 kB
Active(anon):     538404 kB
Inactive(anon):    70076 kB
Active(file):    1186756 kB
Inactive(file):  1481576 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:       4194300 kB
SwapFree:        4194044 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:        589988 kB
Mapped:           255972 kB
Shmem:             18596 kB
Slab:             374888 kB
SReclaimable:     310496 kB
SUnreclaim:        64392 kB
KernelStack:        6976 kB
PageTables:        26452 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     6213880 kB
Committed_AS:    3589736 kB
VmallocTotal:   34359738367 kB
VmallocUsed:           0 kB
VmallocChunk:          0 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
ShmemPmdMapped:        0 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      147392 kB
DirectMap2M:     4046848 kB
Komentar (2)

Untuk pemantauan visual dari keseluruhan penggunaan RAM, jika anda menggunakan Byobu, hal ini akan membuat penggunaan memori di pojok kanan bawah dari terminal dan akan berjalan sementara anda berada di setiap sesi terminal.

Seperti yang anda lihat dari screenshot, saya virtual machine memiliki 1h3m uptime, 0.00 beban, telah 2.8 GHz (virtual) prosesor dan 994MB (21%) dari RAM yang tersedia pada sistem.

Komentar (0)

Single line solusi dan output:

free -m | grep "Mem:"

Berikut adalah contoh output yang diharapkan:

Mem:           3944         652         302          18        2990        2930
Komentar (0)

Saya akan menggunakan Kaktus. Ini akan grafik penggunaan memori dll selama periode waktu, dan anda akan dapat untuk memeriksa penggunaan menggunakan browser web anda.

Komentar (0)

Pemantauan Penggunaan Memori

I'm lebih sejalan dengan salah satu sebelumnya posting yang disebutkan Kaktus sebagai cara yang bagus untuk memantau penggunaan memori. Namun, sejak itu muncul kaktus ini tidak lagi populer di mainstream, ada alternatif grafik aplikasi yang disebut Grafit.

Grafit adalah relatif mudah untuk menginstal di ubuntu server dan menginstal itu, anda dapat memeriksa link ini]1 untuk mudah untuk mengikuti prosedur instalasi.

Setelah grafit telah terinstal, sekarang, anda dapat mengirim memori metrik untuk itu, di mana interval yang anda inginkan; setiap 5 detik, setiap menit, setiap jam...dll.

Untuk grafik memori metrik, seperti yang sudah disarankan di posting sebelumnya, anda dapat menulis skrip anda sendiri menggunakan alat-alat sistem untuk mengumpulkan memori diperlukan informasi. Atau, anda dapat menggunakan prewritten snmp plugin yang'll melakukan semua pekerjaan untuk anda.

Jika anda ingin menulis memori anda sendiri script, it'akan bijaksana untuk memastikan anda account untuk buffer dan cache memori ketika menghitung memori yang digunakan, jika tidak, anda'll berakhir pengumpulan data palsu.

Jika anda ingin bukannya memanfaatkan snmp plugin yang sudah melakukan semua perhitungan yang diperlukan untuk anda, di sini's link ke salah satu yang bekerja dengan cukup baik: checkMemoryviaSNMP.

Lebih baik dari SNMP:

Saya memiliki snmp diinstal pada semua node jauh saya monitor. Hal ini memungkinkan saya untuk memantau semua sistem saya dari satu server pusat(s), tanpa harus copy atau memasang plugin pada remote node.

Kontra dari SNMP:

Anda'd harus memastikan snmp agent diinstal pada masing-masing node jauh anda ingin memantau memori pada. Namun, instalasi ini akan menjadi satu kali transaksi. Jika anda're menggunakan alat otomatisasi seperti koki atau boneka atau alat serupa di lingkungan anda, maka ini isn't masalah sama sekali.

Konfigurasi SNMP agent pada remote node(s):

Setelah snmp agent telah diinstal, cukup vi /etc/snmpd/snmpd.conf dan tambahkan baris ini:

rocommunity  (specify-a-community-string-aka-password-here)

Kemudian restart snmpd agen, dengan:

/etc/init.d/snmpd restart

Kemudian, pada server pusat, dari mana anda bukan untuk memantau semua server lainnya, anda dapat menjalankan perintah berikut:

$ time ./checkMemoryviaSNMP -v2 public gearman001.phs.blah.com 30 90 graphite,10.10.10.10,2003,typical
WARNING: Used = [ 3.26154 GB ], Installed = [ 5.71509 GB ], PCT.Used = [ 57.069% ], Available.Memory = [ 2.00291 GB ]. Buffer = [ 137.594 MB ], Cached = [ 1.3849 GB ]. Thresholds: [ W=(30%) / C=(90%) ].  System Information = [ Linux gearman001.phs.blah.com 2.6.32-504.30.3.el6.x86_64 #1 SMP Thu Jul 9 15:20:47 EDT 2015 x86_64 ].

real    0m0.23s
user    0m0.03s
sys     0m0.02s
Komentar (0)