今天早上有用户反馈公司网站访问非常的慢,登录服务器的控制面板,提示CPU100%占用,负载100%.

问题描述


网站打开非常的慢,服务器面板提示CPU使用率100%。负载100%

解决问题


使用SSH登录系统,执行top命令。输入P(按照cpu的使用率来占比). 然后查看cpu的使用情况。动态的观察了2分钟,发现期间mysql的进程时不时会直接显示cpu 占用390%。感觉应该是mysql的问题。

公司的服务器是阿里云的ECS,4核心16GB.上面除了公司的官网之外,还有大约200个演示站点,和用户试用的站点。总计有超过300个站点在运行。每一个站点都使用mysql。所以不能定位到具体的是哪一个站点出现问题。

使用root账号登录mysql. 执行sql语句:show processlist;

系统提示执行时间较久的数据查询为 try_xxxx 这个数据库的相关查看。所有以try开头的数据库都是用户创建试用站点所使用的数据库,因此,初步断定是试用站点出现了问题。通过后台将该出问题的站点关停,问题解决。

实际上可以使用show processlist 继续来分析到底那一条sql出现问题,但由于时间关系,就没有继续往下处理了。

 

经验总结


  • 使用 show processlist 语句可以帮助我们分析系统中当前正在执行的sql语句的耗能情况。
  • 在做试用站点的时候,一定要考虑好权限的控制,否则会导致整个服务器器的效率降低

评论 (0)

  • 最新在前
  • 最佳在前