zoukankan      html  css  js  c++  java
  • linux内存清理步骤与脚本

    linux 内存优化

     

    linux 内存优化:

    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。

    手动释放linux内存cache和脚本定时释放:freemem.sh

    #!/bin/bash
    
    used=`free -m | awk 'NR==2' | awk '{print $3}'`
    free=`free -m | awk 'NR==2' | awk '{print $4}'`
    
    echo "===========================" >> /var/log/mem.log
    date >> /var/log/mem.log
    echo "Memory usage | [Use:${used}MB][Free:${free}MB]" >> /var/log/mem.log
    
    if [ $free -le 100 ] ; then
                    sync && echo 1 > /proc/sys/vm/drop_caches
                    sync && echo 2 > /proc/sys/vm/drop_caches
                    sync && echo 3 > /proc/sys/vm/drop_caches
                    echo "OK" >> /var/log/mem.log
    else
                    echo "Not required" >> /var/log/mem.log

    将脚本添加到crond任务,定时执行。

    脚本说明:sync命令是把脏数据写到磁盘,也就是把内存中的数据写入磁盘,避免丢失。

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

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

    echo "*/30 * * * * root /root/satools/freemem.sh" >> /etc/crondtab

  • 相关阅读:
    java多线程基础(一)
    重构总体思路
    【Gearman学习笔记】分布式处理入门
    virtualbox安装提示出现严重错误解决办法
    驱动程序vmci.sys版本不正确。请尝试重新安装 VMware
    Gearman任务分布系统部署windows平台_使用Cygwin
    Fatal error: Class 'GearmanClient' not found解决方法
    header('Content-type:text/html;charset = utf-8');出现中文乱码
    heredoc和nowdoc的区别
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
  • 原文地址:https://www.cnblogs.com/zcyy/p/15668527.html
Copyright © 2011-2022 走看看