CSoap
CSoap
采纳率0%
2017-08-31 05:12 浏览 2.8k

有关于Linux服务器httpd进程造成CPU跑满问题

5

首先说明一下我的Linux服务器配置:JDK1.8+Tomcat8
使用了SSL证书来使用HTTPS协议,同时在同一个项目里也有一个微信小程序的部分接口,这些接口处于没有被调用的情况
部署的项目是典型的JavaWeb项目+SSH框架+MySQL数据库

事情的经过是这样的。
  首先我准备更新我部署在阿里云上面的项目,发现无论是我使用命令终端还是阿里云自带的远程终端都提示密码错误,检查服务器状态,发现服务器CPU在15天以前(可能更久)就一直处在100%的跑满状态。由于无法进入终端,标准的服务器排查程序无法进行,使用了重启服务器的操作,重启之后发现阿里云自带的远程终端可以上了,但是显示内核错误信息,如下图。
图片说明

到了这里服务器已经崩了,联系了阿里的工程师共同处理,挂载livecd进入服务器查看,服务器内的lib lib64目录缺失了,导致系统异常,从测试服务器中拷贝lib 和lib64目录到服务器内,启动正常。
到了这里,基本上看似圆满解决了,我想查找问题原因,进入日志查看也没有发现任何问题,倒是一直在报一个异常java.lang.IllegalArgumentException: Invalid character found in method name. HTTP method names must be tokens,查阅资料后,我在server.xml配置中加入了这个属性maxHttpHeaderSize="8192",然后将更新后的项目部署上去,开启tomcat,然后关闭tomcat的时候,CPU监控突然飙升100%,即使已经确认tomcat已经关闭,使用top命令查看进程,发现了罪魁祸首:httpd进程。占了CPU100%,在强制性杀死httpd进程之后CPU才恢复正常。而且项目访问正常。
网上查了一下,这个进程是apache的,但是我是用的tomcat并没有使用apache。难道是因为同一个爸爸生的原因?
所以,我的问题是:1.造成这个问题的原因是什么?2.是否是我的操作出现了错误?3.如何避免这个问题。
万谢!

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答 默认 最新

  • lcmsx 乱臣贼子 2017-08-31 05:42

    个人猜测:
    1、应该是你的服务器上已经存在病毒。潜伏在你的Tomcat中的,当被激活时,疯狂进行http请求,且读取和删除你本地的系统文件。导致显示内核错误。
    2、这种情况应该不太可能是你的操作错误导致删除了lib 、lib64文件夹和CPU飙升到100%。
    3、查杀系统病毒、卸载Apache、重装tomcat(原来的安装目录清理干净)、重新部署网站、监控网络流量等待操作。

    终极大招:重装系统、开启防火墙,补丁打上,做好安全措施,再次部署服务器。

    以上是个人猜测,不知是否正确。 楼主如果发现有用,望采纳。

    点赞 评论 复制链接分享
  • me_blue 心似白云 2017-08-31 09:12

    哈哈,一楼好脑洞。
    我的建议是查看下你的tomcat配置文件,是不是不小心把那个字符修改掉了,导致服务初始化异常。

    点赞 评论 复制链接分享
  • boting 丁甲乙 2017-09-01 03:23

    我也好烦,我明明没有使用apache 的httped。
    服务器上运行一两天后,就有一个httped的线程占满了CPU。
    查找了htted.cnf,在根目录下找到了此文件,由于对linux不是很懂,然后又不敢直接删除了httped.cnf
    楼主能给点思路吗,我找了半天没有发现有用到此htted.cnf的地方

    点赞 评论 复制链接分享
  • boting 丁甲乙 2018-06-14 02:53

    后来发现,linux定时器有个任务在不断的请求外部URL,我将它相关的东西删除就可以了

    点赞 评论 复制链接分享
  • CSoap CSoap 2018-08-31 02:59

    怎么删除的?能告诉一下吗?

    点赞 评论 复制链接分享

相关推荐