如何修复Mac的“ kernel_task” CPU使用率过高的Bug?
当计算机开始缓慢运行时,这从来都不是一件有趣的事情,但是当您弄不清它为何如此缓慢时,甚至会变得更糟。如果您已经关闭了所有程序,并且Mac上的所有内容仍然感觉像是在糖蜜中移动,这可能是令人讨厌的kernel_task导致高CPU使用率的迹象。在Mac上,kernel_task是赋予各种低级功能的名称,这些功能可使您的计算机的其余部分正常工作。这意味着弄清罪魁祸首可能是艰难的。我们已经看到了很多,所以我们有一些技巧可以帮助您摆脱这个问题。
诊断慢速Mac
如果您的Mac似乎运行缓慢,正在产生大量热量,或者由于风扇速度过高而听起来好像即将起飞,那么您将需要打开Activity Monitor并找出原因。从本质上讲,这相当于macOS与Windows Task Manager的等效关系。活动监视器是用于管理资源和流程的有用工具。
您可以使用Spotlight打开“活动监视器”:只需按Cmd + Space,然后开始键入“活动”,它应该会弹出。您还可以在“ 应用程序”>“实用程序”下找到它,并且您可能希望将其固定在Dock上,以便在遇到重大问题时可以更快地进行访问。

您的计算机运行缓慢的原因应该在“ CPU”选项卡上显而易见。只需单击%CPU列标题即可按处理器使用情况来组织正在运行的进程。任何使用大量处理能力的东西都会出现在顶部。当您的计算机在后台执行各种任务时,这些命令会四处移动。
为什么kernel_task是罪魁祸首?
您可以通过单击大多数进程,然后单击屏幕左上角的X来杀死它们。不幸的是,您不能对一个特定进程执行此操作:kernel_task。原因是kernel_task实际上是macOS的一部分。

它不是一个单一的过程,而是一个标签下的一系列过程。在工作时,macOS在后台执行各种任务。其中包括通过网络发送和接收数据,将数据写入和读取到磁盘,以及为Spotlight搜索索引新文件夹或磁盘。
此过程通常会在“ 内存”选项卡上使用大量可用的RAM ,但这不用担心。正在使用的RAM数量将根据需要增加和减少。但是,高CPU使用率会使整个系统停滞不前,甚至导致偶尔的整个系统崩溃。
那么,如何阻止kernel_task对Mac的性能产生负面影响?
kernel_task问题的简单解决方案
在许多情况下,只需重启Mac即可立即解决问题。但是,如果您已经遇到此问题一段时间了,这不是永久的长期解决方案。相反,这是一个短期修复,应可立即产生结果。
导致CPU使用率激增的任何因素都可能返回。因此,如果您遇到过重复的事件,您可能还想尝试重置系统管理控制器(SMC)。这很容易做到,并且可以解决各种macOS问题。
重置SMC的说明根据您所使用的Mac型号而略有不同。因为它可以解决很多问题,所以我们有完整的指南,详细介绍了如何重置Mac的SMC。它还涉及重置PRAM(Mac的另一部分,可能导致多个问题)。
针对kernel_task的其他解决方案高CPU使用率
对于所有与OS相关的问题,最明显的解决方法可能是更新到最新版本的macOS。只需启动系统偏好设置,单击软件更新,然后运行所有未完成的Apple软件更新。
kernel_task进程导致CPU使用率较高的另一个常见原因是Adobe Flash。Flash对于浏览Web必不可少的时代已经过去了,但是对于特定的Web应用程序或网站,您仍然可能需要Flash。
您可以使用Google Flash之类的浏览器来提供Flash(尽管可以选择),而不是保持Flash的安装。最有可能的是,您根本不需要Flash,因此可以安全删除。

如果要完全删除Flash,请运行Adobe Flash Player安装管理器,然后单击“ 卸载”。
深入研究kernel_task CPU的高使用率
有些已经成功地删除了内核扩展,这些扩展是能够执行低级任务的代码模块。这些扩展中的绝大多数也称为“ kexts”,它们是Apple作为核心macOS环境的一部分安装的。某些软件将安装第三方扩展程序作为驱动程序,或用于控制硬件。
检查第三方kext是否引起您的kernel_task问题的一种快速方法是将计算机重新启动到安全模式。为此,请重新启动计算机并在启动时按住Shift键。安全模式仅加载所需的内核扩展,因此,如果在此环境中未发生问题,则表明第三方kext存在问题。
要深入了解这一点,请像往常一样重新启动系统并启动Terminal。然后,运行kextstat命令以查看当前正在加载哪些内核扩展。所有Apple扩展程序都将看起来像。同时,第三方驱动程序中将包含开发人员名称,例如,仅举几例。com.apple.[etc]com.paragon-software.filesystemsch.tripmode.TripModeNKE

删除这些文件的最佳方法是卸载关联的软件。对于某些应用程序,这仅意味着将应用程序文件移至“废纸rash”,然后输入管理员密码以允许更改。
其他可能包括您需要运行的PKG卸载程序文件。对于其他内容,请转到“ 系统偏好设置”,然后查找任何第三方偏好设置窗格。例如,Paragon的NTFS驱动程序会在其设置旁边隐藏“ 卸载”选项。

从OS X El Capitan开始,Apple引入了一项新的安全功能,该功能破坏了许多第三方的修改。系统完整性保护(简称SIP)阻止应用程序向Apple自己的应用程序中注入代码,以及阻止写入Apple认为对系统安全重要的驱动器的某些部分。
这样可以提高系统稳定性,因此,在现代版本的macOS中,您应该更少地看到此问题。
仍然有很高的CPU使用率?当所有其他方法都失败时该怎么办
这里的最终解决方案有点冒险:删除Apple自己的内核扩展。不建议这样做。但是,如果您尝试了其他所有方法,但仍然看到kernel_task导致CPU使用率升高,那么您可以尝试使用此解决方案。
开发人员和博客作者Viktor Petersson撰写了大量有关kernel_task及其相关问题的文章。在他的情况下,这很可能是由不可靠的声卡引起的。Petersson的最初文章主要针对Mac OS X Yosemite,尽管后来他又对El Capitan和Sierra进行了更新。
我们尚未测试此修复程序,因此无法确定它是否对您有用。如果您有兴趣尝试一下,请按以下步骤进行:
- 使用Time Machine或其他备份解决方案为Mac创建备份。
- 通过启动到恢复模式并运行
csrutil disable命令来关闭系统完整性保护。 - 遵循Viktor的方法。首先使用命令查找Mac的型号。
system_profiler -detailLevel mini | grep "Model Identifier:" - 运行以下命令:
-
cd /System/Library/Extensions/IOPlatformPluginFamily.kext/Contents/PlugIns/ACPI_SMC_PlatformPlugin.kext/Contents/Resources
-
- 移动并备份与模型相关的文件。例如,如果您的标识符是
MacBookPro8,2您将运行:-
sudo mv MacBookPro8_2.plist MacBookPro8_2.bak
-
- 重新引导进入恢复模式,并使用该命令再次启用系统完整性保护。
csrutil enable
同样,这是最后解决方法。仅在由于kernel_task导致Mac无法使用而无法完成任何工作时才尝试尝试。这不是短期解决方案,即使重新安装操作系统后,它仍然存在。
即使这样,在每次主要软件更新或操作系统升级后,您也需要重复此过程,因为Apple会还原您移动的文件。
kernel_task Bug是一个新问题吗?
通常,升级到新版本的macOS会带来新的特性和功能,但也会带来bug。在开始挑战极限的较旧型号的硬件上尤其如此。如果您离不再支持Mac的世代相距甚远,则可能意味着您的型号对于Apple而言并不是那么重要。
您最近是否升级了macOS版本?如果只有那样,您才开始在Mac上看到kernel_task的问题,那可能是罪魁祸首。如果您不依赖最新更新中引入的新功能,则可以安全地降级。
相关文章:
如何修复Mac的“ kernel_task” CPU使用率过高的Bug?
当计算机开始缓慢运行时,这从来都不是一件有趣的事情,但是当您弄不清它为何如此缓慢时,甚至会变得更糟。如果您已经关闭了所有程序,并且Mac上的所有内容仍然感觉像是在糖蜜中移动,这可能是令人讨厌的kernel_task导致高…...
【NodeJS】006- API模块与会话控制介绍d
1.简介 1.1 接口是什么 接口是 前后端通信的桥梁 简单理解:一个接口就是 服务中的一个路由规则 ,根据请求响应结果 接口的英文单词是 API (Application Program Interface),所以有时也称之为 API 接口 这里的接口指的是『数据接口』&#…...
[UI5 常用控件] 08.Wizard,NavContainer
文章目录 前言1. Wizard1.1 基本结构1.2 属性1.2.1 Wizard:complete1.2.2 Wizard:finishButtonText1.2.3 Wizard:currentStep1.2.4 Wizard:backgroundDesign1.2.5 Wizard:enableBranching1.2.6 WizardStep:…...
EasyExcel分页上传数据
EasyExcel分页上传数据 一、实例 controller上传入口 PostMapping("/upload")ResponseBodyLog(title "导入工单", businessType BusinessType.IMPORT)public AjaxResult uploadFile(HttpServletRequest request, MultipartFile files) throws Exceptio…...
Spring Native 解放 JVM
一、Spring Native 是什么 Spring Native可以通过GraalVM将Spring应用程序编译成原生镜像,提供了一种新的方式来部署Spring应用。与Java虚拟机相比,原生镜像可以在许多场景下降低工作负载,包括微服务,函数式服务,非常…...
汇编的两道题
1.编写一个在显示器上显示一个笑脸字符的程序 看这段程序的结构,可以看出,每个代码段,带有segment的必须用ASSUME 来进行段分配。 PROG1 SEGMENT;PROG1段的开始ASSUME CS:PROG1;PROG1(自己命名的,叫啥都可以ÿ…...
Seurat - 聚类教程 (1)
设置 Seurat 对象 在本教程[1]中,我们将分析 10X Genomics 免费提供的外周血单核细胞 (PBMC) 数据集。在 Illumina NextSeq 500 上对 2,700 个单细胞进行了测序。可以在此处[2]找到原始数据。 我们首先读取数据。 Read10X() 函数从 10X 读取 cellranger 管道的输出&…...
Mac 版 Excel 和 Windows 版 Excel的区别
Excel是一款由微软公司开发的电子表格程序,广泛应用于数据处理、分析和可视化等领域。它提供了丰富的功能和工具,包括公式、函数、图表和数据透视表等,帮助用户高效地处理和管理大量数据。同时,Excel还支持与其他Office应用程序的…...
【报错解决】-bash: export: `-8‘: not a valid identifier 不是有效的标识符
现象 一登陆就提示-bash: export: -8’: not a valid identifier 不是有效的标识符 问题出现的原因 设置字符集时多写了空格 [rootdb1 ~]# cat >>/etc/profile<<EOF export LANGen_US.UTF -8(-8前不应有空格) EOF 解决方法 cd /etc vi profile 把export带有-8的…...
Docker-Learn(三)创建镜像Docker(换源)
根据之前的内容基础,本小点的内容主要涉及到的内容是比较重要的文本Dockerfile 1. 编辑Dockerfile 启动命令行终端(在自己的工作空间当中),创建和编辑Dockerfile。 vim Dockerfile然后写入以下内容 # 使用一个基础镜像 FROM ubuntu:late…...
「递归算法」:二叉树剪枝
一、题目 给你二叉树的根结点 root ,此外树的每个结点的值要么是 0 ,要么是 1 。 返回移除了所有不包含 1 的子树的原二叉树。 节点 node 的子树为 node 本身加上所有 node 的后代。 示例 1: 输入:root [1,null,0,0,1] 输出&…...
Kafka下载(kafka和jdk、zookeeper、SpringBoot的版本对应关系)
文章目录 一、准备工作1、必须环境2、kafka使用自带的zookeeper还是自己单独部署zookeeper?二、下载一、准备工作 1、必须环境 kafka本身的开发语言是Scala,而Scala是基于jdk开发的,所以要先安装jdk kafka版本jdk版本kafka使用jdk版本官网说明1.0建议使用1.8https://kafka.…...
自然语言NLP
什么是NLP NLP(Natural Language Processing)是自然语言处理的缩写,是计算机科学和人工智能领域的一个研究方向。NLP致力于使计算机能够理解、处理和生成人类自然语言的能力。通过NLP技术,计算机可以通过识别和理解语言中的文本…...
容器库(5)-std::list
std::forward_list是可以从任何位置快速插入和移除元素的容器,不支持快速随机访问,支持正向和反向的迭代。 本文章的代码库: https://gitee.com/gamestorm577/CppStd 成员函数 构造、析构和赋值 构造函数 可以用元素、元素列表、迭代器…...
配置VMware实现从服务器到虚拟机的一键启动脚本
正文共:1666 字 15 图,预估阅读时间:2 分钟 首先祝大家新年快乐!略备薄礼,18000个红包封面来讨个开年好彩头! 虽然之前将服务器放到了公网(成本增加了100块,内网服务器上公网解决方案…...
第5讲小程序微信用户登录实现
小程序微信用户登录实现 小程序登录和jwt,httpclient工具类详细介绍可以看下小锋老师的 小程序电商系统课程:https://www.bilibili.com/video/BV1kP4y1F7tU application.yml加上小程序登录需要的参数,小伙伴们可以登录小程序后台管理&#…...
Kong 负载均衡
负载均衡是一种将API请求流量分发到多个上游服务的方法。负载均衡可以提高整个系统的响应速度,通过防止单个资源过载而减少故障。 在以下示例中,您将使用部署在两台不同服务器或上游目标上的应用程序。Kong网关需要在这两台服务器之间进行负载均衡&…...
基于Chrome插件的Chatgpt对话无损导出markdown格式(Typora完美显示)
Google插件名称为:ChatGPT to MarkDown plus, 下载地址为ChatGPT to MarkDown plus使用方法:见GitHub主页或插件介绍页面https://github.com/thisisbaiy/ChatGPT-To-Markdown-google-plugin/tree/main 我将源代码上传至了GitHub,欢迎star, Is…...
react函数组件中使用context
效果 1.在父组件中创建一个createcontext并将他导出 import React, { createContext } from react import Bpp from ./Bpp import Cpp from ./Cpp export let MyContext createContext(我是组件B) export let Ccontext createContext(我是组件C)export default function App…...
【MATLAB源码-第137期】基于matlab的NOMA系统和OFDMA系统对比仿真。
操作环境: MATLAB 2022a 1、算法描述 NOMA(非正交多址)和OFDMA(正交频分多址)是两种流行的无线通信技术,广泛应用于现代移动通信系统中,如4G、5G和未来的6G网络。它们的设计目标是提高频谱效…...
未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
Linux链表操作全解析
Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表?1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
学习STC51单片机31(芯片为STC89C52RCRC)OLED显示屏1
每日一言 生活的美好,总是藏在那些你咬牙坚持的日子里。 硬件:OLED 以后要用到OLED的时候找到这个文件 OLED的设备地址 SSD1306"SSD" 是品牌缩写,"1306" 是产品编号。 驱动 OLED 屏幕的 IIC 总线数据传输格式 示意图 …...
C++ 基础特性深度解析
目录 引言 一、命名空间(namespace) C 中的命名空间 与 C 语言的对比 二、缺省参数 C 中的缺省参数 与 C 语言的对比 三、引用(reference) C 中的引用 与 C 语言的对比 四、inline(内联函数…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
