服务器里的CPU占用很高是什么原因

服务器里的CPU占用很高是什么原因,第1张

服务器CPU,顾名思义,就是在服务器上使用的CPU(Center Process Unit中央处理器)。那么服务器里的CPU占用很高是什么原因?下面一起来看解答。

1、 杀毒软件的运行。各类的杀毒软件通常加入了对网页、插件、邮件的随机监控,无疑增大了系统负担。建议尽量使用最少的监控服务。

2、 自己的软件程序运行。检查程序最大线程数是否足够,程序代码不够优化,如死循环,死锁。

3、 病毒、木马、间谍软件导致。往往是由于大量的病毒在系统内部迅速复制,造成CPU占用资源率据高不下。同时检查部分系统进程是否占用大量CPU,例如svchost。exe、Services。exe、explorer。exe等进程,最好检查清楚进程的运行路径是否有异常,正是因为这些进程的特殊性和重要性,使它更容易成为了一些病毒木马的宿主。建议用可靠的杀毒软件彻底查杀;

4、 一些不完善的驱动程序也可以造成CPU使用率过高,定期升级更新驱动。

5、 网络连接导致CPU使用率高,服务器对外提供访问服务时,系统将分配内存和少量CPU资源来为这些连接提供服务,当负荷过重,就会出现上述情况。同时也有可能受到网络攻击,消耗大量的系统资源导致CPU使用率高。

以上的就是关于服务器里的CPU占用很高是什么原因的内容介绍了。

宝塔Linux面板作为一款Linux服务器的入门级面板,一向以简洁,实用,方便的功能深得大众SEO站长的芳心。它不但可以 通过WEB管理页面对服务器进行管理,并且还可以一键部署LNMP与LAMP建站环境,同时对服务器进行实时监控,防火墙,部署SSL证书,服务器文件在线管理等操作 ,而且宝塔Linux面板目前现有的各种免费的功能几乎能满足大多数SEO站长的需求,还有更多实用的功能可以通过付费使用。

但是前段时间阿南发现宝塔Linux面板偶尔出现CPU负载状态过高,导致站点加载速度时间过长,,给大家的浏览体验带来了一定的影响。后来阿南在网上查阅相关资料发现解决问题的方法五花八门,各种各样的说法都有,让你无从下手。最后还是通过某位服务器运维的大牛指点,才把这个问题解决,并且得到了反馈很好。接下来阿南就把这个方法分享出来,希望能够帮助到各位站长。

阿南的云服务器安装的是宝塔Linux面板, 建站环境所使用的是LNMP,Nginx 1.15、MySQL 5.5、PHP-7.2 ,基本情况了解了下面直接看操作。首页,进入php7.2的管理页面,选择安装一个opcache缓冲器,用于加速PHP脚本,如下图:

接着在配置修改选择 将最大脚本运行时间修改为60,最后将并发方案设为30并发 ( 注意 :宝塔面板通常会自动根据你的服务器配置给你设置合适的并发,如果你觉得不够用可以自己设置),接着在性能调整中将最大空闲进程数设置为20。如下图:

按照以上这个方法优化,阿南的云服务器发现并没有出现CPU负载状态过高了,也就是说这个方法是非常有效的。但是,对于服务器这块阿南并不是专业的,所以不能够保证这个方法对于大家都是有效的,如果此方法效果不明显建议大家可以通过升级服务器配置解决此问题。

当我们使用top命令查看系统的资源使用情况时会看到 load average,如下图所示。它表示系统在1、5、15分钟的平均工作负载。那么什么是负载(load)呢?它和CPU的利用率又有什么关系呢?

load average:系统平均负载是CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息。这个数字越小越好。

CPU利用率:显示的是程序在运行期间实时占用的CPU百分比

CPU负载:显示的是一段时间内正在使用和等待使用CPU的平均任务数。CPU利用率高,并不意味着负载就一定大。举例来说:如果我有一个程序它需要一直使用CPU的运算功能,那么此时CPU的使用率可能达到100%,但是CPU的工作负载则是趋近于“1”,因为CPU仅负责一个工作嘛!如果同时执行这样的程序两个呢?CPU的使用率还是100%,但是工作负载则变成2了。所以也就是说,当CPU的工作负载越大,代表CPU必须要在不同的工作之间进行频繁的工作切换。

举例说明

网上有篇文章举了一个有趣比喻,拿打电话来说明两者的区别,我按自己的理解阐述一下。

某公用电话亭,有一个人在打电话,四个人在等待,每人限定使用电话一分钟,若有人一分钟之内没有打完电话,只能挂掉电话去排队,等待下一轮。电话在这里就相当于CPU,而正在或等待打电话的人就相当于任务数。

在电话亭使用过程中,肯定会有人打完电话走掉,有人没有打完电话而选择重新排队,更会有新增的人在这儿排队,这个人数的变化就相当于任务数的增减。为了统计平均负载情况,我们5分钟统计一次人数,并在第1、5、15分钟的时候对统计情况取平均值,从而形成第1、5、15分钟的平均负载。

有的人拿起电话就打,一直打完1分钟,而有的人可能前三十秒在找电话号码,或者在犹豫要不要打,后三十秒才真正在打电话。如果把电话看作CPU,人数看作任务,我们就说前一个人(任务)的CPU利用率高,后一个人(任务)的CPU利用率低。

当然, CPU并不会在前三十秒工作,后三十秒歇着,只是说,有的程序涉及到大量的计算,所以CPU利用率就高,而有的程序牵涉到计算的部分很少,CPU利用率自然就低。但无论CPU的利用率是高是低,跟后面有多少任务在排队没有必然关系。

这个有争议,各有各的说法,个人比较赞同CPU负载小于等于0.5算是一种理想状态。

不管某个CPU的性能有多好,1秒钟能处理多少任务,我们可以认为它无关紧要,虽然事实并非如此。在评估CPU负载时,我们只以5分钟为单位为统计任务队列长度。如果每隔5分钟统计的时候,发现任务队列长度都是1,那么CPU负载就为1。假如我们只有一个单核的CPU,负载一直为1,意味着没有任务在排队,还不错。

但是我那台服务器,是双核CPU,等于是有4个内核,每个内核的负载为1的话,总负载为4。这就是说,如果我那台服务器的CPU负载长期保持在4左右,还可以接受。

但是每个内核的负载为1,并不能算是一种理想状态!这意味着我们的CPU一直很忙,不得清闲。网上有说理想的状态是每个内核的负载为0.7左右,我比较赞同,0.7乘以内核数,得出服务器理想的CPU负载,比如我这台服务器,负载在3.0以下就可以。

最简单办法的是更换性能更好的服务器,不要想着仅仅提高CPU的性能,那没有用,CPU要发挥出它最好的性能还需要其它软硬件的配合。

在服务器其它方面配置合理的情况下,CPU数量和CPU核心数(即内核数)都会影响到CPU负载,因为任务最终是要分配到CPU核心去处理的。两块CPU要比一块CPU好,双核要比单核好。

因此,我们需要记住,除去CPU性能上的差异,CPU负载是基于内核数来计算的!有一个说法,“有多少内核,即有多少负载”。

4. CPU使用率到多少才算比较理想?

CPU利用率在过去常常被我们这些外行认为是判断机器是否已经到了满负荷的一个标准,我看到长时间CPU使用率60-80%就认为机器有瓶颈出现。

-----------------------------------

https://blog.51cto.com/wks97/2073217


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/279965.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存