手动释放Linux服务器内存(具体操作步骤)_unix linux

在服务器运行过程中,使用free -m查看服务器内存时,经常会发现free值很小,有些同学就会很紧张,总想采取一些措施,使得free值看起来高一点,心里就比较爽一点。其实,个人觉得这完全是图一时之快,没什么实质性用途。

一、大众释放内存方法
1. 首先使用free -m查看剩余内存

复制代码 代码如下:

linux-8v2i:~ # free -m
             total       used       free     shared    buffers     cached
Mem:          3952       2773       178          0         130        1097
-/+ buffers/cache:       1545       2406
Swap:         2055          0       2055

2. 执行sync命令
使用sync命令以确保文件系统的完整性,sync 命令运行 sync 子例程,将所有未写的系统缓冲区写到磁盘中,包含已修改的 i-node、已延迟的块 I/O 和读写映射文件。

复制代码 代码如下:

linux-8v2i:~ # sync

3. 修改/proc/sys/vm/drop_caches

复制代码 代码如下:

echo 3 > /proc/sys/vm/drop_caches

说明:
1>. /proc是一个虚拟文件系统,我们可以通过对它的读写操作作为与kernel实体间进行通信的一种手段。也就是说可以通过修改/proc中的文件,来对当前kernel的行为做出调整。也就是说我们可以通过调整/proc/sys/vm/drop_caches来释放内存。

2>. 关于drop_caches的官方说明如下:

复制代码 代码如下:

Writing to this file causes the kernel to drop clean caches,dentries and inodes from memory, causing that memory to becomefree.

To free pagecache, use echo 1 > /proc/sys/vm/drop_caches;
to free dentries and inodes, use echo 2 > /proc/sys/vm/drop_caches;
to free pagecache, dentries and inodes, use echo 3 >/proc/sys/vm/drop_caches.

Because this is a non-destructive operation and dirty objects are not freeable, the user should run sync first.

3>. Linux内核会将它最近访问过的文件页面缓存在内存中一段时间,这个文件缓存被称为pagecache。

4.再使用free -m查看剩余内存,情况如下:

复制代码 代码如下:

linux-8v2i:~ # free -m
             total       used       free     shared    buffers     cached
Mem:          3952       1773       2325          0         0        80
-/+ buffers/cache:       1545       2406
Swap:         2055          0       2055

二、Linux内存分析
1. 首先对free -m查看结果进行分析

复制代码 代码如下:

linux-8v2i:~ # free -m
             total       used       free     shared    buffers     cached
Mem:          3952       2773       178          0         130        1097
-/+ buffers/cache:       1545       2406
Swap:         2055          0       2055

各参数含义:
•total:总物理内存
•used:已使用内存
•free:完全未被使用的内存
•shared:应用程序共享内存
•buffers:缓存,主要用于目录方面,inode值等
•cached:缓存,用于已打开的文件
•-buffers/cache:应用程序使用的内存大小,used减去缓存值
•+buffers/cache:所有可供应用程序使用的内存大小,free加上缓存值

其中:
•total = used + free
•-buffers/cache=used-buffers-cached,这个是应用程序真实使用的内存大小
•+buffers/cache=free+buffers+cached,这个是服务器真实还可利用的内存大小

2. Linux的内存分配方式
大家都知道,Linux服务器为了提高效率,会提前申请内存,即使这些内存没有被具体应用使用,Linux也会提前申请这些内存,然后利用这些内存做缓存用,即将刚打开的文件系统存入cache中,这样对应的服务器free值会越来越少,buffers和cached会越来越大,因此给大家表象就是内存越来越少了,大家就紧张了;其实,大家完全不用紧张,Linux服务器在发现内存不足时,会自动清理cached区域,释放内存,然后继续增大cache,free继续减少。因此,那样手动降低内存使用率的方法,其实就是图一时之快,呵呵。

时间: 2024-09-28 22:44:41

手动释放Linux服务器内存(具体操作步骤)_unix linux的相关文章

在Linux(Ubuntu)下搭建PHP环境的操作步骤_unix linux

一.安装Apache2 sudo apt-get install apache2 二.测试Apache2 在地址栏输入以下地址,出现如图所示照片,则表明安装成功 http://localhost/ 三.重启apache2服务 sudo /etc/init.d/apache2 restart //'restart'->'stop'关闭服务; 'restart'->'start'启动服务 四.安装PHP sudo apt-get install php5 libapache2-mod-php5 `

linux服务器的攻防安全介绍_unix linux

随着Linux企业应用的扩展,有大量的网络服务器使用Linux操作系统.Linux服务器的安全性能受到越来越多的关注,这里根据Linux服务器受到攻击的深度以级别形式列出,并提出不同的解决方案.  对Linux服务器攻击的定义是:攻击是一种旨在妨碍.损害.削弱.破坏Linux服务器安全的未授权行为.攻击的范围可以从服务拒绝直至完全危害和破坏Linux服务器.对Linux服务器攻击有许多种类,本文从攻击深度的角度说明,我们把攻击分为四级.  攻击级别一:服务拒绝攻击(DoS)  由于DoS攻击工具

Linux服务器的一些基本应用_unix linux

谢:多谢xchen兄[cdcxx@etang.com]为弟兄们传道,授业,解惑!  ****************************************************************************************************************************  Linux服务器的一些基本应用 作者:Xchen[cdcxx@etang.com] 2002.8  ********************************

在centos5下安装配置VNC的具体操作步骤_unix linux

今天在公司安装了一下vnc,晚上没事,就记录一下吧,要不下次安装就又得google了^_^ VNC简介不能免俗,简单说介绍下VNC吧.VNC,全称为Virtual Network Computing,是一个桌面共享系统.它的功能,类似于windows中的远程桌面功能.VNC使用了RFB(Remote FrameBuffer,远程帧缓冲)协议来实现远程控制另外一台计算机.它把键盘.鼠标动作发送到远程计算机,并把远程计算机的屏幕发回到本地. VNC技术与平台无关,VNC Viewer可以和VNC S

在linux虚拟机上安装docker和在linux服务器上安装docker区别,在linux虚拟机上安装docker 如果这个虚拟机没有外网 是不是很难设置网络

问题描述 在linux虚拟机上安装docker和在linux服务器上安装docker区别,在linux虚拟机上安装docker如果这个虚拟机没有外网是不是很难设置网络该问题来自CSDNDocker技术交流群(303806405),由版主xinshubiao整理. 解决方案 解决方案二:看需求了,但差别不大该解答来自CSDNDocker技术交流群(303806405),由版主xinshubiao整理,由于手工编辑,提问者和回答者的QQ号和昵称没有一一注明,只简单用ABCD代替提问或回复,A代表提问

linux服务器内存占用过大解决办法

今天到公司按照惯例检查了下所有服务器的状态,发现有台服务器的内存占用比平常大很多,如下图 马上qq上问了下程序开发是否最近这1-2天改了什么东西,在得知没有改什么的情况下,马上重启了下php-fpm和nginx,重启之后看了下,内存释放出了1G,但这还不行,因为这台服务器是8G内存,平时最多使用4G多的样子,想今天使用到了7G多都快把服务器内存占用完了,很明显是不正常的,继续进行检查.   在检查过程中,我使用了top来看到底是哪个进程占用内存最大,看了近1分钟没有发现什么,然后使用命令查看占用

谈谈如何手动释放Python的内存_python

在上篇博客中,提到了对一个脚本进行的多次优化.当时以为已经优化得差不多了,但是当测试人员测试时,我才发现,踩到了Python的一个大坑. 在上文的优化中,对每500个用户,会进行一些计算并记录结果在磁盘文件中.原本以为这么做,这些结果就在磁盘文件中了,而不会再继续占用内存:但实际上,Python的大坑就是Python不会自动清理这些内存.这是由其本身实现决定的.具体原因网上多有文章介绍,这里就不copy了. 本篇博客将贴一个笔者的实验脚本,用以说明Python确实存在这么一个不释放内存的现象,另

LINUX 常见问题1000个详细解答_unix linux

一. 如何建立多用户 提醒大家一句,别一直使用root用户,因为root用户在系统中有着至高无上的权力,一不小心 就可能破坏系统.比如我们想删除/temp目录下的文件却将命令不小心输成"rm / temp(在'/'后多了一个空格)",那么就极可能删去根目录下的所有文件.再者,"Linux是一个真正意义上的多 任务.多用户系统",不体会一下Linux的特色岂不可惜.为了方便自己和别人使用,就在Linux系统 下多建几个用户吧. 输入"adduser newu

Linux中文件查找方法大全_unix linux

每一种操作系统都是由成千上万个不同种类的文件所组成的.其中有系统本身自带的文件,用户自己的文件,还有共享文件等等.我们有时候经常忘记某份文件放在硬盘中的哪个地方.在微软的Windows操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击"开始"-"搜索"中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档. 可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情.毕竟在Linux中需要我们使