`
feisuzhu
  • 浏览: 13892 次
  • 性别: Icon_minigender_1
  • 来自: 济南
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Apache的prefork模式导致飞信模块多次初始化

阅读更多

RT

自己写的一个模块,封装了一下PyFetion,目的是尽量保持飞信可用,再就是方便点。

在模块初始化的时候创建线程,登录,然后不停的查询数据库看是否有信息要发送。

后来发现很不稳定,看了下log


[Sun Sep 26 19:59:36 2010] [warn] child process 12374 still did not exit, sending a SIGTERM
Error in my_thread_global_end(): 1 threads didn't exit
[Sun Sep 26 19:59:38 2010] [notice] caught SIGTERM, shutting down
[Sun Sep 26 20:02:24 2010] [notice] Apache/2.2.14 (Ubuntu) PHP/5.3.2-1ubuntu4.5 with Suhosin-Patch mod_ssl/2.2.14 OpenSSL/0.9.8k mod_wsgi/2.8 Python/2.6.5 configured -- resuming normal operations
[Sun Sep 26 20:02:46 2010] [error] <SupervisorThread(SupervisorThread, started 140184746718992)> ('construct...',)
[Sun Sep 26 20:02:49 2010] [error] <SupervisorThread(SupervisorThread, started 140184746718992)> ('login...',)
[Sun Sep 26 20:02:54 2010] [error] <MessageThread(MessageThread, started 140184645531408)> ('message round',)
......
[Sun Sep 26 20:02:59 2010] [error] <SendSMSThread(SendSMSThread, started 140184637138704)> ('nomsg',)
[Sun Sep 26 20:03:04 2010] [error] <SendSMSThread(SendSMSThread, started 140184637138704)> ('nomsg',)
.......
[Sun Sep 26 20:03:24 2010] [error] <SupervisorThread(SupervisorThread, started 140184746718992)> ('construct...',)
[Sun Sep 26 20:03:24 2010] [error] <HeartbeatThread(HeartbeatThread, started 140184721078032)> ('beat~',)
[Sun Sep 26 20:03:24 2010] [error] <SendSMSThread(SendSMSThread, started 140184637138704)> ('nomsg',)
[Sun Sep 26 20:03:24 2010] [error] <HeartbeatThread(HeartbeatThread, started 140184721078032)> ('beat done',)

 

怎么又开始初始化了呢?

 

后来发现是因为apache的prefork模式。在fork之前每个单独的进程都认为那个module没有初始化,于是就初始化了,导致n个进程同时登录。

 

现在在想,到底是把飞信做成webservice,还是干脆改用worker模式。

分享到:
评论

相关推荐

    Apache的prefork模式和worker模式该户.docx

    Apache的prefork模式和worker模式该户.docx

    apache2-prefork-2.2.22-4.7.1.x86_64.rpm

    apache2-prefork 64位快速安装包

    Apache Prefork、Worker和Event三种MPM详解

    主要介绍了Apache Prefork、Worker和Event三种MPM详解,着重介绍了配置参数部分,需要的朋友可以参考下

    apache2-prefork-2.2.22.i586.rpm

    Linux 下apache2-prefork-2.2.22-i586.rpm 快速安装包

    Apache的fork模式和worker模式判断方法

    apache常用的工作模式有prefork和worker模式。运行命令httpd -l 或者apache2 -l ,输出的结果中如果含有prefork.c,那就是prefork模式,如果结果中含有worker.c,那就是worker模式。 知道模式之后我们可以在apache的...

    apache优化和模块安装

    apache关于最大连接的优化.关于prefork和worker模块的.

    Apache源代码全景分析第1卷:体系结构与核心模块 part1

    包括配置文件、模块化结构、多任务并发,以及网络连接和请求读取,其中多任务并发体系结构是《Apache源代码全景分析第1卷:体系结构与核心模块》分析的重点,讨论了Prefork、Worker及WinNT三种MPM。《Apache源代码...

    Apache源代码全景分析第1卷:体系结构与核心模块 part2

    包括配置文件、模块化结构、多任务并发,以及网络连接和请求读取,其中多任务并发体系结构是《Apache源代码全景分析第1卷:体系结构与核心模块》分析的重点,讨论了Prefork、Worker及WinNT三种MPM。《Apache源代码...

    Apache的两种工作模式

    Apache的两种工作模式: prefork模式: 使用多个子进程,每个子进程只包含一个线程 特点:效率高,内存使用率高 worker模式 使用多个子进程,每个子进程包含多个线程 特点:内存使用率低,一个线程崩溃,整个...

    查看apache连接的连接并发数

    查看apache连接的连接并发数 查看httpd进程数(即prefork模式下Apache能够处理的并发请求数)

    Apache HTTP Server Version 2.2 文档(2013.4.10最新)

    多路处理模块(MPM) Apache2.0新特性概述 Apache 2.2 新特性概述 配置段(容器) 服务器全局配置 站点导航 停止和重启 suEXEC支持 致谢与译者声明 从2.0升级到2.2 从1.3升级到2.0 从URL到文件系统的映射 Apache 1.3 API...

    深入理解apahce的工作模式perfork、worker

    prefork模式使用多个子进程,每个子进程只有一个线程。每个进程在某个确定的时间只能维持一个连接。在大多数平台上,Prefork MPM在效率上要比Worker MPM要高,但是内存使用大得多。prefork的无线程设计在某些情况下...

    Apache 并发优化设置方法

    Apache优化步骤: ...本文是对512M 内存并装有apache的vps进行优化,请不要跟我说装nginx就强多了,确实如此,但是你这样说的话,这篇文章就没什么意义了,哈哈。那么进入正题吧! 操作系统(linux):C

    mod_realdoc:支持原子部署的Apache模块-http

    mod_realdoc是一个Apache模块,它在docroot符号链接上执行realpath,并将绝对路径设置为请求其余部分的真实文档根目录。 Apache读取完客户端的请求后,它将立即执行。 可以使用以下命令在httpd.conf中调整实际路径...

    apache-formula:设置和配置Apache HTTP服务器

    阿帕奇 在GNU / Linux,FreeBSD和Windows OS上设置和配置Apache HTTP服务器的公式。 目录请参阅完整的。... 在Debian mpm_prefork , mpm_worker或mpm_event上配置apache mpm模块(仅Debian) 启用了Apache模

    rapache:R内嵌在Apache中

    mod_R:Apache 2.0模块,该模块实现粘合以加载R解释器。 libapreq 2.0.4:Apache赞助的项目,用于解析请求输入。 如果您不想编译和安装此版本,则可以指定在配置过程中使用哪个libapreq2库。 最新版本 最新版本的...

    Python库 | py-prefork-server-0.5.0.tar.gz

    资源分类:Python库 所属语言:Python 资源全名:py-prefork-server-0.5.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059

    Nginx + php 搭建 超性能 WEB 服务器

    Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该... 根据我的经验,4GB内存的服务器+Apache(prefork模式)一般只能处理3000个并发连接,因为它们将占用3GB以上的内存,还得为系统预留

    lnamp:一键源码编译安装LNMP LAMP Tomcat

    RHEL6,RHEL7启用交换启用iptables修改SSH服务端口使用OpenSSL 1.1.1构建的Nginx / 1.16.1 Apache2.2.34工作模式为PreforkMPM(最终版本2.2.34已于2017年7月发布) Apache2.4工作模式为Event MPM(编译全部Prefork,...

Global site tag (gtag.js) - Google Analytics