今天惊愕地发现,主节点上8G内存被不知道什么进程吃掉了整整6G有余,正常的计算快要维持不下去了,遂处理之。

先看看内存使用状况

[root@node1 ~]# free -m

total used free shared buffers cached

Mem: 8004 6557 1446 0 163 5630

-/+ buffers/cache: 763 7240

Swap: 1983 0 1983

其中:

total 内存总数

used 已经使用的内存数

free 空闲的内存数

shared 多个进程共享的内存总额

buffers Buffer Cache和cached Page Cache 磁盘缓存的大小

-buffers/cache 的内存数:used - buffers - cached

+buffers/cache 的内存数:free + buffers + cached

可用的memory=free memory+buffers+cached

把内存里的数据暂时写到硬盘里

[root@node1 ~]# sync

修改 /proc/sys/vm/drop_caches文件(/proc/sys/vm/drop_caches的默认值为0)

[root@node1 ~]# echo 3 > /proc/sys/vm/drop_caches

[root@node1 ~]# cat /proc/sys/vm/drop_caches

再看内存

[root@node1 ~]# free -m

total used free shared buffers cached

Mem: 8004 631 7372 0 0 60

-/+ buffers/cache: 570 7433

Swap: 1983 0 1983

终于释放出来了。

有关/proc/sys/vm/drop_caches的用法在下面进行了说明(原文:http://www.linuxinsight.com/proc_sys_vm_drop_caches.html):

Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.

To free pagecache:

echo 1 > /proc/sys/vm/drop_caches

To free dentries and inodes:

echo 2 > /proc/sys/vm/drop_caches

To free pagecache, dentries and inodes:

echo 3 > /proc/sys/vm/drop_caches

As this is a non-destructive operation, and dirty objects are not freeable, the user should run "sync" first in order to make sure all cached objects are freed.

This tunable was added in 2.6.16.

真实情况是 “当有某程序需要占用大内存时linux会自动释放cache”

linux的理念是内存空着不用白不用,因此会使用空闲内存来做buffer和cache。

我的一台虚拟机运行了JBOSS,在运行一段时间后,查看内存使用情况:

[root@JBOSS ~]# free -m

total used free shared buffers cached

Mem: 3949 2928 1021 0 308 1278

-/+ buffers/cache: 1341 2608

Swap: 4094 0 4094

可以看出,内存已用2928M,但实际除去 buffers/cache后实际只使用了1341M。

你若不管它,内存是不会释放的,而且也没必要释放。

linux 进程 释放内存,Linux 释放内存方法和原理相关推荐

  1. linux进程管理机制,linux进程管理,linux进程管理机制

    linux进程管理,linux进程管理机制 一.基本介绍 1.在 LINUX 中,每个执行的程序(代码)都称为一个进程.每一个进程都分配一个 ID 号 2.每一个进程,都会对应一个父进程,而这个父进程 ...

  2. linux进程阻塞的原因,释放大块内存时的阻塞问题

    一.前言 在堆上申请和释放内存的性能不高,这应该是常识了,尤其释放大块内存时,耗时更长,甚至会阻塞其他线程.做性能优化时,一般会采用内存池等手段避免频繁的申请和释放内存.本文从内核的角度分析申请和释放 ...

  3. linux 进程流量统计,Linux进程网络流量统计方法及实现

    1 前言 在某些应用安全场景须要结合进程级网络链接.流入流出流量等数据直接分析出进程的异常.例如,在内网主机上是否存在持续恶意外传敏感数据的现象.在网络监控时发现服务器大量带宽被占用但不清楚由系统具体 ...

  4. linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt

    <linux操作系统-进程管理和打印管理.ppt>由会员分享,可在线阅读,更多相关<linux操作系统-进程管理和打印管理.ppt(25页珍藏版)>请在装配图网上搜索. 1.进 ...

  5. linux进程操作相关函数,Linux进程控制简介与要素及相关函数详解

    进程是操作系统中的一个重要概念,它是一个程序的一次执行过程,程序是进程的一种静态描述,系统中运行的每一个程序都是在它的进程中运行的. 进程4要素 要有一段程序供该进程运行 进程专用的系统堆栈空间 进程 ...

  6. Linux进程实践(1) --Linux进程编程概述

    进程 VS. 程序 什么是程序? 程序是完成特定任务的一系列指令集合. 什么是进程? [1]从用户的角度来看:进程是程序的一次执行过程 [2]从操作系统的核心来看:进程是操作系统分配的内存.CPU时间 ...

  7. linux 进程 状态 ri,LINUX下解决netstat查看TIME_WAIT状态过多问题(转)

    # netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c 16 CLOSING 130 ESTABLISHED 298 FIN_WAIT1 13 FIN_WA ...

  8. linux 进程通信机制,LINUX内核进程高效通信机制研究

    摘要:进程间的通信是多任务.多用户操作系统必须考虑的重大问题,Linux继承了Unix的基本设计思想,其安全性和稳定性得到了人们的认可,但随着其应用领域的不断拓展,其通信机制已经不能满足用户的需求.本 ...

  9. linux 进程管理 ppt,Linux内核结构与进程管理.ppt

    Linux内核结构与进程管理.ppt Linux 内核结构与进程管理,Linux系统结构Linux kernel 开放源代码的linux操作系统内核,目前版本为2.6,Linux内核组成1. 进程调度 ...

  10. linux 进程的操作,linux进程操作命令

    linux进程操作命令 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 简单概述简单概述 Linux 进程操作命令进程操作命令Lin ...

最新文章

  1. 机器学习萌新必备的三种优化算法 | 选型指南
  2. 将xscj指定为当前数据库_(2)连接登陆数据库
  3. [WebApp开发]基础教程-Google官方文档-第四篇
  4. Exchange 2007 迁移 2010
  5. Java常见面试题及答案汇总
  6. 2012年iOS开发人员必看的精品资料(100个)
  7. 今天才知道css hack是什么
  8. 每周百万封业务邮件的服务器不知道为啥就down掉了?
  9. 第二章 AIR202_Lua_串口控制
  10. 文华财经程序化交易模型
  11. [Swust OJ 643]--行列式的计算(上三角行列式变换)
  12. STM32 Mbed系列-ADC参考电压设置
  13. HTML生成PDF、web打印动态分页、预览。内容满了,自动换页、移动端兼容 bookjs-eazy
  14. 【比赛总结】从编程位队长的角度看待第十三届华中杯数学建模比赛A题
  15. 曾被疑为有血缘关系的明星
  16. Zend Studio中安装Aptana及几个配置说明
  17. 数据结构之栈,栈是很多算法的基础知识,本文带你从0开始了解栈并手写一个栈
  18. vsftpd的安装与使用
  19. 计算机专业的专科生能找到好工作吗?|猿代码科技
  20. 微信开放平台分账功能实战(Java版)

热门文章

  1. 二维温度场matlab编程,二维温度场重建算法(价钱可议)
  2. 【TypeScript系列教程02】安装及使用
  3. 教你玩转CSS 轮廓(outline)属性
  4. java hashmap替换key,HashMap 用可变对象作为 key 踩坑
  5. webpack入门 --初级压缩
  6. 美团扫码付的前端可用性保障实践
  7. CSS布局技巧之——各种居中
  8. js 计算对象数组中某个属性值重复出现的个数
  9. SpringCloud学习笔记(6)----Spring Cloud Netflix之负载均衡-Ribbon的使用
  10. windows下github 出现Permission denied (publickey)