如何解决服务器CPU使用率过高的问题

如何解决服务器CPU使用率过高的问题,第1张

可按以下四个方法解决CPU占用率过高的问题:
在运行大型程序之前,查看电脑配置是否满足运行该程序的最低配置,如果确实是电脑配置不行的话,那么就建议将电脑硬件进行升级了;
下载杀毒软件或者木马专杀对电脑进行保护,可以使用占用资源小的一些安全工具,例如巨盾,巨盾采用脚本引擎可以极大的释放系统资源,不会使得电脑CPU使用率过高;
在使用浏览器时尽量选择一些用户群体比较多的浏览器,一些非主流的浏览器就不必使用了,因为小众的浏览器在兼容性, *** 作性等方面还是有些缺陷的,系统优化也不完善,所以建议使用主流的浏览器,避免出现CPU使用率高怎么办的问题;
定期更新电脑各种驱动,可以使用驱动精灵等工具自动更新电脑上的驱动,保持电脑驱动处于最新状态,减少CPU出现100%的概率。

造成服务器带宽跑满的原因有很多,大致可以归结为以下几类:

病毒

Windows 系统服务器中病毒或站点挂马,导致服务器内部有对外发包的文件。

建议在服务器上安装杀毒软件,进行杀毒。可以通过任务管理器中查看是否异常进程。当前阿里云暂时没有提供杀毒软件,您可以登陆服务器根据自己的日常使用的杀毒软件进行安装即可。

网络攻击

服务器或站点遭受 DDOS 攻击或 CC 攻击等,短期内产生大量的访问需求。

可以登陆阿里云管理控制台,查看云盾中的防护 DDOS 攻击是否调整好阈值,并核实是否开启CC防护。

目前CC防护有自己默认的阈值,由于安全问题此阈值暂时不对外公开。如果攻击没有触发到阈值,云盾没有清洗,可以提交工单到售后请手工协助开起清洗,后期该调整阈值的功能会对外放。

存在耗资源进程

服务器内部有耗资源进程。

Windows Server 2003 系统无法直接查看到,但可以借助第三方软件查看;

Windows Server 2008 系统可以启动 任务管理器>性能>资源监控器>网络>查看 发送(字节/秒) 占用较多的进程。如果不是常用进程,说明可能是病毒或异常文件;如果是常用进程,说明该进程当前有异常,需要针对该进程对应的服务进行一下分析。

根据以往经验,曾发现过因搜狗拼音的更新,以及疑似上传本地词库导致的出网带宽跑高。

爬虫

正常网站所消耗的带宽较多,此类情况建议通过访问的日志来分析,如果日志中过多的 baiduspider 或 googlebot 。说明网页被爬虫抓取,大量来自搜索引擎的链接也容易跑高带宽,例如:

windows-cmd 下找到 iis的日志,可以使用命令 type log | find “baidu “ 等。

Linux 的 Apache 和 nginx 可以检查 cat accesslog | grep baidu 等。

同时检查站点是否存有 MP3,flv,swf 等大文件被频繁访问下载,如果此类文件较多,建议减少这些文件,可搭配使用 OSS、CDN 服务。

网站规模大

网站规模较大(比如门户网站、商城等),即网站本身访问量需求大,查看网站的 Page View 值、Hits 值、日流量都很高,建议升级带宽 。

造成流量大的原因主要有:

网站页面设计不合理;

页面中包含大或音频、视频文件等文件,导致网站页面太大;

网站提供mp3,rar,zipexe等文件的下载,或网站提供视频、音频文件的播放;

如果网站规模较大,网站的点击率很高,建议减少音频、视频文件。如果还不能满足要求,可以升级带宽。

Sql Server系统内存管理在没有配置内存最大值,很多时候我们会发现运行Sql Server的系统内存往往居高不下。这是由于他对于内存使用的策略是有多少闲置的内存就占用多少,直到内存使用虑达到系统峰值时(预留内存根据系统默认预留使用为准,至少4M),才会清除一些缓存释放少量的内存为新的缓存腾出空间。

这些内存一般都是Sql Server运行时候用作缓存的,例如你运行一个select语句, 执行个存储过程,调用函数;

1 数据缓存:执行个查询语句,Sql Server会将相关的数据页(Sql Server *** 作的数据都是以页为单位的)加载到内存中来, 下一次如果再次请求此页的数据的时候,就无需读取磁盘了,大大提高了速度。

2执行命令缓存:在执行存储过程,自定函数时,Sql Server需要先二进制编译再运行,编译后的结果也会缓存起来, 再次调用时就无需再次编译。

在我们执行完相应的查询语句,或存储过程,如果我们不在需要这些缓存,我可以将它清除,DBCC管理命令缓存清除如下:

--清除存储过程缓存   
DBCC FREEPROCCACHE   
--注:方便记住关键字FREEPROCCACHE 可以拆解成FREE(割舍,清除) PROC(存储过程关键字简写),CACHE(缓存)
--清除会话缓存
DBCC FREESESSIONCACHE    
--注:FREE(割舍,清除) SESSION(会话)CACHE(缓存) 
--清除系统缓存  
DBCC FREESYSTEMCACHE('All')  
--注:FREE  SYSTE MCACHE 
--清除所有缓存  
DBCC DROPCLEANBUFFERS   
--注:DROP CLEAN BUFFERS

不管是什么系统的服务器,客户连接到服务器的最明显的看出来就是TCP的显示。
一般分为两种情况:
1CC攻击的表现情况
CC攻击会造成访问量增大,带宽图上的代表TCP访问量(红色)会忽然不正常的增高。CPU的占用量增大,然后造成打开慢或者卡死的情况。
所以看到如果是TCP,突然增大的话,证明你的服务器在遭受CC攻击,可以联系服务器商,让机房做下防御策略。
2如果TCP的连接量一直在一个区域一直很大的话,那检查服务器的资源,可能无法支撑访问量,需要更大的资源,更高的配置支持。

研究生工作过程中遇到有学生无视linux服务器实际的CPU核心数,开出几十上百个运算密集型进程,其他用户登陆困难或无响应等异常情况,需要对占用大头(CPU老虎?)的CPU资源做出限制。
使用cgroup可以实现用户组级别的限制,把老虎们扔进限制组就能解决问题,如果需要分别限制用户那就每个老虎一个组(前提是老虎属于少数,如果多数人都是老虎那就得考虑加CPU甚至加服务器了,组里穷,提买服务器基本属于说废话)。
注意linux中创建用户时默认会创建同名的组,所以按用户限制时不需要额外建组,直接限制用户的名字即可。

1安装cgroup
服务器环境为centos7,使用yum安装cgroup:

2配置cgroup
设置cgroup服务开机启动:

编辑/etc/cgconfigconf:

编辑/etc/cgrulesconf:

第一列为用户(组)名,第二列为限制类型,第三列为限制器名,即前述/etc/cgconfigconf中的限制器

注:同一个限制器下建议只放置一个用户,如果放置多个用户(或者含多个用户的组)会导致组内争抢限制器的资源,组内一个人高占用会使得其他人卡住,违背了使用限制器的初衷“限制少数高占用用户,使得低占用用户体验流畅”。

重启服务:

完成

面对这种CPU老虎,服务器终于重新丝滑流畅了起来

很简单啊!Globalasa 文件可包含可被 ASP 应用程序中每个页面访问的对象、变量以及方法的声明。任何一个ASP程序在执行时,都会调用globalasa。FSO控件可以对服务器进行读取、新建、修改、删除目录以及文件的 *** 作。是ASP编程中常用的一个控件。也就是因为这个对文件可 *** 作性的控件,导致被大量黑客利用,实现挂码 *** 作等。
请您逐步按照我们的指导来 *** 作:
1、进入服务器网站的目录下,删除Globalasa,手动重新建立一个Globalasa文件,不写入任何字符代码,保持其0字节:
2、打开建立的Globalasa文件的属性,使其只读+隐藏:
3、进入Globalasa文件的安全选项卡,取消除了Administrators以外的所有账号的访问
4、保存退出。这样黑客将无法再次写入globalasa文件,可以避免再次被人写入含有不规范代码的Globalasa文件
分析:
此方案属于“疫苗型”的方案,如果网站是ASPX程序,可以同样的方法建立globalasax。

一、开通流程第1步:检查修复耗资源程序

网站程序消耗了大量系统资源,站点将被暂停。请务必对出现异常的程序进行修改,修改完成且上传到服务器上。

第2步:网站开通

请登录到主机控制面板,在网站状态管理-站点状态查看-解除限制按钮进行开通。每月可开启3次。如果站点自动关闭过于频繁,连续三个月每月开启达3次,说明您的主机经常处于超负载状态,此功能将不能再开启。

二、解决建议

您也可以升级至更高配置主机产品,登录阿里云网站->管理控制台->云虚拟主机,选择要升级的主机后,点“管理"进入管理页面点击“主机升级”,升级成功后系统将为您自动迁移数据。

三、什么是耗资源

即程序占用CPU及内存过多。在使用主机时程序编写的不合理、错误严重,造成服务器负载急剧上升,严重影响了站点的正常使用。详见《耗资源相关问题汇总》

小结提示:

耗资源(客户程序故障)停权通知

尊敬的客户:由于贵网站严重影响了服务器性能,因此对您的网站采取了处理措施。我们很高兴能够为您服务,但同时请您严格遵守我们签定的主机合同,以保证我们合作的正常进行,保证我们能为更多的用户提供稳定的主机服务。由于我们是对主机服务器进行实时监控的,出现问题后必须马上采取措施,否则将会导致服务器宕机,所以发出此通知信的同时,已将您的网站暂停,希望您能理解,因此给您带来的不便向您表示深深的歉意。

1、何谓耗资源(客户程序故障)?即程序占用CPU及内存过多,是对资源的一种浪费。客户使用虚拟主机时程序编写的不合理、错误严重,造成服务器负载急剧上升,极大的影响了正常客户的使用,就是耗资源(客户程序故障)。耗资源(客户程序故障)分为耗用CPU资源和内存资源二种。

2、为什么会出现耗资源(客户程序故障)?(1)程序编写有问题。(一般为asp程序变量没有清空)(2)数据库调用频繁。(常见的是access数据库问题)(3)由于访问量或流量过大导致的耗内存问题引起的耗资源(客户程序故障)(此情况一般为大流量主机)。

3、耗资源(客户程序故障)的影响。

(1)影响较轻的,会使单个客户网站访问慢。

(2)严重的会使服务器宕机,服务器上的所有。

4、耗资源(客户程序故障)处理方法?

通过观察程度客户耗资源(客户程序故障)的程度,进行处理:

(1)程度较轻:重启程序池或站点;

(2)程度较重:关闭整个站点;

5、耗资源(客户程序故障)客户的解决办法?

发生占用资源过大问题被关停后,需要排查超额占用资源的具体链接和文件,下面介绍如何排查。

(1)从主机控制台下载关停当天的访问日志文件,具体下载路径:登录阿里云管理控制台-点击左侧云虚拟主机-点击主机右侧的管理-点击文件管理-网站日志下载-下载当天的日志,然后通过FTP打开该日志:

(2)查看日志: (3)

具体排查方法:

1a站点在关停后是没有的,因此需要查看关停之前的1-2分钟的访问日志。

2b看服务器响应请求的时间,就是访问日志的最后一列,这里的时间单位是微秒,例如上图的示例中,访问时间不到一秒(1秒=1000000微秒),一般访问时间不应超过3秒(3000000微秒),访问时间长同样会导致并发访问量过大,适当的优化程序可以减少服务器的具体响应时间。具体访问的文件也在网站日志中有展示。如上图,如果网站访问日志中的最后一列超过3000000,也就是3秒,则需要检查和优化访问的具体文件

(4)如果大量的访问来自同一IP,或是同一IP段,网站则可能是被攻击了。

(5)在浏览器种类这一列,如果有Baidu,Google,Sogou,360等字样,则表示是有搜索引擎在访问网站,如果影响网站可以配置robotstxt文件来禁止搜索引擎访问网站。

6、耗资源(客户程序故障)与大流量的区别。

(1)大流量客户:进行大量的下载、广告互换、聊天等工作,造成带宽严重占用。

(2)耗资源(客户程序故障)客户:运行自己网站程序,造成服务器负载急剧上升,造成服务器无法正常服务。

(3)区别在与大流量客户是网络带宽方面,而耗资源(客户程序故障)客户是对服务器正常运行方面。

提示:最好换好的一的服务器;VPS及ECS就不会再提示了!这是钱能解决的问题不是问题!修改程序只是暂时的处理方法;


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zz/12913144.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-28
下一篇2025-08-28

发表评论

登录后才能评论

评论列表(0条)

    保存