php-fpm线程僵死导致网站无响应

网站突然打不开,查看了网站日志,未发现有攻击和流量异常现象。查看内存,负载都未有异常,于是查看php-fpm日志,发现了大量以下样式的警告通知。[NOTICE] fpm_children_bury(), line 215: child 11514 (pool baddb.com) exited with code 0 after 759.234956 seconds from start

[NOTICE] fpm_children_make(), line 352: child 11685 (pool baddb.com) started

查阅资料发现,这可能是因为打开的页面文件过多,而默认的线程已不够使用,因此导致php-fpm线程僵死。

由于php线程打开文件句柄会有受限的可能。因此需要查看以下几方面。

1:允许打开的句柄总量开关。

使用ulimit -n命令来查看数值。默认发现为1024,我们需要加大该值。vi /etc/security/limits.conf

在对应处加上例如* - nofile 8192

该值为系统允许的文件句柄打开数量总开关,因此该值的大小决定上限。

2:修改php-fpm.conf文件,若对应站点有单独的php-fpm.conf文件设置,则修改对应的站点.conf,例如php/php-fpm/baddb.com.conf,主要需要修改两个参数。

参数一:max_requests值,设置为8192,因为系统句柄决定了该值,因为设置值比8192更大,也仍然会被认为是8192

参数二:rlimit_files值,同样设置为8192

3:可以适当增加php-fpm线程数量,线程数量高,表示并发越强,同一时间能处理的请求越高,但前提是内存和CPU足够支撑这。因此,该值不要随意设置增大。越大线程,会占用更多的CPU资源。后果可能是造成主机死机。

最后重启主机,重启后再使用ulimit -n命令来查看,发现已经是8192

线程超时 php-fpm,php-fpm线程僵死导致网站无响应相关推荐

  1. 服务器:php-fpm线程卡死导致网站无响应

    服务器:php-fpm线程僵死导致网站无响应 网站突然打不开,查看了网站日志,未发现有攻击和流量异常现象.查看内存,负载都未有异常,于是查看php-fpm日志,发现了大量以下样式的警告通知. [NOT ...

  2. python 线程超时设置_python 条件变量Condition(36)

    文章首发微信公众号,微信搜索:猿说python 对于线程与线程之间的交互我们在前面的文章已经介绍了 python 互斥锁Lock / python事件Event , 今天继续介绍一种线程交互方式 – ...

  3. python 线程超时设置_爬虫基础知识(一)多线程与threading模块

    点击上方"蓝字"关注我们,第一时间推送优质文章! 前言 "本期带来的文章是python中多线程与threading模块的主要内容.主要分为「并发与并行」,「进程与线程」, ...

  4. python 线程超时设置_python多任务之总结——(二)线程、协程

    本文主要讲述进程线程协程在python中的使用.主要说明各自的创建.通信及联系与区别,了解各自的适用场景,能更好的利用并发实现多任务开发. 第一部分:python多任务之总结--(一)进程学习 线程 ...

  5. python强制暂停线程_关于python:使用ThreadPoolExecutor强制线程超时

    我正在升级我的代码以使用ThreadPoolExecuter,并希望能够超时需要超过几秒钟处理的任何线程. 是否可以在作为线程池一部分的线程上强制超时? 我正在使用的代码如下. 1 2 3 4 5 6 ...

  6. 此流上不支持超时。_10分钟了解线程池,阿里再也不担心我线程池资源耗尽了...

    线程池:避免了创建线程和销毁线程的资源损耗. Executors提供四种线程池: newCachedThreadPool :缓存线程池,如果线程池长度超过处理需要,可回收空闲线程,若无可回收,则新建线 ...

  7. java 设置超时_java线程超时设置方法

    对于java中线程超时间可以使用ExecutorService与Timer来控制一个线程什么时候超时了,下面我整理了一些方法,这些文章都详细的介绍java线程超时设置技巧. 方法一 本例子使用Exec ...

  8. Python线程超时自动终止 | Python利用ThreadPoolExecutor实现对多线程的超时自动终止 | Python3实现单线程超时自动强制停止

    文章目录 1. 按 2. 实测代码 1. 按 Python多线程适用于IO密集型的应用场景,与进程不同的是多线程对计算机资源的占用较少.对于Python自带的模块,threading未实现线程池,co ...

  9. java中的僵死进程_Java中线程间怎么通讯?什么叫僵死线程?

    <尸家保镖> <猛鬼出千> <不死心灵> <大家发财> <灵幻少女> <九天玄女> <僵尸至尊> <湘西尸王& ...

最新文章

  1. JavaWeb笔记01
  2. MyBatis框架添加客户有哪些步骤
  3. [转]MongoDB c++驱动安装与使用
  4. 现代软件工程 第二章 【个人技术】 练习与讨论
  5. C语言课后习题(33)
  6. 命令行删除mysql57_Ubuntu16.04彻底删除MySQL5.7 方法
  7. Java 算法 陶陶摘苹果2
  8. Windows Server 2003网络配置与管理
  9. python自动化任务_Python任务自动化工具tox使用教程
  10. android之uniapp自定义基座
  11. linux yum安装mysql
  12. C#发送邮件,包含发送附件
  13. intellij idea 修改字体 修改主题
  14. Typora图片上传问题
  15. 手变小是怎么回事_手指小太阳越来越小是怎么回事
  16. 中国第一程序员,微软得不到他就要毁了他!
  17. 2019年培养工作室主力计划——第1次任务
  18. House of orange
  19. unity 发光字体_Unity 游戏开发技巧集锦之创建自发光材质
  20. python mysql 并发_python3.6使用sqlalchemy读取mysql中的数据并进行多进程并发处理

热门文章

  1. codevs1018 单词接龙(DFS)
  2. 【转】状态压缩动态规划
  3. MAGENTO与性能优化
  4. 【报告分享】2021日化行业社媒营销报告.pdf(附下载链接)
  5. 【报告分享】2019云安全威胁报告.pdf(附下载链接)
  6. 一张图看懂字节跳动8年创业史,太励志了吧
  7. 10条设计推荐系统的经验和教训
  8. pandas显示不全问题
  9. 灵活应对算法大赛新挑战,极清晰比赛思路你值得拥有
  10. mysql 建表sysdate_mysql数据库基本操作练习