`
baalwolf
  • 浏览: 351401 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql 线程等待时间,解决sleep进程过多的办法

 
阅读更多

 show processlist 看了以下,发现我的那个业务的DB确实有很多sleep链接没有关闭。



以前也曾遇到过类似的问题,导致此问题的原因从网上查了,大体有几下几种原因:

造成睡眠连接过多的原因?

 

1. 使用了太多持久连接(个人觉得,在高并发系统中,不适合使用持久连接)

2. 程序中,没有及时关闭mysql连接

3. 数据库查询不够优化,过度耗时。

 

 

对于正在运行中的生产服务器,在不能停止服务情况下,修改此项怎么办?很简单,以root用户登录到mysql,执行:
set global wait_timeout=100
 
mysql的配置文件中,有一项:
 
wait_timeout, 即可设置睡眠连接超时秒数,如果某个连接超时,会被mysql自然终止,多好的办法!
 
如设置: 
 
wait_timeout=100#即设置mysql连接睡眠时间为100秒,任何sleep连接睡眠时间若超过100秒,将会被mysql服务自然终止
 
 
分享到:
评论

相关推荐

    shell的多线程&当前文件夹下批量插入MySQL

    总结起来,虽然Shell本身不支持多线程,但我们可以通过FIFO文件和进程间的通信来模拟多线程行为,实现批量处理任务,例如在当前目录下批量插入MySQL数据库。这种方法在处理大量并发任务时非常有用,提高了工作效率。

    mysql show processlist 显示mysql查询进程

    理解`SHOW PROCESSLIST`的输出有助于识别潜在的问题,比如阻塞的查询、过长的等待时间或不必要的资源消耗。例如,如果你发现很多线程都处于`Copying to tmp table on disk`状态,可能意味着查询需要优化,以减少对...

    mysql数据库my.cnf配置文件

    当主要MySQL线程在一个很短时间内得到非常多的连接请求,这就起作用, # 然后主线程花些时间(尽管很短)检查连接并且启动一个新线程。back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在...

    MYSQL锁表问题的解决方法

    你可以创建一个名为`mysqld_kill_sleep.sh`的脚本,用PHP定时执行,自动杀死那些等待时间超过特定阈值(比如30秒)且不是由`root`用户执行的进程。 5. **优化SQL查询和事务管理**: 避免长时间的查询和事务是防止...

    实例讲解php实现多线程

    例如,下面的代码创建了两个线程,每个线程都会执行`sleep(5)`,但由于它们是并发执行的,实际所需时间仅为5秒。 ```php class pthreadsTest extends Thread { public function run() { sleep(5); } } $...

    快手2020招聘秋招笔试--工程C试卷.docx

    wait() 方法可以让线程等待对象锁的释放。 知识点8: 网络协议 ARP 协议可以将 MAC 地址转换为 IP 地址。 知识点9: 路由器 路由器是在网络层上实现网络互连的。 知识点10: ICMP 协议 ICMP 协议是直接为 TCP 提供...

    python学习笔记之多进程

    在Python编程中,多进程(Multi-Processing)是一种并行处理的方法,它允许程序同时运行多个独立的执行线程,每个线程称为一个进程。在多核CPU系统中,多进程能充分利用硬件资源,提高程序的运行效率。本篇笔记将...

    2019最新Java面试题,常见面试题及答案汇总 (2).pdf

    - `sleep()`使当前线程休眠,`wait()`让线程等待,两者都需要捕获InterruptedException。 - `synchronized`和`volatile`、`Lock`(如ReentrantLock)用于线程同步,前者是内置关键字,后两者是显式锁,提供了更细...

    python爬虫开发常见问题及其解决方法和经验总结.docx

    - **设置合理的超时时间**:在发起请求时,可以通过`requests.get(url, timeout=5)`这样的方式设置超时时间为5秒,以防止长时间等待无响应的请求。 - **异常处理机制**:使用`try-except`语句块来捕获并处理可能出现...

    一线互联网公司面试题目

    阻塞方式包括wait()、sleep()等,其中wait()需在同步块中使用,sleep()则不会释放锁。 7. **HashMap 底层实现**:HashMap基于哈希表,使用数组+链表/红黑树实现,解决冲突采用开放寻址法或链地址法。 8. **抢红包...

    一线互联网企业面试题.pdf

    7. sleep和wait的区别:sleep()是Thread类的静态方法,调用后线程进入Timed Waiting状态,但不会释放锁;wait()是Object类的方法,调用后线程进入Waiting状态,并释放锁。 8. HashMap底层实现:HashMap基于哈希表...

    Java后端面试题大纲(涵盖了百分之九十的考点).pdf

    - `ThreadLocal`提供了一个线程局部变量的解决方案,每个线程都有独立的变量副本。 - 避免了通过参数传递变量的麻烦,但也可能导致内存泄漏。 #### 计算机网络 1. **URL解析过程** - 输入URL后,首先解析域名...

    Java面试宝典

    - `wait()`是`Object`类的方法,会使当前线程等待,直到被其他线程唤醒或达到指定时间,同时会释放对象锁。 8. **实现同步的方式** - 使用`synchronized`关键字。 - 使用`ReentrantLock`类。 - 使用`Semaphore`...

    Java最常见的面试题208道.docx

    23. **线程与进程**:线程是进程内的执行单元,进程是系统分配资源的基本单位。 24. **守护线程**:守护线程是后台线程,当所有非守护线程结束后,守护线程会自动结束。 25. **创建线程的方式**:继承`Thread`类、...

    Python-对懂球帝的文章进行有条件爬取

    8. **多线程或异步IO**:为了提高爬虫的效率,可以考虑使用Python的多线程或多进程,或者使用asyncio库实现异步IO,使得程序在等待网络响应时可以同时处理其他任务。 9. **反爬虫策略**:懂球帝等网站可能会有反...

Global site tag (gtag.js) - Google Analytics