Heim  >  Artikel  >  Datenbank  >  MySQL服务器进程CPU占用100%解决办法

MySQL服务器进程CPU占用100%解决办法

WBOY
WBOYOriginal
2016-06-07 17:52:591351Durchsuche

现在使用mysql数据库服务器的朋友有很多,我们也经常会碰到mysql进程CPU占用100%,下面我来总结一些解决方法。

解决方法一,修改my.cnf文件

找到

query_cache_size  =0

估计就是这个问题在造成的,没有开查询缓存

(一般1G 就64M缓存)

我的服务器的内存4G,

调整到

 代码如下 复制代码
query_cache_size  =256M  

 

如果你系统需要大的临时缓存我们可以再找到

 代码如下 复制代码

tmp_table_size

修改 My.ini, 将 tmp_table_size 赋值到 200M 这个大小大家可自行调整。

系统 占用cpu 100% 问题处理

原因分析

部署的应用每30秒与master report一次;每次report,都新建一个到mysql的连接,处理完之后,再关闭mysql连接,
但是在mysql连接关闭之后,tcp资源并没有释放,在2-3分钟内还是会处于TIME_WAIT状态。
在高IO操作时,会造成对mysq请求的堆积,新建大批的mysql连接,然后再关闭,所以就会有超多TIME_WAIT的tcp连接。
最终导致新来的mysql连接,没有tcp资源可以用,最后mysql connect fail

可能的解决方案:

1.    更改应用连接的方式,更改为每个线程对应一个mysql长连接。(变短连接为长连接)
2.    改变mysql所用磁盘,使得与应用不部署在同一台物理机上,或者使用独立的磁盘。
3.    更改项:innodb_flush_log_at_trx_commit = 2

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn