macOS 使用 log show 过滤指定类别的系统性能日志

轻静酱_1206

轻静酱_1206

2026-07-31

274人浏览

原创

macOS性能日志分散在多个子系统中,需通过关键词(如timeout、throttled)和子系统(如com.apple.kernel)筛选,结合log show和log stream命令定位延迟、资源耗尽等性能问题。

macos 的系统性能日志并不以“performance”为独立类别存在,而是分散在多个子系统中,比如 com.apple.kernel(内核调度/内存)、com.apple.xpc.launchd(进程启动延迟)、com.apple.diskmanagement(磁盘 i/o)、com.apple.networking(网络延迟)等。要过滤出真正反映性能问题的日志,关键不是找一个叫“性能日志”的标签,而是锁定高延迟、超时、资源耗尽、调度失败等典型信号。

用 log show 筛选含性能线索的关键关键词

终端中执行以下命令,可快速抓取与性能下降强相关的原始消息:

  • 查延迟与超时:`log show --predicate 'eventMessage contains[c] "timeout" OR eventMessage contains[c] "delay" OR eventMessage contains[c] "slow"' --last 1h`
  • 查资源瓶颈:`log show --predicate 'eventMessage contains[c] "out of memory" OR eventMessage contains[c] "throttled" OR eventMessage contains[c] "exhausted"' --last boot`
  • 查磁盘/IO 性能异常:`log show --predicate 'subsystem == "com.apple.diskmanagement" AND (eventMessage contains[c] "hang" OR eventMessage contains[c] "stuck")' --last 24h`

按子系统聚焦核心性能模块

不同子系统承载不同维度的性能数据,直接限定比全盘扫描更高效:

  • 内核级调度与内存压力:`log show --predicate 'subsystem contains "com.apple.kernel" AND level >= error' --last boot`
  • launchd 启动慢或服务卡顿:`log show --predicate 'process == "launchd" AND eventMessage contains[c] "took"' --last 1h`(常含“took X seconds”字样)
  • 图形与窗口服务响应延迟:`log show --predicate 'subsystem == "com.apple.WindowServer" AND eventMessage contains[c] "lag" OR eventMessage contains[c] "frame drop"' --last 30m`

导出并分析一段时间内的性能事件流

把连续时间段的性能相关日志导出为结构化文本,便于人工比对或后续 grep 分析:

macOS UI 自动化技能包 —— 用 Python 控制你的 Mac
macOS UI 自动化技能包 —— 用 Python 控制你的 Mac

让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限

下载
  • 执行:log show --predicate '(eventMessage contains[c] "timeout" OR eventMessage contains[c] "throttled" OR subsystem == "com.apple.kernel")' --start "2026-07-07 09:00:00" --end "2026-07-07 17:00:00" --style syslog > ~/Desktop/perf_log_20260707.txt
  • 生成的文件按传统 syslog 格式排列,时间戳清晰,方便用文本编辑器搜索或用 grep -E "(timeout|throttled)" perf_log_20260707.txt 二次筛选

配合实时流观察瞬时性能抖动

若问题偶发且难以复现,可用 log stream 实时监听:

  • 运行:log stream --predicate 'subsystem == "com.apple.kernel" AND (eventMessage contains[c] "throttle" OR eventMessage contains[c] "low memory")'
  • 保持终端窗口开启,当系统突然变卡、风扇狂转或界面掉帧时,立即查看是否有新日志刷出——这类即时反馈比回溯历史日志更准

相关文章

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

相关标签:

macos

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
macOS怎么切换用户账户
macOS怎么切换用户账户

在 macOS 系统中,可通过多种方式切换用户账户。如点击苹果图标选择 “系统偏好设置”,打开 “用户与群组” 进行切换;或启用快速用户切换功能,通过菜单栏或控制中心的账户名称切换;还能使用快捷键 “Control+Command+Q” 锁定屏幕后切换。

2025.05.09

4984

14

系统架构有哪些种类
系统架构有哪些种类

系统架构种类有单库单应用架构、内容分发架构、读写分离架构、微服务架构、多级缓存架构、分库分表架构等。想了解更多系统架构的相关内容,可以阅读本专题下面的文章。

2023.11.14

2938

5

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

2026.10.28

0

16

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

2026.10.28

0

15

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

2026.10.28

0

10

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

120

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

60

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

60

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

40

10

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Miniconda官方安装文档
Miniconda官方安装文档

共0课时 | 0人学习