系统管理员分析CPU占用率高实例

本人,系统管理员一名,对程序开发完全不懂,多数据库了解非常有限。受人所托,查看朋友的游戏服务器,WINDOW2003+MYSQL+apache架构,首先查看系统进程,比较粗略的查看是MYSQL进程占用CPU将近100%,对比业务高峰时间,开启MYSQL慢查询日志,发现部分语句在高峰时间被慢查询记录次数较多,手工复制该语句在MYSQL中运行,发现CPU瞬间增高,和开发人员沟通,了解该语句的功能,并进行了修改,优化后单独运行该语句Cpu无明显增高,部署运行后发现问题依旧。在高峰期依旧CPU占用很高。继续跟踪满查询日志,又找到了几条语句。依旧做了优化,单独运行优化后的语句效果比较明显。但整个程序部署并不明显,最后期开发人员想到。(这部分我并不是太理解)程序是将之前的很多语句打包成了一个功能模块。默写运行会出发这个功能模块而去运行之前所有 的语句,导致单独优化了几条语句后在整体运行效果中并没有得到很大改善,后期由开发重新去分解程序包了。

参与5

2同行回答

yangjianxvyangjianxv部门总经理成方金融科技有限公司
1)CPU数量是多少?如果只有2颗CPU,占100%也不奇怪,因为很多sql一查询就会有这个效果。做一个sql查询,数据库不会刻意约束CPU的占有量。另外,这个sql是交易类的短sql?如果是,那就的确需要优化一下。2)你的意思是说,单独优化没有用,因为那个默认模块里面的sql没有被优化?然后把模块拆分...显示全部

1)CPU数量是多少?如果只有2颗CPU,占100%也不奇怪,因为很多sql一查询就会有这个效果。做一个sql查询,数据库不会刻意约束CPU的占有量。

另外,这个sql是交易类的短sql?如果是,那就的确需要优化一下。

2)你的意思是说,单独优化没有用,因为那个默认模块里面的sql没有被优化?然后把模块拆分了

如果是这样,可能是模块里面的sql,都定死了执行计划,所以改不了。后面不用这个模块了,单独优化后就其作用了。

收起
银行 · 2016-12-29
浏览1323
lsxlsx联盟成员信息技术经理大唐控股
首先,和用户数据相关的sql或是程序,在不同数量级的环境中有时是无法再现问题的,其次mysql作为一个数据库是有很多配置项的,再次由于存在各种锁,测试环境也不一定重现相同环境。所以建议从生产环境复制一个准生产做测试和优化,也有可能发现是否由于参数不当导致的问题。...显示全部

首先,和用户数据相关的sql或是程序,在不同数量级的环境中有时是无法再现问题的,其次mysql作为一个数据库是有很多配置项的,再次由于存在各种锁,测试环境也不一定重现相同环境。所以建议从生产环境复制一个准生产做测试和优化,也有可能发现是否由于参数不当导致的问题。

收起
保险 · 2016-12-26
浏览1246

提问者

pysx0503
系统工程师第十区。散人
擅长领域: 存储服务器备份

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2016-12-26
  • 关注会员:3 人
  • 问题浏览:4137
  • 最近回答:2016-12-29
  • X社区推广