OpenERP 7.0成倍提高并发处理能力
-
由于Python臭名昭著的GIL问题,OpenERP 6.1以前的版本,只能单进程运行。在单进程模式下,OpenERP永远只能利用单核CPU。也就是说,即使你的服务器硬件非常牛,例如有多核多颗CPU,但OpenERP却不会利用。较高负荷的情况下,网页响应速度很慢,但用top看CPU利用率,却非常低(急煞人又气煞人)!
不过,从OpenERP 6.1开始,事情有了改变。这得从“绿色独角兽“说起。在互联网开发领域,Python语言由于其简洁、快速、强大的编程能力,很多Web程序都用Python编写。为了应对互联网的海量访问,这些Web程序必须能够充分利用多核和多CPU!“绿色独角兽”Gunicorn就是用来解决这个问题的!凡是遵循WSGI标准的Web应用,在gunicorn的帮助下,可以自动fork出多进程,从而充分利用CPU。OpenERP 6.1开始,完全遵循WSGI标准,重写了Web端代码,能够支持多进程,从而大幅提高系统性能。
据我们测试,在2核、2G内存的Linux Cloud Server上,20用户(客服和物流人员)在线操作,OpenERP一小时处理的淘宝订单数量超过3000单。如果集群多台服务器,OpenERP订单处理能力可以无限扩展。
据悉,上海海龙生物技术公司,他们基于OpenERP 7.0开发了公司的电子商务ERP系统。该系统自动从淘宝上导入订单,客服人员使用系统确认订单,物流部门通过系统拣货、验货和发货。采购和仓管部门也通过该系统下单采购及库存管理。高峰时候,海龙公司来自天猫店的日订单数量将近20,000单。他们将系统部署在一台4核双CPU的Linux服务器上,得益于OpenERP的多进程并发处理能力,系统运行非常稳定、高效。
海龙信息部李主任说:事实证明,当初我们大胆选择OpenERP架构我们的电子商务处理系统是非常正确的!以前,他们用的是一家商业ERP软件,去年在MS的反盗版行动中被盯上了,要求每年缴纳不菲的Windows Server和SQL Server的License费用。加之商业软件定制能力差,难以满足他们日益发展的新需求,因而李主任决定试试开源ERP软件。事实证明,这个选择是非常英明的,无论是功能还是性能上,OpenERP软件都非常好的满足了公司的业务要求!现在,海龙公司的电商ERP系统全部构建在开源软件之上:操作系统是开源的Linux系统,数据库是开源的PostgreSQL,ERP是开源的OpenERP系统。
注:关于OpenERP多进程的配置技术,参考帖子: [检测到链接无效,已移除]