测试tornado的多进程性能tornado.process

随后测试了下tornado的 tornado.process模块,  结果性能方面不咋地。  他的实现原理也很简单,就是主进程实例化listen fd,然后fork子进程,这样子进程继承了父进程的listen fd .  当一个新连接过来的时候,多个子进程如果都在accept,那么会出现惊群操作,当然最后只有一个进程accept拿到数据。

每个子进程有单独的epoll池里,不仅要监控listen fd,而且要监控 已经建连的连接。

另外,tornado多进程的性能咋样?  不怎么样…. 也就用用…

 

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import os

import time

 

import tornado.web

import tornado.httpserver

import tornado.ioloop

import tornado.netutil

import tornado.process

from tornado.options import define,options

 

 

define("port",default=8001, help="run on the given port", type=int)

class LongHandler(tornado.web.RequestHandler):

 

    def get(self):

        time.sleep(3)

        self.write(str(os.getpid()))

                                                                    

 

if __name__ == "__main__":

    tornado.options.parse_command_line()

    app = tornado.web.Application(([r'/', LongHandler], ))

    sockets = tornado.netutil.bind_sockets(8090)

    tornado.process.fork_processes(100)

    server = tornado.httpserver.HTTPServer(app)

#    server.listen(options.port)

    server.add_sockets(sockets)

    tornado.ioloop.IOLoop.instance().start()

 

 

转自:http://xiaorui.cc/2014/05/11/%E6%B5%8B%E8%AF%95tornado%E7%9A%84%E5%A4%9A%E8%BF%9B%E7%A8%8B%E6%80%A7%E8%83%BDtornado-process/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Flask和Tornado都是Python的Web框架,它们提供了一种方式来构建和部署Web应用程序。关于多进程的问题,这两个框架有一些不同的处理方式。 在Flask中,多进程可以通过使用WSGI服务器来实现。WSGI(Web Server Gateway Interface)是Python应用程序和Web服务器之间的通用接口。你可以使用像Gunicorn、uWSGI或者mod_wsgi这样的WSGI服务器来运行Flask应用程序,并配置它们以使用多个工作进程来处理并发请求。这样就可以充分利用系统资源,提高应用程序的性能和并发处理能力。 在Tornado中,它本身就是一个异步的Web服务器,基于单线程事件循环的模型。默认情况下,Tornado在单个进程中运行,并通过事件循环来处理并发请求。然而,Tornado也支持多进程部署。你可以使用Tornado提供的`tornado.process`模块来创建多个子进程,并在每个子进程中运行一个独立的Tornado实例。这样可以通过利用多个CPU核心来提高应用程序的并发处理能力。 需要注意的是,使用多进程部署时需要考虑共享资源的问题,例如数据库连接、缓存等。你需要确保在多个进程之间正确管理和同步这些资源,以避免冲突和数据不一致的问题。 总结来说,无论你选择使用Flask还是Tornado,都可以通过使用适当的服务器来实现多进程部署,从而提高应用程序的性能和并发处理能力。具体的实现方式会根据你选择的服务器和部署环境而有所不同。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值