现在使用mysql数据库服务器的朋友有很多,我们也经常会碰到mysql进程CPU占用100%,下面我来总结一些解决方法。
解决方法一,修改my.cnf文件
找到
query_cache_size =0
估计就是这个问题在造成的,没有开查询缓存
(一般1G 就64M缓存)
我的服务器的内存4G,
调整到
| 代码如下 | 复制代码 |
| query_cache_size =256M | |
ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有
0
如果你系统需要大的临时缓存我们可以再找到
| 代码如下 | 复制代码 |
|
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
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
C++高性能并发应用_C++如何开发性能关键应用
Java AI集成Deep Java Library_Java怎么集成AI模型部署
Golang后端API开发_Golang如何高效开发后端和API
Python异步并发改进_Python异步编程有哪些新改进
C++系统编程内存管理_C++系统编程怎么与Rust竞争内存安全
Java GraalVM原生镜像构建_Java怎么用GraalVM构建高效原生镜像
Python FastAPI异步API开发_Python怎么用FastAPI构建异步API
C++现代C++20/23/26特性_现代C++有哪些新标准特性如modules和coroutines
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号