OOM Killer

 

 

找出最可能被杀掉进程

复制代码
#!/bin/bash

printf "\e[5m%9s %9s %s\e[0m\n\n" "oom_score" "PID" "cmdline"
for proc in $(find /proc/ -maxdepth 1 -regex '/proc/[0-9]+');do
        printf "%9d %9d %s\n" \
        "$(cat $proc/oom_score)" \
        "$(basename $proc)" \
        "$(cat $proc/cmdline | tr '\0' ' ' | head --bytes 50)"
done 2>/dev/null | sort -nr | head -10
复制代码

  

simulation:

复制代码
#include <stdlib.h>
#include <stdio.h>
#define BYTES (16*1024*1024)
#define true 1

int main(void)
{
        printf("oom !\n");
        while(true){
                char *p=malloc(BYTES);
                if (p == NULL){
                        return -1;
                }
                printf("malloc memory pointer: %p, value: %18d, hex: %x\n",p,p,p);
        }
        return 0;
}
复制代码

 

  

复制代码
#include <stdio.h>
#include <stdlib.h>

#define BYTES (8*1024*1024)
#define N (10240)

int main(void)
{
        printf(" malloc oom\n");
        int i;
        for (i=0;i<N;++i)
        {
                char *p=malloc(BYTES);
                if (p==NULL)
                {
                        return -1;
                }
        }
        printf(" endless lopp\n");
        while(1);
        return 0;
}
复制代码

 

posted @   ascertain  阅读(59)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示