You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Mac OS系统中查看OOM killer进程终止日志

问题说明

未启用swap交换分区时,运行持续申请并写入大块内存的程序,进程会被操作系统因内存不足强制终止。以下是在Mac电脑上查看这类内存不足杀进程事件日志的具体方案,可复现现象的测试代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>

#define MEM_SIZE 1024 * 1024 * 1024

int main() {
    char* addr[4];
    int i = 0;
    for(i = 0; i < 4; ++i) {
        addr[i] = (char*) malloc(MEM_SIZE);
        if(!addr[i]) {
            return -1;
        }
    }

    for(i = 0; i < 4; ++i) {
        memset(addr[i], 0, MEM_SIZE);
    }

    getchar();
    return 0;
}
查看OOM终止日志的具体方法
  • 控制台图形化查看
    打开启动台「其他」文件夹内的「控制台」应用,左侧边栏选中当前使用的Mac设备,在右上角搜索框输入jetsam或memorystatus筛选日志,即可看到系统因内存压力终止进程的全量记录,记录包含被终止进程的名称、PID、终止时间、触发时系统内存压力等级等核心信息。
  • 终端命令行查询
    打开终端执行以下命令,可直接拉取指定时间范围内的OOM事件日志:
    log show --predicate 'eventMessage contains "jetsam" OR eventMessage contains "memorystatus"' --last 1h
    
    命令末尾的--last 1h表示拉取最近1小时的日志,可按需调整时间范围,比如替换为--last 1d即可查询最近1天的相关记录。
  • 查看进程诊断报告
    在控制台应用左侧边栏找到「诊断报告」分类,查找文件名以被终止进程名开头、后缀为.ips的报告文件,这类报告记录了进程被终止时的单进程内存占用、系统整体内存分配状态等更详细的排查信息。
注意事项

Mac系统的内存不足进程终止逻辑由jetsam(也称memorystatus)模块负责,和Linux系统的OOM Killer机制类似:当系统物理内存耗尽且无swap空间可供调度时,会按预设优先级杀死高内存占用进程,所有这类终止操作都会被系统强制记录日志,不存在事件无记录的情况。

内容的提问来源于stack exchange,提问作者walker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 13:36:15