java centos 7 内存分配失败

本贴最后更新于 2196 天前,其中的信息可能已经沧海桑田

处理办法
1.# 手动释放 linux 内存

sync

手动执行 sync 命令(描述:sync 命令运行 sync 子例程。如果必须停止系统,则运行 sync 命令以确保文件系统的完整性。sync 命令将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-Node、已延迟的块 I/O 和读写映射文件)

echo 3 > /proc/sys/vm/drop_caches

cat /proc/sys/vm/drop_caches

3
将/proc/sys/vm/drop_caches 值设为 3

  1. 修改/proc/sys/vm/overcommit_memory 默认值 为 0
    centos7 查看内存使用情况
    [hadoop@28 ~]$ free -m
    total used free shared buff/cache available
    Mem: 15886 5819 8956 0 1109 9757
    Swap: 1999 0 1999
    显示的可用内存还有 8 个 g,但是启动 java 应用的时候抛出异常:
    Native memory allocation (mmap) failed to map 2863333376 bytes for committing reserved memory
    而该参数应该默认是 0,这种情况下,只有还有空闲的物理内存,就可以继续分配,不受虚拟地址空间的限制。
    echo 0 > /proc/sys/vm/overcommit_memory
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...