专栏名称: 腾讯技术工程
腾讯技术工程事业群官方微信公众号。腾讯前沿科技技术、产品、行业信息交流发布平台。
今天看啥  ›  专栏  ›  腾讯技术工程

Linux内存变低会发生什么问题

腾讯技术工程  · 公众号  ·  · 2024-09-09 18:01

文章预览

作者:cynrikluo 内存不是无限的,总有不够用的时候,linux内核用三个机制来处理这种情况:内存回收、内存规整、oom-kill。 当发现内存不足时,内核会先尝试内存回收,从一些进程手里拿回一些页;如果这样还是不能满足申请需求,则触发内存规整;再不行,则触发oom主动kill掉一个不太重要的进程,释放内存。 低内存情况下,内核的处理逻辑 内存申请的核心函数是 __alloc_pages_nodemask : /*  * This is the 'heart' of the zoned buddy allocator.  */ struct   page  * __ alloc_pages_nodemask ( gfp_t   gfp_mask ,  unsigned   int   order ,  int   preferred_nid ,                nodemask_t  * nodemask ) {    struct   page  * page ;    unsigned   int  alloc_flags = ALLOC_WMARK_LOW;    gfp_t  alloc_mask;  /* The gfp_t that was actually used for allocation */    struct   alloc_context   ac  = {  };  __alloc_pages ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览