MySQL CPU占用过高怎么办

如题所述

cpu占用过高解决方法如下:

1、同时按住键盘上Ctrl+Alt+Delete,点击“启用任务管理器(T)”就可以看到CPU使用率是多少了。(这里只有27%,因为没有运行游戏,后台程序也没有打开很多。)

2、按组合键Win+R进入运行窗口输入“msconfig”点击“启动”,把不需要的程序禁用掉,程序不要打开太多,就可以减少CPU的使用率了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-08-26

CPU占用过高诊断思路

mpstat -P ALL 1,查看cpu使用情况,主要消耗在sys即os系统调用上

perf top,cpu主要消耗在_spin_lock

生成perf report查看详细情况

CPU主要消耗在mutex争用上,说明有锁热点。

采用pt-pmp跟踪mysqld执行情况,热点主要集中在mem_heap_alloc和mem_heap_free上。

Pstack提供更详细的API调用栈

Innodb在读取数据记录时的API路径为

row_search_for_mysql --》row_vers_build_for_consistent_read --》mem_heap_create_block_func --》mem_area_alloc --》malloc --》  _L_unlock_10151 --》__lll_unlock_wait_private


row_vers_build_for_consistent_read会陷入一个死循环,跳出条件是该条记录不需要快照读或者已经从undo中找出对应的快照版本,每次循环都会调用mem_heap_alloc/free。

而该表的记录更改很频繁,导致其undo history list比较长,搜索快照版本的代价更大,就会频繁的申请和释放堆内存。

Linux原生的内存库函数为ptmalloc,malloc/free调用过多时很容易产生锁热点。

当多条 SQL 并发执行时,会最终触发os层面的spinlock,导致上述情形。


解决方案

将mysqld的内存库函数替换成tcmalloc,相比ptmalloc,tcmalloc可以更好的支持高并发调用。

修改my.cnf,添加如下参数并重启

[mysqld_safe]malloc-lib=tcmalloc

上周五早上7点执行的操作,到现在超过72小时,期间该实例没有再出现cpu长期飙高的情形。

以下是修改前后cpu使用率对比

第2个回答  2015-07-23
动态链接库(DLL)它是Dynamic Link Library 的缩写形式,:
(1)你所指的数据库路径不对。。。。重新设置一下就可以了。

(2)你的有些程序是不是在重装系统前安装的?在某些程序安装的时候,它会写一些动态连接数据库文件在C盘,也就是系统盘,你重装了系统之后就被删除了,那些程序当然不能用,建议把不能用的程序重新安装一次

(3)修复方法步骤
-------------------------------------
一、系统可以启动登陆的修复方法:(转载请注明出自Coderui的博客,谢谢)
1:把系统程序“lsass.exe”文件和系统DLL组件程序“mfc40u.dll”文件同时改名,Windows系统是支持运行着的程序改名的。(如果您能终止掉系统程序“lsass.exe”和DLL组件“mfc40u.dll”的运行也可以)。
2:复制一个正常的系统程序“lsass.exe”文件保存为“C:\WINDOWS\system32\lsass.exe”文件。
3:复制一个正常的系统DLL组件程序“mfc40u.dll”文件保存为“C:\WINDOWS\system32\mfc40u.dll”文件。
4:按照上边的1-3步骤操作完毕后,重新启动一次计算机,一切修复完毕。
5:系统修复完毕后,要使用杀毒软件去查杀病毒。因为该病毒为木马下载器,它可能已经在您的计算机系统中安装了其它恶意程序(20款以上)。
-------------------------------------
二、系统无法启动登陆的修复方法:(转载请注明出自Coderui的博客,谢谢)
1:使用PE盘或DOS盘启动系统(这种情况下,安全模式是无法登陆的)。
2:复制一个正常的系统程序“lsass.exe”文件保存为“C:\WINDOWS\system32\lsass.exe”文件。
3:复制一个正常的系统DLL组件程序“mfc40u.dll”文件保存为“C:\WINDOWS\system32\mfc40u.dll”文件。
4:按照上边的1-3步骤操作完毕后,重新启动一次计算机,一切修复完毕。
5:系统修复完毕后,要使用杀毒软件去查杀病毒。因为该病毒为木马下载器,它可能已经在您的计算机系统中安装了其它恶意程序(20款以上)。
-------------------------------------
注意:
上述三个文件一般都可以在系统“C:\WINDOWS\system32\dllcache”目录下找到正常完好的系统备份文件。如果实在没有找到的话,可以去同一个版本的其它计算机系统中拷贝。
最好是断开网络修复系统,因为该病毒为木马下载器,它会连接网络向您的计算机中安装20多款其它恶意程序(如网络游戏盗号木马等)。
因为该病毒并没有去破坏或修改您系统中的注册表,请您不要去重新注册系统DLL组件“mfc40u.dll”,不然可能会带去不必要的麻烦。

还有就是你安装的数据库是否跟电脑上现有软件有冲突,需要进行相应设置,而你一直默认安装了,如sql server 2005跟visul studio 2005/2008.本回答被提问者和网友采纳
第3个回答  2021-03-05

相似回答