【问题标题】:RAM Utilization [closed]RAM利用率[关闭]
【发布时间】:2015-02-13 11:25:08
【问题描述】:

我的问题是关于 RAM 利用率的。在我们的生产服务器(虚拟机)中,有 32 GB 的 RAM,并且只运行一个 Java-Tomcat,在应用程序中使用 hazel-cast。有关详细信息,请参阅下面的顶级命令输出和 RAM 利用率。

top: 
top - 16:43:59 up 123 days, 8 min,  3 users,  load average: 0.00, 0.00, 0.00
Tasks: 339 total,   1 running, 338 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.1%sy,  0.0%ni, 99.7%id,  0.1%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  32879672k total, 31617688k used,  1261984k free,   513508k buffers
Swap: 16777208k total,    71464k used, 16705744k free,  6933936k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
23410 root      20   0 6214m 1.6g  22m S  0.3  5.1 124:00.66 java
26312 root      20   0  314m  20m 9.8m S  0.3  0.1 135:30.82 gnome-terminal
31009 root      20   0 15164 1436  952 R  0.3  0.0   0:00.02 top
    1 root      20   0 19344 1288 1068 S  0.0  0.0   0:02.72 init


RAM : 
             total       used       free     shared    buffers     cached
Mem:         32109      30876       1232          0        501       6771
-/+ buffers/cache:      23603       8505
Swap:        16383         69      16314

系统消耗 32 个 RAM 中的 23-24 GB,并配置了 2 GB 的 JVM。 我的问题是为什么它会消耗这么多内存。任何人都可以帮我解决这个问题。

【问题讨论】:

    标签: java linux


    【解决方案1】:

    我的问题是为什么它会消耗这么多内存。任何人都可以帮我解决这个问题。

    每当您读取文件时,它都会进入磁盘缓存,并一直保留在那里,直到您删除文件或内存压力导致它被驱逐。这意味着,一旦您的机器读取了 32 GB 的磁盘空间(自启动以来),您应该期望它的所有内存都用于某事。

    您应该问的问题是为什么有些内存未使用。很可能是因为程序启动后又停止了。此外,操作系统会尝试为突然的内存分配(例如启动程序)保留一部分内存可用。大约 1 - 2 GB 的免费空间似乎是合理的。

    在顶部,您可以看到 7 GB 用于“缓存”文件,而 0.5 GB 用于缓冲区。您的 JVM 正在使用 1.6 GB 的常驻内存。其余的被操作系统和其他程序使用。

    如果您想查看内存故障,请运行less /proc/meminfo

    MemTotal:        8077800 kB
    MemFree:         2925896 kB
    Buffers:          161072 kB
    Cached:          2282792 kB
    Active:          3714312 kB
    Inactive:        1148840 kB
    

    注意:虽然我正在积极使用 ~ 3.7 GB,但还有 2.2 GB 用于缓存文件。

    我用来查看实际使用了多少内存的技巧是强制内存。例如

    dd if=/dev/zero of=/tmp/deleteme bc=1000000 count=24000
    rm /tmp/dleteme
    

    这将创建一个 24 GB 的文件并将其删除。这将向您显示运行 top 时真正需要多少内存。我选择了 24 GB,因为它约占主内存的 75%。

    【讨论】:

      猜你喜欢
      • 2022-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-02
      • 2017-12-25
      • 2012-12-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多