AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / ubuntu / 问题 / 9642
Accepted
Jonas
Jonas
Asked: 2010-10-27 08:50:19 +0800 CST2010-10-27 08:50:19 +0800 CST 2010-10-27 08:50:19 +0800 CST

如何监控内存使用情况?

  • 772

我现在已经习惯top了查看内存使用情况。但我想监控一段时间内的内存使用情况。比如开始监控,然后执行几个命令,最后停止监控,看看这段时间内使用了多少内存。

如何在 Ubuntu 服务器上执行此操作?

我想我可以每隔 5 秒左右启动一个 cronjob,然后调用一个在文本文件中记录当前内存使用情况的命令。但是我应该使用什么命令以易于记录到文本文件的格式获取当前内存使用情况?

server memory monitoring logging memory-usage
  • 13 13 个回答
  • 667663 Views

13 个回答

  • Voted
  1. Best Answer
    Justin Force
    2010-10-27T09:40:22+08:002010-10-27T09:40:22+08:00

    我建议结合以前的答案

    watch -n 5 free -m
    

    请注意,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
    

    我知道我正在使用1528 MB并且有2170 MB可用。

    注意:要停止此watch循环,您只需按Ctrl+即可C。

    • 395
  2. Alvar
    2012-05-18T16:11:01+08:002012-05-18T16:11:01+08:00

    我认为htop是最好的解决方案。

    • sudo apt-get install htop

    通过这种方式,您会注意到哪些程序正在使用最多的 RAM。如果你愿意,你可以很容易地终止一个。这是一个屏幕截图!

    • 258
  3. Jason Mock
    2011-09-21T17:23:04+08:002011-09-21T17:23:04+08:00

    如果您想详细了解每个正在运行的进程所使用的内存,那么我可能会建议您查看ps_mem.py(可在pixelbeat.org 上找到)。

    我知道在上面的评论中,您提到想要免费的单行快照,但我认为其他人可能会觉得这很有用。

    示例输出:

    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
    

    我不喜欢的唯一部分是该脚本声称需要 root 权限。我还没有机会确切地了解为什么会这样。

    • 49
  4. Isaiah
    2010-10-27T09:19:19+08:002010-10-27T09:19:19+08:00

    使用免费命令。例如,这是 的输出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 /+将只返回第二行:

    -/+ buffers/cache:        947       1064
    
    • 26
  5. mgunes
    2010-10-27T09:27:55+08:002010-10-27T09:27:55+08:00

    watch命令可能很有用。尝试watch -n 5 free通过每五秒更新一次来监控内存使用情况。

    • 13
  6. Amir
    2016-04-17T11:15:31+08:002016-04-17T11:15:31+08:00

    您可以使用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
    
    • 12
  7. cdutra
    2020-04-27T15:52:56+08:002020-04-27T15:52:56+08:00

    我刚刚找到了这个解决方案,它工作得很好,通过 CLI 创建了一个图形界面:

    # fixed link
    git clone https://github.com/aristocratos/bashtop
    cd bashtop
    bash bashtop
    

    截屏

    • 7
  8. bafromca
    2015-01-20T12:09:21+08:002015-01-20T12:09:21+08:00

    对于整体 RAM 使用情况的可视化监控,如果您使用Byobu,它会将您的内存使用情况保持在终端的右下角,并在您处于任何终端会话时运行。

    从屏幕截图中可以看出,我的虚拟机的正常运行时间为 1 小时 3 分钟,负载为 0.00,具有 2.8GHz(虚拟)处理器和 994MB(21%)系统上可用的 RAM。

    使用中的屏风

    • 4
  9. Tim
    2016-09-28T05:30:33+08:002016-09-28T05:30:33+08:00

    单线解决方案和输出:

    free -m | grep "Mem:"
    

    以下是预期输出的示例:

    Mem:           3944         652         302          18        2990        2930
    
    • 4
  10. Matt
    2010-10-27T10:01:22+08:002010-10-27T10:01:22+08:00

    我会用Cacti。这将绘制一段时间内您的内存使用情况等,您将能够使用您的网络浏览器检查使用情况。

    • 1

相关问题

  • 使用 dpkg 手动安装软件包是否会阻止未来的升级路径?

  • 如何从命令行刻录双层 dvd iso

  • 如果在服务器机器上运行 Ubuntu 桌面版,性能损失是多少?

  • 将桌面版剥离为服务器版的最简单方法是什么?

  • 如何与无头服务器进行图形交互?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    如何安装 .run 文件?

    • 7 个回答
  • Marko Smith

    如何列出所有已安装的软件包

    • 24 个回答
  • Marko Smith

    如何获得 CPU 温度?

    • 21 个回答
  • Marko Smith

    无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗?

    • 25 个回答
  • Marko Smith

    如何使用命令行将用户添加为新的 sudoer?

    • 7 个回答
  • Marko Smith

    更改文件夹权限和所有权

    • 9 个回答
  • Marko Smith

    你如何重新启动Apache?

    • 13 个回答
  • Marko Smith

    如何卸载软件?

    • 11 个回答
  • Marko Smith

    如何删除 PPA?

    • 26 个回答
  • Martin Hope
    NES 如何启用或禁用服务? 2010-12-30 13:03:32 +0800 CST
  • Martin Hope
    Ivan 如何列出所有已安装的软件包 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    La Ode Adam Saputra 无法锁定管理目录 (/var/lib/dpkg/) 是另一个进程在使用它吗? 2010-11-30 18:12:48 +0800 CST
  • Martin Hope
    Olivier Lalonde 如何在结束 ssh 会话后保持进程运行? 2010-10-22 04:09:13 +0800 CST
  • Martin Hope
    David B 如何使用命令行将用户添加为新的 sudoer? 2010-10-16 04:02:45 +0800 CST
  • Martin Hope
    Hans 如何删除旧内核版本以清理启动菜单? 2010-08-21 19:37:01 +0800 CST
  • Martin Hope
    David Barry 如何从命令行确定目录(文件夹)的总大小? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher “以下软件包已被保留:”为什么以及如何解决? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford 如何删除 PPA? 2010-07-30 01:09:42 +0800 CST

热门标签

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve