linux - 如何在 Linux 上记录内存消耗?

是否有任何现成的解决方案来记录系统启动时的内存消耗?我想将数据记录到简单的文本文件或某个数据库中,以便以后进行分析。

我正在开发基于 Linux 2.4 的嵌入式系统。我需要调试与内存消耗相关的问题。我的应用程序会在每次系统启动时自动启动。我需要定期(尽可能频繁地)获取带有时间戳的数据的方法,这样我就可以追踪问题。

我的问题的症状:当系统启动时,它启动了我的主应用程序和 GUI 以可视化系统的主要参数。基于 GTK+(X 服务器)的 GUI。如果我禁用 GUI 和 X 服务器,那么我的应用程序可以正常工作。如果我启用 GUI 和 X 服务器,当我在主板上安装 256 MiB 或 512 MiB 的物理内存时它不起作用。如果我安装了 1 GiB 的内存,那么一切正常。

最佳答案

以下脚本打印时间戳和标题。

#!/bin/bash -e

echo "      date     time $(free -m | grep total | sed -E 's/^    (.*)/\1/g')"
while true; do
    echo "$(date '+%Y-%m-%d %H:%M:%S') $(free -m | grep Mem: | sed 's/Mem://g')"
    sleep 1
done

输出如下所示(在 Ubuntu 15.04 64 位上测试)。

      date     time          total       used       free     shared    buffers     cached
2015-08-01 13:57:27          24002      13283      10718        522        693       2308
2015-08-01 13:57:28          24002      13321      10680        522        693       2308
2015-08-01 13:57:29          24002      13355      10646        522        693       2308
2015-08-01 13:57:30          24002      13353      10648        522        693       2308

https://stackoverflow.com/questions/1868210/

相关文章:

linux - 解释导出 LANG、LC_CTYPE 和 LC_ALL 的效果

linux - 从 rpm 包中提取规范文件

linux - 使用命令或 bash 脚本清理环境?

linux - 双斜杠//in `cd//` 在 Linux 中是什么意思?

linux - 使用 shell 脚本将行附加到/etc/hosts 文件

c - Linux 中的 bluetooth/bluetooth.h 位于何处?

linux - 进程可以拥有的每个不同 UID 的目的是什么?

c - 枚举中这些#define 的目的是什么?

linux - 从 FTP 服务器下载所有文件

linux - 我可以阅读 Linux 内核的哪些部分以获得乐趣?