`

Linux内存cached过大的原因以及出现java.lang.OutOfMemoryError问题

阅读更多

 

最近进行上线前的压力测试,突然有天早上上班来,发现测试服务器JAVA进程挂掉了,查找原因发现:

A fatal error has been detected by the Java Runtime Environment:
#
# java.lang.OutOfMemoryError: requested 4092 bytes for char in /BUILD_AREA/jdk6_23/hotspot/src/share/vm/utilities/stack.inlin
e.hpp. Out of swap space?
#
#  Internal Error (allocation.inline.hpp:39), pid=8116, tid=619821968
#  Error: char in /BUILD_AREA/jdk6_23/hotspot/src/share/vm/utilities/stack.inline.hpp
#
# JRE version: 6.0_23-b05
# Java VM: Java HotSpot(TM) Server VM (19.0-b09 mixed mode linux-x86 )
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp

 

这个实际上不只是物理内存不够了,可能还是硬盘不够了。差了一下机器是日志造成硬盘空间快满了,同时造成物理内存也不够了。
使用free -m used cached都很大,free 只剩下90多M了,因为cached读取缓存文件才会增大cached区,
所以 echo '' > access.log  echo '' > error.log 清空nginx log日志后硬盘空间也释放了30%,再用free -m查询内存used ,cached也释放出来了,
说明 就是因为读取并写入nginx日志文件,而日志文件过大造成cached区内存增大把内存占用完,cached主要负责缓存文件使用。同时硬盘空间也不够了。


Free中的buffer和cache:(它们都是占用内存):
buffer : 作为buffer cache的内存,是块设备的读写缓冲区
cache: 作为page cache的内存, 文件系统的cache
如果 cache 的值很大,说明cache住的文件数很多。如果频繁访问到的文件都能被cache住,那么磁盘的读IO 必会非常小。

分享到:
评论

相关推荐

    PyPI 官网下载 | django-cached-functions-0.1.1.tar.gz

    5. **多后端支持**:除了内存缓存外,Django-Cached-Functions还支持其他缓存后端,如Redis、Memcached等,让你可以自由选择最适合你项目的缓存解决方案。 6. **易用性**:库的API设计简洁,易于理解和使用,使得...

    手工释放linux内存.pdf

    通过手动释放缓存的方式,可以在一定程度上缓解Linux系统因缓存占用过多内存而导致的“内存不足”问题。这种方法特别适用于那些需要即时释放内存资源以供其他任务使用的场景。需要注意的是,在日常运维中应谨慎使用...

    Linux内存管理实验.pdf

    例如,使用free命令可以查看物理内存、交换区(swap)的使用情况,包括总内存、已用内存、空闲内存、共享内存、缓冲区(buffers)以及缓存(cached)。这些参数以KB或MB为单位展示,可通过-b、-k、-m选项指定。此外...

    Python库 | cached-1.0.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:cached-1.0.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    在linux查看内存的大小.pdf

    本文将详细介绍如何在Linux系统中查看内存的大小以及理解相关输出信息。 首先,我们可以使用`free`命令来查看系统的内存使用情况。这个命令提供了关于物理内存(RAM)和交换空间(Swap)的详细统计。例如: ```...

    cgroup-linux内存资源管理.pdf

    `free`命令是我们查看系统内存状态的常用工具,它展示了总内存(`total`)、已使用内存(`used`)、空闲内存(`free`)以及共享内存(`shared`)、缓冲区内存(`buffers`)和缓存内存(`cached`)。需要注意的是,`-...

    Linux内存维护[收集].pdf

    在Linux系统中,内存管理是核心操作之一,它涉及到系统的...理解Linux内存管理对于优化系统性能和解决资源瓶颈问题至关重要。通过监控`free`命令和`/proc/meminfo`中的信息,可以有效地分析和调整系统的内存使用策略。

    flatbuffers-java-1.12.0-API文档-中文版.zip

    赠送jar包:flatbuffers-java-1.12.0.jar; 赠送原API文档:flatbuffers-java-1.12.0-javadoc.jar; 赠送源代码:flatbuffers-java-1.12.0-sources.jar; 赠送Maven依赖信息文件:flatbuffers-java-1.12.0.pom; ...

    Linux查看CPU和内存使用情况

    3. **CPU和内存使用情况**:详细列出了CPU的使用率以及内存的总量、使用量、空闲量和缓冲使用量。 4. **交换分区(Swap)使用情况**:类似于内存使用情况,但反映的是交换分区的使用状态。 ##### `top`命令的控制...

    Linux内存buffer和cache的区别

    ### Linux内存管理中的Buffer与Cache区别详解 #### 一、引言 在现代操作系统中,内存管理是一项极其重要的任务,特别是在Linux这样的多用户多任务环境中。Linux系统在内存管理方面采取了许多高效的策略来提高系统...

    ram.zip_CPU 内存_linux内存

    在Linux操作系统中,管理和监控CPU利用率以及内存使用情况是系统管理员和开发者日常工作中不可或缺的部分。了解如何有效地获取这些信息对于优化系统性能、排查问题至关重要。本文将深入探讨Linux下的CPU和内存管理,...

    Linux操作系统中的内存简单计算方式介绍

    首先,Linux的核心理念是充分利用内存资源,即使在没有活跃进程时,也会将内存用于缓存文件系统数据,包括缓冲区(buffers)和页缓存(cached)。缓冲区主要用于存储文件系统的元数据,如目录项、i节点等;而页缓存...

    Dubbo线程模型(结合Linux线程数限制配置的实战经验分享).docx

    当应用程序尝试创建超过这个限制的线程时,可能会抛出`java.lang.OutOfMemoryError: unable to create new native thread`异常。这个限制是防止恶意或意外的进程消耗过多系统资源,导致所谓的“fork炸弹”。 实战...

    手工释放linux内存_procsysvmdrop_caches.pdf

    手动释放 Linux 内存 - procsysvmdrop_caches Linux 内存管理是 Linux 操作系统中一个非常重要的部分。在日常使用中,我们经常会遇到物理内存被用光的现象,特别是在频繁存取文件时。这个问题貌似有不少人在问,...

    [linux怎么看内存使用率]linux查看内存使用率.docx

    Linux 查看内存使用率详解 在 Linux 系统中,查看内存使用率是非常重要的,了解系统中的内存使用情况可以帮助我们更好地对系统进行优化和配置。下面我们将详细介绍如何使用 top 和 free 命令来查看系统中的内存使用...

    嵌入式Linux内存管理之free命令

    通过理解free命令的输出以及内存管理的机制,管理员可以更有效地优化系统性能,并合理分配系统资源。在实际操作中,管理员可能会遇到一些误解,比如误以为系统内存不足,实际上可能是由于对缓冲和缓存机制的不了解...

    解决出现CUDA error-out of memory的问题.pdf

    本文将详细介绍这个问题的原因、影响以及解决方法。 ### 问题原因 1. **模型复杂度过高**:深度学习模型的大小(权重和参数的数量)和网络结构决定了其对显存的需求。如果模型过于复杂,需要加载到显存的数据量会...

    如何正确查看Linux机器内存使用情况.docx

    本文将深入探讨如何正确查看Linux机器的内存使用情况,特别关注`top`命令可能产生的误解以及如何利用`free`命令获取更准确的信息。 首先,我们需要理解Linux内存管理的基本概念。Linux内核采用了一种名为“虚拟内存...

    webrtcvad-2.0.10.tar.gz

    图像特征检测算法-SIFT的Python实现,下载的文件为vlfeat-0.9.20-bin.tar.gz,解压缩后,将vlfeat-0.9.20/bin/win64文件夹下的sift.exe和vl.dll拷贝到当前工作目录下。

    课题-linux系统如何查看内存使用情况.pdf

    在Linux系统中,监控内存使用情况对于系统的性能分析和优化至关重要。通过查看内存的状态,我们可以了解系统的健康状况,包括哪些进程在消耗大量内存,以及系统是否有足够的资源来处理新的请求。以下是一些主要的...

Global site tag (gtag.js) - Google Analytics