ss -atu| awk ‘/^tcp/{++S[$2]} END {for(a in S) print a,S[a]}‘

ps up pid (RSS:实际内存大小,长驻内存)

ps o pid,comm,minflt,majflt pid (依次是次页中断,主页中断) 页中断:分配内存的过程叫页中断 主页中断来自swap,(主页中断太多会影响性能) 次页中断来自内存 页错误:重新建立物理内存与虚拟内存的对应关系

vm.swappiness rhel-7(30%) 100 倾向与swap 0倾向于buff/cache (内存)

内存回收参数:

vm.dirty_expire_centisecs = 3000 (脏页的老化时间,默认30秒,多久刷盘一次)

vm.dirty_writeback_centisecs = 500 pdflush 多久工作一次(监控)

vm.dirty_background_ratio = 10 如果脏页到达剩余的10%,kernel 在调节,而不是pdflush

vm.dirty_ratio = 30 低位内存 30秒一次(到达20%) 小数据文件,随即数较多,可以适当把这个值设置大一些,性能更好一些。(刷盘慢)

vm.dirty_bytes = 0 ; vm.dirty_background_bytes = 0 到达字节

oom killer

vm.panic_on_oom = 0 0:开 1:关

/proc/pid/oom_adj 范围:-17到15 (-17越小越不容易被kill掉)

具体请参考kernel-doc

目录:www.qixoo.qixoo.com/usr/share/doc/kernel-doc-*/Documentation/vm 内存

网络

sysctl -a | grep rmem

net.core.rmem_default = 212992

net.core.rmem_max = 212992

net.ipv4.tcp_rmem = 4096 87380 6291456

net.ipv4.udp_rmem_min = 4096

sysctl -a | grep tcp_mem

net.ipv4.tcp_mem = 42216 56291 84432

overcommit_memory = 0 默认 (3种模式)

0:内核将检查是否有足够的可用内存供应用进程使用;如果有足够的可用内存,内存申请允许;否则,内存申请失败,并把错误返回给应用进程

1:总是允许过量使用,适合一些科学应用程序,classic example 是代码使用稀疏阵列

组成几乎依赖于虚拟内存。

2:不允许过量使用,

当系统分配的内存超过swap+50%(默认)物理RAM(N%由vm.overcommit_ratio决定)时,会拒绝commit。

overcommit的策略通过vm.overcommit_memory设置。

overcommit的百分比由vm.overcommit_ratio设置。

vm.overcommit_ratio = 50

vm.min_free_kbytes

linux内存回收 内核参数的更多相关文章

  1. [转帖]linux 内存管理——内核的shmall 和shmmax 参数

    (转)linux 内存管理——内核的shmall 和shmmax 参数   内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个 ...

  2. Linux之TCPIP内核参数

    /proc/sys/net目录 参考1.Linux之TCPIP内核参数优化 所有的TCP/IP参数都位于/proc/sys/net目录下(请注意,对/proc/sys/net目录下内容的修改都是临时的 ...

  3. 在Linux上进行内核参数调整

    在Solaris上,使用工具mdb就可以直接修改内核内存里的内容.而在Linux上,则通常使用命令sysctl(8)做类似的事情. 本文以Fedora为例,介绍如何在Linux上进行内核参数调整. 常 ...

  4. 理解 Linux backlog/somaxconn 内核参数

    https://jaminzhang.github.io/linux/understand-Linux-backlog-and-somaxconn-kernel-arguments/ 各参数的含义:h ...

  5. TCP三次握手与Linux的TCP内核参数优化

    感谢各位技术大佬的资料分享,这里我把我理解的内容做一个整理 一:TCP的三次握手 1.TCP简述 TCP是一个面向连接的协议,在连接双方发送数据之前,首先需要建立一条连接.TCP建立连接可以简单称为: ...

  6. linux 内存管理——内核的shmall 和shmmax 参数

    内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存seg ...

  7. (转)linux 内存管理——内核的shmall 和shmmax 参数

    内核的 shmall 和 shmmax 参数 SHMMAX= 配置了最大的内存segment的大小 ------>这个设置的比SGA_MAX_SIZE大比较好. SHMMIN= 最小的内存seg ...

  8. Linux内存管理-内核的shmall和shmmax参数(性能调优)(转)

    内核的shmall和shmmax参数 SHMMAX=配置了最大的内存segment的大小:这个设置的比SGA_MAX_SIZE大比较好. SHMMIN=最小的内存segment的大小 SHMMNI=整 ...

  9. Linux 下 Oracle 内核参数优化

    数据库的性能优化涉及到整个数据库运行环境的方方面面,诸如操作系统,Oracle自身,存储,网络等等几个大块.而操作系统则是Oracle稳定运行与最大化性能的基石.本文主要描述基于Linux系统下 Or ...

随机推荐

  1. 梳理git分支管理策略

    如果你严肃对待编程,就必定会使用"版本管理系统"(Version Control System). 眼下最流行的"版本管理系统",非Git莫属. 相比同类软件, ...

  2. import javax.servlet.FilterConfig;

    具体的使用方法你可以在google上搜索 “filter 过滤器”,FilterConfig可以获取部署描述符文件(web.xml)中分配的过滤器初始化参数.针对你的问题回答,结果就是说FilterC ...

  3. C# 小型资源管理器

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  4. android 合并两个jar包

    你所要导出的类里边用到了别的jar包.比如说你写的类连接了数据库,用到数据库驱动包oracl.jar(也就是你导入到Myeclipse或eclipse的jdbc包).. .在dos环境下,进入到D盘的 ...

  5. ant命令总结

    ant命令总结 博客分类: 版本管理 svn , maven , ant   ant命令总结 1 Ant是什么?  Apache Ant 是一个基于 Java的生成工具. 生成工具在软件开发中用来将源 ...

  6. [CareerCup] 13.1 Print Last K Lines 打印最后K行

    13.1 Write a method to print the last K lines of an input file using C++. 这道题让我们用C++来打印一个输入文本的最后K行,最 ...

  7. 信息安全系统设计基础exp_1

    详见搭档20135322郑伟博客链接:http://www.cnblogs.com/zhengwei0712/

  8. Jenkins进阶系列之——16一个完整的JENKINS下的ANT BUILD.XML文件

    网上看见的,确实很全,该有的基本都覆盖到了.自己拿来稍微改改就可以用了. 注:property中的value是你自己的一些本地变量.需要改成自己的 <?xml version="1.0 ...

  9. java中的自增问题

    运行下面这段代码,其结果是什么呢? package com.test; public class Inc { public static void main(String[] args) { Inc ...

  10. linux上svn版本库创建小记

    [新建svn仓库] 先创建一个文件夹mkdir /opt/svn/wechat;   然后创建svn版本库    svnadmin create /opt/svn/wechat;   [创建用户组权限 ...