打印机

如何解决Linux中CPU使用率高的问题

发布时间:2023/4/9 17:50:02   
治白癜风的方法 http://pf.39.net/bdfyy/dbfzl/180614/6329464.html

电脑死机了?还是开始听到电脑发出很响的CPU风扇噪音?Linux中CPU使用率过高的原因很多,但最常见的原因是运行异常的应用程序。本文介绍了如何在Linux中解决CPU使用率过高的问题。

找出罪魁祸首

运行异常的应用程序连速度最快的处理器都“俯首称臣”。可以使用SystemMonitor应用程序或终端中的top,找出有问题的那个应用程序。

打开终端,键入top,然后按回车键。

图1

默认情况下,所有进程都按照CPU使用率来排序,最耗CPU的进程位于顶部。如果某个应用程序始终位于前五名,CPU使用率明显高于其余应用程序,那它就是罪魁祸首。

终止或杀死应用程序

top包括支持renice和kill的功能,那样您可以使用这些工具来改变任何进程的优先级或强制停止它。

应用程序的nice优先级是指与其他运行中的进程相比,允许它使用的CPU资源数量。nice接受的值在+19到-20之间。数值越高,优先级越低。

在top中,按r并输入有问题的那个应用程序的PID。试着改成“+5”值,如果不管用,重试“+10”、“+15”,最后是最低优先级“+19”。

图2

如果该应用程序没有响应,应立即终止它。在top中按k,输入PID,然后按回车键,该应用程序将消失。

更新一切

如果您每次运行应用程序时问题依然存在,更新该应用程序可能会解决问题。

为此,在终端中输入:

sudoaptupdatesudoapt-yupgrade

图3

之后,试着再运行有问题的那个应用程序。

删除并重新安装应用程序

如果问题没有解决,有可能是由于程序配置中的错误参数。将其重置为原始状态可能会有所帮助。

先备份配置,以防这可能不是问题的根源,到时候便于恢复。然后,清除有问题的那个应用程序:

sudoaptpurgeAPP_NAME

图4

重新安装应用程序:

sudoaptupdatesudoaptinstallAPP_NAME

图5

这会将应用程序重置为原始状态。

回到以前的版本

如果升级应用程序解决不了问题,可以改而回到以前的版本。可以试着降级并使用旧版本,至少直到开发人员修复了应用程序中的错误。

要降级应用程序,先通过运行终端并执行以下命令来查看可用版本:

sudoaptpolicyAPP_NAME目前安装的版本旁边会有三个星号。注意其他可用版本。

降级之前,建议您清除现有版本。这将清除任何与配置有关的问题。

安装旧版本,方法如下:

sudoaptinstallAPP_NAME=VERSION

图6

使用替代应用程序

Linux的优点是,有许多应用程序可执行同样的操作。因此,如果一个应用程序导致CPU使用率过高,您可以换成替代应用程序。

修复导致CPU使用率过高的核心应用程序

如果大量耗用CPU资源的是核心应用程序(比如systemd或Xorg),会发生什么?

若是systemd,试着禁用电脑上非必需的功能和辅助设备,比如游戏手柄和打印机。

如果设备是游戏手柄、鼠标或键盘,您又在运行Ubuntu或兼容的发行版,请在终端中键入xinput,查看所有已连接的设备。想禁用其中一个设备,请使用:

xinput--disableDEVICE_ID

图7

想重新启用设备,请在上述命令中将disable换成enable。

至于其他设备,解决办法稍微复杂一点。首先,您得在终端中输入lsmod并按回车键,查看Linux内核作为模块加载的所有其他驱动程序。找到有问题的设备对应的驱动程序,并记下名称。然后,输入以下内容:

sudonano/etc/modprobe.d/blacklist.conf您刚打开的文档是启动过程中不应加载的模块的黑名单。它可能已经填充了一些条目。移至文件末尾,遵循同样的语法,将模块添加到该列表中。您的条目应是这样:

blacklistMODULE_NAME保存文件,重新启动,但愿现在一切正常。

若是Xorg,试着禁用WindowManager的合成器。虽然合成器将与CPU有关的任务卸载到GPU,但并非总是如此。有时,通过启用合成支持,您还可以实现许多效果。

有时,GPU的驱动程序也会导致CPU使用率过高。Xorg与英伟达或AMD驱动程序的特定版本并不是很兼容。解决办法是升级或降级到不同的版本。另外,可以试用GPU驱动程序的开源版本。不过,那些版本没有同样的功能集,可能缺少一些功能。

换掉内核

Linux内核很少是CPU使用率过高的原因。不过,如果您到了这一步却仍未找到解决办法,不妨试一试。



转载请注明:http://www.aideyishus.com/lkjg/4261.html

------分隔线----------------------------