1》内存子系统

     1>组件:

        slab    allocator

        buddy    system

        kswapd

        pdflush

     2>虚拟化环境:

         PA:进程地址;

         HA:虚拟机地址;

         MA:机器地址;

         虚拟机转换:PA---->HA

         GuestOS(来宾主机),OS(宿主主机);

         Shadow   PT:影子列表

     3>Memory:

         TLB:提升性能;

          Hugetable  page:

              使用的文件系统:Hugetlbfs;

                             

        启用hugepages:

              1)修改/etc/sysctl.conf:

                  vm.nr_hugepages = n

                    

               2) Kernel  parameter:

                  hugepages = n

2》创建hugepages从而被应用所使用(不必明确指定文件系统类型,应用要使用时会自动调用,一般MYSQL的缓存块需要使用大页面):

          

          

3》Strace看进程如何运行,执行了哪些系统调用:

     1>strace  -p     PID ***查看启动进程的系统调用;

           

     2>strace   命令:查看命令的系统调用;

           

       strace  -c   命令:加入-c可以只输出命令过程中的摘要信息;

                    

       -o:将追踪结果保存至文件中,以供后续分析使用;

4》优化内存子系统的使用:

      1>尽可能降低微小内存对象的开销;

          Slab   cache: 

                              

      2>降低或延迟慢速子系统的服务时间;

          Filesystem   metadata:buffer  cache(slab  cache)====>使用buffer  cache缓存文件元数据;

          Disk  IO:page  cache====>使用page  cache来缓存DISK  IO,加速读操作;

          Interprocess  communications:shared  memory====>使用共享内存来完成进程间通信;

          Network  IO:buffer  cache,arp  cache,connection  ruacking====>使用buffer  cache,arp  cache和connection  tracking提升网络IO性能;

      3>设置内存的最小空余KB;

      4>注意避免内存过量使用:

            物理内存的过量使用是以swap为前提的,可以超出物理内存一部分;

              

              0:不回收dentries和inodes;

              1-99:倾向于不回收;

              100:倾向性与page  cache和swap  cache相同;

              100+:倾向于回收;

                     

          内存溢出(OOM):当内核发现由于发生内存溢出而无法再使用时会强制杀死占用大量内存的进程;

      5>调整网络IO的ARP缓存(/proc/net/arp);

5》进程间通信相关内存的调优:

      1>进程间通信类型:messages,semaphores,shared  memory;

            

      2>查看三者当前的限值:

            

      3>进程间通信管理类命令:

          ipcs:查看一些消息队列;

          ipcrm:删除某些已经失去作用的消息队列,释放内存;

      4>share  memory  和messages的相关参数:

          shm:

            shmmni:系统级别,所允许使用的共享内存段上限;

            shmall:系统级别,能够为共享内存分配使用的最大页面数;

            shmmax:单个共享内存段的上限;

          messages:

            msgmnb:单个消息队列的上限,单位为字节,默认是16384;

            msgmni:系统级别,消息队列个数上限;

            msgmax:单个消息大小的上限,单位为字节;

      5>手动清写脏缓存和缓存,然后回收:

            sync:

            echo  s  >  /proc/sysrq-trigger

         回收:

            echo  1 >  /proc/sys/vm/drop_caches

              

            1  to   free   pagecache

            2  to   free   dentries   and   inodes

            3  to   free   pagecache,dentries  and  inodes

      6>Out-of-memory  killer:

          决定各个进程是否会被杀死的数值oom_score:

                -16-15:帮助计算oom_score

                -17:disables  the oom_killer  for  that  process

6》Swap相关:

      1>哪些页面会被swap:

             非活动页;

             匿名页;

        Swap  cache:可以有效的避免资源竞争;  

      2>如何提高swap的性能:

          降低swap的think time,意味着我们使用小的swap分区;

          降低访问次数,尽量不要使用swap,增大物理内存,不行的话就增加多个swap分区;

          降低服务时间;                

7》监控内存使用相关命令:

        sar   -r:查看内存活动情况;

        sar  -R:内存变换速率;

        sar  -W:缓存空间活动情况;

        sar  -B:I/O使用情况,报告页面换进换出;  

                    

                  

              

     

    

        

        

                  

                  

Linux内存子系统及常用调优参数的更多相关文章

  1. JVM的常用的调优策略和垃圾回收算法及Tomcat的常用调优参数

    jvm调优主要针对堆内存,堆内存分为:新生区.养老区和永久区 永久区存放的是系统jdk自身的interface和class的元数据,所以唯有新生区和养老区具有优化空间. 新生区:伊甸区和幸存者区.所有 ...

  2. JVM常用调优工具介绍

    前言 王子在之前的JVM文章中已经大体上把一些原理性问题说清楚了,今天主要是介绍一些实际进行JVM调优工作的工具和命令,不会深入讲解,因为网上资料很多,篇幅可能不长,但都是实用的内容,小伙伴们有不清楚 ...

  3. Dubbo性能调优参数及原理

    本文是针对 Dubbo 协议调用的调优指导,详细说明常用调优参数的作用域及源码. Dubbo调用模型 常用性能调优参数 参数名 作用范围 默认值 说明 备注 threads provider 200 ...

  4. Linux TCP/IP调优参数 /proc/sys/net/目录

    所有的TCP/IP调优参数都位于/proc/sys/net/目录. 例如, 下面是最重要的一些调优参数,后面是它们的含义: /proc/sys/net/core/rmem_default " ...

  5. JVM性能调优的6大步骤,及关键调优参数详解

    JVM性能调优方法和步骤1.监控GC的状态2.生成堆的dump文件3.分析dump文件4.分析结果,判断是否需要优化5.调整GC类型和内存分配6.不断分析和调整JVM调优参数参考 对JVM内存的系统级 ...

  6. 直通BAT必考题系列:JVM性能调优的6大步骤,及关键调优参数详解

    JVM内存调优 对JVM内存的系统级的调优主要的目的是减少GC的频率和Full GC的次数. 1.Full GC 会对整个堆进行整理,包括Young.Tenured和Perm.Full GC因为需要对 ...

  7. 大数据集群Linux CentOS 7.6 系统调优篇

    大数据集群Linux CentOS 7.6 系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.设置主机hosts文件 1>.修改主机名 [root@node100 ...

  8. JVM调优参数、方法、工具以及案例总结

    这种文章挺难写的,一是JVM参数巨多,二是内容枯燥乏味,但是想理解JVM调优又是没法避开的环节,本文主要用来总结梳理便于以后翻阅,主要围绕四个大的方面展开,分别是JVM调优参数.JVM调优方法(流程) ...

  9. linux分析、诊断及调优的必备“杀器”之一

    下面分别列出linux分析.诊断及调优时用到的工具,并分别进行说明,以方便自己和其他同学参考学习,禁止转载. 1.top top - 02:06:59 up 4 days, 17:14, 2 user ...

随机推荐

  1. RNA-seq 安装 fastaqc,tophat,cuffilnks,hisat2

    ------------------------------------------ 安装fastqc------------------------------------------------- ...

  2. cdoj第13th校赛初赛H - Hug the princess

    http://acm.uestc.edu.cn/#/contest/show/54 H - Hug the princess Time Limit: 3000/1000MS (Java/Others) ...

  3. PTA 习题集5-18 打印选课学生名单(哈希)

    假设全校有最多40000名学生和最多2500门课程.现给出每个学生的选课清单,要求输出每门课的选课学生名单. 输入格式: 输入的第一行是两个正整数:N(≤40000),为全校学生总数:K(≤2500) ...

  4. day5:vcp考试

    Q81. An administrator needs to recover disk space on a previously-used thin provisioned virtual disk ...

  5. 10-能不能组成m

    /*                                找数达人 时间限制:1000 ms  |  内存限制:65535 KB      难度:2 描述 小明最近做出了一道题:如何在一组数 ...

  6. VC2008 类型重定义的问题

    Q: 比如"a.h"里定义了类a,类a所有函数的实现都放在"a.cpp"里.然后"b.h"和"c.h"都需要用到类a,所 ...

  7. Codeforces 612B. Wet Shark and Bishops 模拟

    B. Wet Shark and Bishops time limit per test: 2 seconds memory limit per test: 256 megabytes input: ...

  8. 我的UI启蒙之路

    为什么叫UI启蒙之路呢? 我没有学过美术,也不懂设计,但是有的时候也许就是一种命中注定吧,让我知道了UI,并且一发不可收拾的爱上了它. 具体情况是这样的: 我毕业于电力学校,是一名不折不扣的工科生,专 ...

  9. Vue.js 生命周期的应用

    生命周期示意图 值得注意的几个钩子函数 activated 类型:Function 详细: keep-alive 组件激活时调用. 该钩子在服务器端渲染期间不被调用. 参考: 构建组件 - keep- ...

  10. 8个设计师必看的免费UI图标设计资源站

    图标是我们日常APP及网页设计过程中必不可少的元素之一,通过小小的图标,可以快速方便的实现视觉引导和功能划分.在创作时,我们需要寻找各种各样的图标来满足自己的设计需求,非常浪费时间和精力.今天,小编给 ...