zoukankan      html  css  js  c++  java
  • 内存cgroup---CGroup中参数由来篇

    内存中cgroup:

    发现memory cgroup中mem.usage_in_bytes是通过下面这个数值得到的:

     val = page_counter_read(&memcg->memory);
    

      然后计数的增加在函数:mm/page_counter.c文件中的:page_counter_charge函数,

    mem_cgroup_try_charge-->

                                                                         -----> try_charge--->page_counter_charge(memcg->memory)

    mem_cgroup_try_charge_skmem -->

    soft_limit_excess(struct memcgroup)

     446 static unsigned long soft_limit_excess(struct mem_cgroup *memcg)
     447 {
     448     unsigned long nr_pages = page_counter_read(&memcg->memory);
     449     unsigned long soft_limit = READ_ONCE(memcg->soft_limit);
     450     unsigned long excess = 0;
     451 
     452     if (nr_pages > soft_limit)
     453         excess = nr_pages - soft_limit;
     454 
     455     return excess;
     456 }
     457 
    

    PATH1)   do_try_to_free_pages---->shrink_zones----->

                                                                                      mem_cgroup_soft_limit_reclaim ---> mem_cgroup_soft_reclaim-->mem_cgroup_shrink_node

    PATH2)   kswapd_init----->kswaped---->balance_bgdat---->

    其中PATH1)有这么几条路到达:try_to_free_pages    try_to_free_mem_cgroup_pages  shrink_all_memory

    try_to_free_mem_cgroup_pages(mm/memcontrol.c) 在try_charge/force_empty/memory_max_write......等等条件的时候就会触发

  • 相关阅读:
    mojo 接口示例
    MojoliciousLite: 实时的web框架 概述
    接口返回json
    centos 6.7 perl 版本 This is perl 5, version 22 安装DBI DBD
    centos 6.7 perl 5.22 安装DBD 需要使用老的perl版本
    商业智能改变汽车行业
    商业智能改变汽车行业
    读MBA经历回顾(上)目的决定手段——北漂18年(48)
    perl 升级到5.20版本
    Group Commit of Binary Log
  • 原文地址:https://www.cnblogs.com/honpey/p/7758268.html
Copyright © 2011-2022 走看看