最近一个Python的项目遇到性能问题,起初是使用Nginx+Fastcgi的模式,但由于多核CPU不能完全利用,且Python的跨进程通信上的技术难题,打算找一个突破口。
Web大牛推荐Tornado,小压了一下,性能果然不简单,而且简单易用。在当前的Django架构,修改起来也非常容易。
不过测试证明,使用Django获取Post数据有较明显的性能损耗,即使你不对数据进行处理而仅仅是读取它。最终希望慢慢去掉去Django的依赖。
而Tornado这边,也是单进程的。 关于进程通信上。起初是打算作一Web服务,最终当然是希望是缓存,这是最基本的模式了。
用Tornado作了一些简单的动态页面的性能测试,诸如打印HelloWorld、系统时间、参数返回,性能是相当的可观。简单的动态页面可以迅速爬升到8000Hits/Second。而且在处理多连接上也毫不逊色,真可谓小巧精悍。
在查找Web服务器的过程中也接触了一下web.py和Google's webapp。web.py非常小巧,是一款使用非常简单的绿色软件。我觉得作个简单的Web服务还不错,毕竟Python适合快速开发。而Google的Webapp由于不符合当前项目需要,也没多时间去看它了。
在搜Tornado的资料时,官网都打不开,资料非常少。中文的就更别想了!好不容易搜到一个不错的,而且文章上用的软、硬件、测试方法等都非常相似。发现那个人就是我的同事,他是个Web大牛!