Jon*_*nas 310 server memory monitoring logging memory-usage
我曾经top看过目前的内存使用情况。但我想监控一段时间内的内存使用情况。比如开始监控,然后执行一些命令,最后停止监控,看看这段时间用了多少内存。
我怎样才能在 Ubuntu 服务器上做到这一点?
我想我可以每 5 秒左右启动一次 cronjob,并调用一个命令,在文本文件中记录当前内存使用情况。但是我应该使用什么命令以易于记录到文本文件的格式获取当前内存使用情况?
Jus*_*rce 372
我建议结合以前的答案
watch -n 5 free -m
Run Code Online (Sandbox Code Playgroud)
请注意,Linux 喜欢使用任何额外的内存来缓存硬盘驱动器块。所以你不想只看免费的Mem. 你想看看free的列-/+ buffers/cache:行。这显示了应用程序可用的内存量。所以我就跑了free -m,得到了这个:
total used free shared buffers cached
Mem: 3699 2896 802 0 247 1120
-/+ buffers/cache: 1528 2170
Swap: 1905 62 1843
Run Code Online (Sandbox Code Playgroud)
我知道我使用的是1528 MB并且有2170 MB可用空间。
注意:要停止此watch循环,您只需按Ctrl+ 即可C。
Alv*_*var 249
我认为htop是最好的解决方案。
sudo apt-get install htop通过这种方式,您会注意到哪些程序使用了最多的 RAM。如果您愿意,您可以轻松终止一个。这是屏幕截图!

Jas*_*ock 49
如果你在寻找每个正在运行的进程使用的内存的一个很好的细分,那么我会推荐检查出ps_mem.py(发现这里的pixelbeat.org)。
我知道在上面的评论中,您提到想要从free 获得单行快照,但我认为其他人可能会觉得这很有用。
示例输出:
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
Run Code Online (Sandbox Code Playgroud)
我唯一不喜欢的部分是该脚本声称需要 root 权限。我还没有机会确切地看到为什么会这样。
Isa*_*iah 25
使用免费命令。例如,这是输出free -m:
total used free shared buffers cached
Mem: 2012 1666 345 0 101 616
-/+ buffers/cache: 947 1064
Swap: 7624 0 7624
Run Code Online (Sandbox Code Playgroud)
free -m | grep /+ 将只返回第二行:
-/+ buffers/cache: 947 1064
Run Code Online (Sandbox Code Playgroud)
Ami*_*mir 10
您可以使用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
Run Code Online (Sandbox Code Playgroud)
小智 5
我刚刚找到了这个解决方案,它工作得很好,通过 CLI 创建了一个图形界面:
# fixed link
git clone https://github.com/aristocratos/bashtop
cd bashtop
bash bashtop
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
613272 次 |
| 最近记录: |