zoukankan      html  css  js  c++  java
  • procps工具集 ----Linux中的可用内存指的是什么?

    https://gitlab.com/procps-ng/procps

    free - Report the amount of free and used memory in the system
    kill - Send a signal to a process based on PID
    pgrep - List processes based on name or other attributes
    pkill - Send a signal to a process based on name or other attributes
    pmap - Report memory map of a process
    ps - Report information of processes
    pwdx - Report current directory of a process
    skill - Obsolete version of pgrep/pkill
    slabtop - Display kernel slab cache information in real time
    snice - Renice a process
    sysctl - Read or Write kernel parameters at run-time
    tload - Graphical representation of system load average
    top - Dynamic real-time view of running processes
    uptime - Display how long the system has been running
    vmstat - Report virtual memory statistics
    w - Report logged in users and what they are doing
    watch - Execute a program periodically, showing output fullscreen

    1、从meminfo文件中查看可用内存:

    从Linux kernel-3.14和2.6.27+ 开始,在/proc/meminfo中提供了可用内存MemAvailable值。

    kernel 中的available 介绍:

    http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=34e431b0ae398fc54ea69ff85ec700722c9da773

    检查/proc/meminfo文件,通过将“MemFree + Buffers+ Cached”相加,预估有多少可用内存,这在十年前是可以,但是在今天肯定是不对的。

    因为缓存包含存不能释放的page cache,例如shared memory segments、tmpfs、ramfs,它不包括可收回的slab内存,比如在大多数空闲的系统中,存在很多文件时,它会占用大量的系统内存。

    在系统没有发生交换时,预估需要多少available内存才可以启动新的应用程序。这个available字段不同于cache或free字段所提供的数据,它除了要考虑到page cache,还要考虑到当项目在使用时,并不是所有的slabs都能被回收这一情况。

    从proc/meminfo文件中查看可用内存:

    [root@server-mysql]# /usr/local/bin/free
                  total        used        free      shared  buff/cache   available
    Mem:        1364828      175720      956704        1168      232404     1064754
    Swap:       3071992           0     3071992
    [root@server-mysql procps-master]# free -h
                  total        used        free      shared  buff/cache   available
    Mem:           1.3G        171M        934M        1.1M        227M        1.0G
    Swap:          2.9G          0B        2.9G

    2、使用free命令查看可用内存:

    我们一般都使用“free”命令来获得系统的内存使用情况,但是一些老版本的的“procps”包没有包含查看“Available”的参数,可以通过升级“procps”程序来查看“Available”内存值。

    procps升级方式(需要大于等于autoconf-2.69支持)

    # git clone https://gitlab.com/procps-ng/procps.git

    # cd procps

    # ./autogen.sh

    # ./configure && make&& make install

    查看不同free版本显示可用内存的区别:

    /usr/bin/free是系统自带的命令。

    /usr/local/bin/free是下载最新的procps包编译安装的命令。

  • 相关阅读:
    【笔记篇】(理论向)快速傅里叶变换(FFT)学习笔记w
    【学术篇】bzoj2440 [中山市选2011]完全平方数
    【笔记篇】斜率优化dp(五) USACO08MAR土地购(征)买(用)Land Acquisition
    【笔记篇】斜率优化dp(四) ZJOI2007仓库建设
    【笔记篇】斜率优化dp(三) APIO2010特别行动队
    【笔记篇】斜率优化dp(二) SDOI2016征途
    【笔记篇】斜率优化dp(一) HNOI2008玩具装箱
    【笔记篇】单调队列优化dp学习笔记&&luogu2569_bzoj1855股票交♂易
    usr/include/php5/ext/pcre/php_pcre.h:29:18: fatal error: pcre.h 错误解决
    ubuntu 使用apt-get install 安装php5.6--php7
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5654346.html
Copyright © 2011-2022 走看看