Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

Openerp压力测试



  • OpenERP(以下简称为OE) 是一个开源ERP/CRM系统,使用Python语言开发,数据库采用开源的PostgreSQL,系统以GNU GPL开 源协议发布。在过去人们的印象中,OE一般是用在中小企业居多。除了业务上、功能上等因素外,技术上的因素也是需要考虑,OE能否顶住大流量、高并发的各种操作呢?本文对OE进行了一系列的压力测试,当然测试方法可能比较单一和片面,所得出的测试结果也是仅供各位看官参考。<br />1.  测试环境<br />1.1  硬件环境<br /><br />    DELL 1420 笔记本<br />    CPU:Intel(R) Core(TM)2 Duo CPU    T5450  @ 1.66GHz<br />    内存:1G<br />    硬盘:160G<br /><br />1.2  软件环境<br /><br />    操作系统:Debian Linux  2.6.39-2-686-pae #1 SMP Tue Jul 5 03:48:49 UTC 2011 i686 GNU/Linux<br />    OpenERP Server版本:openerp-server-6.0.2<br />    OpenERP web client:openerp-web-6.0.2<br />    CherryPY 版本:3.1.2<br /><br />1.3  相关参数设置<br /><br />    OE Server:启动方式为 ./openerp-server.py -c openerp-server.conf ,conf 配置文件是从deb 包解压出来的,没有做任何修改。<br />    安装了一个test帐套,默认安装了测试数据,语言选取为英文。启用了CRM、SALES、WAREHOUSE、INVOCING、ACCOUNTING、PURCHASE 模块。<br />    OE Web:启动方式为 ./openerp-web.py ,默认加载的配置文件为 ./doc/openerp-web.cfg ,修改第二行为 server.environment = "production",其他保持默认。(默认值为server.environment = "development"时,会加载_TimeoutMonitor 和 Autoreloader,会降低部分性能。)<br />    CherryPY:在cherrypy/_cpserver.py文件中有两个重要参数,分别是46行的socket_queue_size = 5 和 51行thread_pool = 10 ,这里修改为socket_queue_size = 500 和 thread_pool = 1000。(这两个参数如果在保持默认值的情况下,连并发100都跑不了。不明白CherryPY的默认值为什么这么低 ...)<br /><br />注:oe server 和 oe web client 都直接下载源码运行,未使用deb安装版。<br />1.4  测试方法<br /><br />        采用ab (ApacheBench) 工具,分别进行10、100、1000并发,总数1000的任务,对OE web client 进行访问,也就是http://127.0.0.1:8080 。分别测试首页和内页(内页访问是需要登录的,因此内页测试结果应该更接近实际使用情况)。<br /><br />        应当指出的是,这里只测试通过web 客户端并发方式,未使用GTK客户端的方式测试。通过GTK客户端方式访问,是直接访问OE Server ,少了OE Web Client 这层的转化,理论上应该比web 客户端方式效率更高。<br />2.  测试过程<br /><br />        由于篇幅的原因,下面没有贴出完整的测试输出,只贴了关键部分。如需完整的测试结果,请下载本文附件。<br />2.1  测试首页<br /><br />        关于首页地址,首页地址不能使用http://127.0.0.1:8080,因为访问http://127.0.0.1:8080时,OE Web Client 会返回一个http 303转向,因此只能使用 http://127.0.0.1:8080/openerp/login?db=&user= 。<br /><br />2.1.1  10并发测试<br />$ ab -n 1000 -c 10  'http://127.0.0.1:8080/openerp/login?db=&user='<br /><br />Document Path:          /openerp/login?db=&user=<br />Document Length:        11383 bytes<br /><br />Concurrency Level:      10<br />Time taken for tests:  11.493 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      11638000 bytes<br />HTML transferred:      11383000 bytes<br />Requests per second:    87.01 [#/sec] (mean)<br />Time per request:      114.925 [ms] (mean)<br />Time per request:      11.493 [ms] (mean, across all concurrent requests)<br />Transfer rate:          988.92 [Kbytes/sec] received<br /><br />2.1.2  100并发测试<br />$ ab -n 1000 -c 100  'http://127.0.0.1:8080/openerp/login?db=&user='<br /><br />Document Path:          /openerp/login?db=&user=<br />Document Length:        11383 bytes<br /><br />Concurrency Level:      100<br />Time taken for tests:  10.237 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      11638000 bytes<br />HTML transferred:      11383000 bytes<br />Requests per second:    97.68 [#/sec] (mean)<br />Time per request:      1023.700 [ms] (mean)<br />Time per request:      10.237 [ms] (mean, across all concurrent requests)<br />Transfer rate:          1110.21 [Kbytes/sec] received<br /><br />2.1.3  1000并发测试<br />$ ab -n 1000 -c 1000  'http://127.0.0.1:8080/openerp/login?db=&user='<br /><br />Document Path:          /openerp/login?db=&user=<br />Document Length:        11383 bytes<br /><br />Concurrency Level:      1000<br />Time taken for tests:  12.416 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      11638000 bytes<br />HTML transferred:      11383000 bytes<br />Requests per second:    80.54 [#/sec] (mean)<br />Time per request:      12416.356 [ms] (mean)<br />Time per request:      12.416 [ms] (mean, across all concurrent requests)<br />Transfer rate:          915.34 [Kbytes/sec] received<br /><br />        从上面的结果来看,性能相当不错啊,呵呵。在并发1000的情况下,平均每个请求耗时12.416毫秒!通过分别察看10并发、100并发、1000并发的测试结果,可以看到处理时间并不一定随着并发数的增长而线性增长。<br /><br />        不过,ab 测试并不代表真实的情况,ab 工具只取了http 的 header 部分,只要是返回200就认为是成功的。而实际的浏览器请求中,还需要处理图片、JS、CSS等文件。另外,首页是不需要登录的,而实际使用当中,大部分都是需要登录的操作,因此下面的测试就通过访问一个菜单来模拟用户登录后的情况。<br />2.2  测试需要登录的内页<br /><br />        这里使用的URL地址是 http://127.0.0.1:8080/openerp/menu?active=73 ,正常情况下是需要登录的。ab 工具提供了一个 -C 选项,可以设置cookie。通过设置cookie ,我们就可以模拟登录情况。<br /><br />        使用Firefox 访问http://127.0.0.1:8080并登录后,打开首选项->隐私->显示cookie,找到127.0.0.1,可以看到OE设置的cookie值,这里只要使用session_id就可以了。ab 的示例用法为:<br />$ ab -n 1000 -c 10 -C session_id=577291be968298c229eb887a618f881018e9b7a8 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />2.2.1  10并发测试<br />$ ab -n 1000 -c 10 -C session_id=b9df27fa455e06954ea3f08cade4ac911e0f688e 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />Document Path:          /openerp/menu?active=73<br />Document Length:        127271 bytes<br /><br />Concurrency Level:      10<br />Time taken for tests:  242.542 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      127527000 bytes<br />HTML transferred:      127271000 bytes<br />Requests per second:    4.12 [#/sec] (mean)<br />Time per request:      2425.418 [ms] (mean)<br />Time per request:      242.542 [ms] (mean, across all concurrent requests)<br />Transfer rate:          513.47 [Kbytes/sec] received<br /><br />2.2.2  100并发测试<br />$ ab -n 1000 -c 100 -C session_id=b9df27fa455e06954ea3f08cade4ac911e0f688e 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />Document Path:          /openerp/menu?active=73<br />Document Length:        127271 bytes<br /><br />Concurrency Level:      100<br />Time taken for tests:  243.160 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      127527000 bytes<br />HTML transferred:      127271000 bytes<br />Requests per second:    4.11 [#/sec] (mean)<br />Time per request:      24315.977 [ms] (mean)<br />Time per request:      243.160 [ms] (mean, across all concurrent requests)<br />Transfer rate:          512.17 [Kbytes/sec] received<br /><br />2.2.3  1000并发测试<br />$ ab -n 1000 -c 1000 -C session_id=b9df27fa455e06954ea3f08cade4ac911e0f688e 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />Document Path:          /openerp/menu?active=73<br />Document Length:        127271 bytes<br /><br />Concurrency Level:      1000<br />Time taken for tests:  243.017 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      127527000 bytes<br />HTML transferred:      127271000 bytes<br />Requests per second:    4.11 [#/sec] (mean)<br />Time per request:      243017.391 [ms] (mean)<br />Time per request:      243.017 [ms] (mean, across all concurrent requests)<br />Transfer rate:          512.47 [Kbytes/sec] received<br /><br />        从上面的结果来看,1000并发平均每个请求耗时243.017毫秒!。与首页测试12.416毫秒相比,差不多有19.57倍的差距。不过这也很正常,访问上面的菜单需要加载许多模块。分别观察10并发、100并发、1000并发的测试结果来看,处理时间的差距并不明显。<br />2.3  NET-RPC or XML-RPC ?<br /><br />        NET-RPC是OE支持的一个接口,察看源代码可以看到其实现机制是比较简单的,主要是通cPickle 模块将对象序列化,然后通过TCP Socket传输,接收后反序列化的一个过程。XML-RPC是工作在Internet上的远程过程调用协议,一个XML-RPC消息就是一个请求体为xml的http-post请求,被调用的方法在服务器端执行并将执行结果以xml格式编码后返回。<br /><br />        从原理上来说NET-RPC的速度要比XML-RPC快,官方也是推荐使用NET-RPC。那么到底快多少呢?请看下面的测试结果。<br /><br />        测试之前,需要修改./doc/openerp-web.cfg 配置文件,把52行修改为 openerp.server.protocol = 'http' 表示使用XML-RPC协议(原默认值是 socket,表示使用NET-RPC协议)。<br />        此处,还需修改一个参数为 openerp.server.port = '8069'(默认值为8070,使用net-rpc协议)<br /><br />2.3.1  XML-RPC 100 并发测试<br /><br />$ ab -n 1000 -c 100 -C session_id=349f6eb43a5fb2b9227cd63f56ae666096f7381b 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />Document Path:          /openerp/menu?active=73<br />Document Length:        127271 bytes<br /><br />Concurrency Level:      100<br />Time taken for tests:  369.974 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      127527000 bytes<br />HTML transferred:      127271000 bytes<br />Requests per second:    2.70 [#/sec] (mean)<br />Time per request:      36997.414 [ms] (mean)<br />Time per request:      369.974 [ms] (mean, across all concurrent requests)<br />Transfer rate:          336.61 [Kbytes/sec] received<br /><br />        平均每请求耗时369.974毫秒,而上面使用NET-RPC100并发是243.160毫秒,是使用NETRPC的1.52倍。<br /><br />3.  结论<br /><br />        通过以上的测试过程,我个人认为OE完全可以支持1000+的并发需求,满足企业的日常使用以及以后增长需求。尤其是在我这个老爷笔记本的硬件下,相信现在很多PC硬件已经几倍甚至几十倍超越我的笔记本了。<br /><br />        建议一:如果使用OE Web Client,建议调整CherryPY的socket_queue_size 和 thread_pool 参数,以提高CherryPY的并发支持能力,避免Web 副服务器成为应用瓶颈。<br /><br />        建议二:如果不是一定要使用XML-RPC的情况下,尽量使用NET-RPC协议。<br /><br />本文转自本人博客 [url=http://www.360yun.info/blog/512796206.html]http://www.360yun.info/blog/512796206.html[/url],以上测试结果文件请到本人博客下载。



  • OpenERP(以下简称为OE) 是一个开源ERP/CRM系统,使用Python语言开发,数据库采用开源的PostgreSQL,系统以GNU GPL开 源协议发布。在过去人们的印象中,OE一般是用在中小企业居多。除了业务上、功能上等因素外,技术上的因素也是需要考虑,OE能否顶住大流量、高并发的各种操作呢?本文对OE进行了一系列的压力测试,当然测试方法可能比较单一和片面,所得出的测试结果也是仅供各位看官参考。<br />1.  测试环境<br />1.1  硬件环境<br /><br />    DELL 1420 笔记本<br />    CPU:Intel(R) Core(TM)2 Duo CPU    T5450  @ 1.66GHz<br />    内存:1G<br />    硬盘:160G<br /><br />1.2  软件环境<br /><br />    操作系统:Debian Linux  2.6.39-2-686-pae #1 SMP Tue Jul 5 03:48:49 UTC 2011 i686 GNU/Linux<br />    OpenERP Server版本:openerp-server-6.0.2<br />    OpenERP web client:openerp-web-6.0.2<br />    CherryPY 版本:3.1.2<br /><br />1.3  相关参数设置<br /><br />    OE Server:启动方式为 ./openerp-server.py -c openerp-server.conf ,conf 配置文件是从deb 包解压出来的,没有做任何修改。<br />    安装了一个test帐套,默认安装了测试数据,语言选取为英文。启用了CRM、SALES、WAREHOUSE、INVOCING、ACCOUNTING、PURCHASE 模块。<br />    OE Web:启动方式为 ./openerp-web.py ,默认加载的配置文件为 ./doc/openerp-web.cfg ,修改第二行为 server.environment = "production",其他保持默认。(默认值为server.environment = "development"时,会加载_TimeoutMonitor 和 Autoreloader,会降低部分性能。)<br />    CherryPY:在cherrypy/_cpserver.py文件中有两个重要参数,分别是46行的socket_queue_size = 5 和 51行thread_pool = 10 ,这里修改为socket_queue_size = 500 和 thread_pool = 1000。(这两个参数如果在保持默认值的情况下,连并发100都跑不了。不明白CherryPY的默认值为什么这么低 ...)<br /><br />注:oe server 和 oe web client 都直接下载源码运行,未使用deb安装版。<br />1.4  测试方法<br /><br />        采用ab (ApacheBench) 工具,分别进行10、100、1000并发,总数1000的任务,对OE web client 进行访问,也就是http://127.0.0.1:8080 。分别测试首页和内页(内页访问是需要登录的,因此内页测试结果应该更接近实际使用情况)。<br /><br />        应当指出的是,这里只测试通过web 客户端并发方式,未使用GTK客户端的方式测试。通过GTK客户端方式访问,是直接访问OE Server ,少了OE Web Client 这层的转化,理论上应该比web 客户端方式效率更高。<br />2.  测试过程<br /><br />        由于篇幅的原因,下面没有贴出完整的测试输出,只贴了关键部分。如需完整的测试结果,请下载本文附件。<br />2.1  测试首页<br /><br />        关于首页地址,首页地址不能使用http://127.0.0.1:8080,因为访问http://127.0.0.1:8080时,OE Web Client 会返回一个http 303转向,因此只能使用 http://127.0.0.1:8080/openerp/login?db=&user= 。<br /><br />2.1.1  10并发测试<br />$ ab -n 1000 -c 10  'http://127.0.0.1:8080/openerp/login?db=&user='<br /><br />Document Path:          /openerp/login?db=&user=<br />Document Length:        11383 bytes<br /><br />Concurrency Level:      10<br />Time taken for tests:  11.493 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      11638000 bytes<br />HTML transferred:      11383000 bytes<br />Requests per second:    87.01 [#/sec] (mean)<br />Time per request:      114.925 [ms] (mean)<br />Time per request:      11.493 [ms] (mean, across all concurrent requests)<br />Transfer rate:          988.92 [Kbytes/sec] received<br /><br />2.1.2  100并发测试<br />$ ab -n 1000 -c 100  'http://127.0.0.1:8080/openerp/login?db=&user='<br /><br />Document Path:          /openerp/login?db=&user=<br />Document Length:        11383 bytes<br /><br />Concurrency Level:      100<br />Time taken for tests:  10.237 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      11638000 bytes<br />HTML transferred:      11383000 bytes<br />Requests per second:    97.68 [#/sec] (mean)<br />Time per request:      1023.700 [ms] (mean)<br />Time per request:      10.237 [ms] (mean, across all concurrent requests)<br />Transfer rate:          1110.21 [Kbytes/sec] received<br /><br />2.1.3  1000并发测试<br />$ ab -n 1000 -c 1000  'http://127.0.0.1:8080/openerp/login?db=&user='<br /><br />Document Path:          /openerp/login?db=&user=<br />Document Length:        11383 bytes<br /><br />Concurrency Level:      1000<br />Time taken for tests:  12.416 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      11638000 bytes<br />HTML transferred:      11383000 bytes<br />Requests per second:    80.54 [#/sec] (mean)<br />Time per request:      12416.356 [ms] (mean)<br />Time per request:      12.416 [ms] (mean, across all concurrent requests)<br />Transfer rate:          915.34 [Kbytes/sec] received<br /><br />        从上面的结果来看,性能相当不错啊,呵呵。在并发1000的情况下,平均每个请求耗时12.416毫秒!通过分别察看10并发、100并发、1000并发的测试结果,可以看到处理时间并不一定随着并发数的增长而线性增长。<br /><br />        不过,ab 测试并不代表真实的情况,ab 工具只取了http 的 header 部分,只要是返回200就认为是成功的。而实际的浏览器请求中,还需要处理图片、JS、CSS等文件。另外,首页是不需要登录的,而实际使用当中,大部分都是需要登录的操作,因此下面的测试就通过访问一个菜单来模拟用户登录后的情况。<br />2.2  测试需要登录的内页<br /><br />        这里使用的URL地址是 http://127.0.0.1:8080/openerp/menu?active=73 ,正常情况下是需要登录的。ab 工具提供了一个 -C 选项,可以设置cookie。通过设置cookie ,我们就可以模拟登录情况。<br /><br />        使用Firefox 访问http://127.0.0.1:8080并登录后,打开首选项->隐私->显示cookie,找到127.0.0.1,可以看到OE设置的cookie值,这里只要使用session_id就可以了。ab 的示例用法为:<br />$ ab -n 1000 -c 10 -C session_id=577291be968298c229eb887a618f881018e9b7a8 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />2.2.1  10并发测试<br />$ ab -n 1000 -c 10 -C session_id=b9df27fa455e06954ea3f08cade4ac911e0f688e 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />Document Path:          /openerp/menu?active=73<br />Document Length:        127271 bytes<br /><br />Concurrency Level:      10<br />Time taken for tests:  242.542 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      127527000 bytes<br />HTML transferred:      127271000 bytes<br />Requests per second:    4.12 [#/sec] (mean)<br />Time per request:      2425.418 [ms] (mean)<br />Time per request:      242.542 [ms] (mean, across all concurrent requests)<br />Transfer rate:          513.47 [Kbytes/sec] received<br /><br />2.2.2  100并发测试<br />$ ab -n 1000 -c 100 -C session_id=b9df27fa455e06954ea3f08cade4ac911e0f688e 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />Document Path:          /openerp/menu?active=73<br />Document Length:        127271 bytes<br /><br />Concurrency Level:      100<br />Time taken for tests:  243.160 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      127527000 bytes<br />HTML transferred:      127271000 bytes<br />Requests per second:    4.11 [#/sec] (mean)<br />Time per request:      24315.977 [ms] (mean)<br />Time per request:      243.160 [ms] (mean, across all concurrent requests)<br />Transfer rate:          512.17 [Kbytes/sec] received<br /><br />2.2.3  1000并发测试<br />$ ab -n 1000 -c 1000 -C session_id=b9df27fa455e06954ea3f08cade4ac911e0f688e 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />Document Path:          /openerp/menu?active=73<br />Document Length:        127271 bytes<br /><br />Concurrency Level:      1000<br />Time taken for tests:  243.017 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      127527000 bytes<br />HTML transferred:      127271000 bytes<br />Requests per second:    4.11 [#/sec] (mean)<br />Time per request:      243017.391 [ms] (mean)<br />Time per request:      243.017 [ms] (mean, across all concurrent requests)<br />Transfer rate:          512.47 [Kbytes/sec] received<br /><br />        从上面的结果来看,1000并发平均每个请求耗时243.017毫秒!。与首页测试12.416毫秒相比,差不多有19.57倍的差距。不过这也很正常,访问上面的菜单需要加载许多模块。分别观察10并发、100并发、1000并发的测试结果来看,处理时间的差距并不明显。<br />2.3  NET-RPC or XML-RPC ?<br /><br />        NET-RPC是OE支持的一个接口,察看源代码可以看到其实现机制是比较简单的,主要是通cPickle 模块将对象序列化,然后通过TCP Socket传输,接收后反序列化的一个过程。XML-RPC是工作在Internet上的远程过程调用协议,一个XML-RPC消息就是一个请求体为xml的http-post请求,被调用的方法在服务器端执行并将执行结果以xml格式编码后返回。<br /><br />        从原理上来说NET-RPC的速度要比XML-RPC快,官方也是推荐使用NET-RPC。那么到底快多少呢?请看下面的测试结果。<br /><br />        测试之前,需要修改./doc/openerp-web.cfg 配置文件,把52行修改为 openerp.server.protocol = 'http' 表示使用XML-RPC协议(原默认值是 socket,表示使用NET-RPC协议)。<br />        此处,还需修改一个参数为 openerp.server.port = '8069'(默认值为8070,使用net-rpc协议)<br /><br />2.3.1  XML-RPC 100 并发测试<br /><br />$ ab -n 1000 -c 100 -C session_id=349f6eb43a5fb2b9227cd63f56ae666096f7381b 'http://127.0.0.1:8080/openerp/menu?active=73'<br /><br />Document Path:          /openerp/menu?active=73<br />Document Length:        127271 bytes<br /><br />Concurrency Level:      100<br />Time taken for tests:  369.974 seconds<br />Complete requests:      1000<br />Failed requests:        0<br />Write errors:          0<br />Total transferred:      127527000 bytes<br />HTML transferred:      127271000 bytes<br />Requests per second:    2.70 [#/sec] (mean)<br />Time per request:      36997.414 [ms] (mean)<br />Time per request:      369.974 [ms] (mean, across all concurrent requests)<br />Transfer rate:          336.61 [Kbytes/sec] received<br /><br />        平均每请求耗时369.974毫秒,而上面使用NET-RPC100并发是243.160毫秒,是使用NETRPC的1.52倍。<br /><br />3.  结论<br /><br />        通过以上的测试过程,我个人认为OE完全可以支持1000+的并发需求,满足企业的日常使用以及以后增长需求。尤其是在我这个老爷笔记本的硬件下,相信现在很多PC硬件已经几倍甚至几十倍超越我的笔记本了。<br /><br />        建议一:如果使用OE Web Client,建议调整CherryPY的socket_queue_size 和 thread_pool 参数,以提高CherryPY的并发支持能力,避免Web 副服务器成为应用瓶颈。<br /><br />        建议二:如果不是一定要使用XML-RPC的情况下,尽量使用NET-RPC协议。<br /><br />本文转自本人博客 [url=http://www.360yun.info/blog/512796206.html]http://www.360yun.info/blog/512796206.html[/url],以上测试结果文件请到本人博客下载。



  • 赞,,, 不错.... <br /> 这一块我不担心...<br /><br />OE server 也是可以分布的. 如果 rpc 性能跟不上, 完全可以再布几台 OE Server 的...<br /><br />收藏...



  • 之前关于oe的性能没有数字说话,lz做的好,赞一个



  • <br />楼主的贡献那是功德无量啊!<br />每次客户问到OE性能时候,我总是含含糊糊,现在理直气壮了!咱有数字说话啊!<br />我很多遍Google了OE的性能测试数据,找遍全球也没找到,楼主那是真真实实的填补了该领域的世界空白啊!



  • 谢谢各位!我这个测试还很不严谨。<br /><br />呼吁下有条件的弟兄,可以用我的方法测试测试,然后把测试结果贴出来,大家综合一下,更有说服力



  • 我用pylot测试,觉得支持10个并发就不错了。想支持1000个并发,做梦吧?jsp的oracle ERP才差不多支1000个并发.



  • [quote author=jimrich link=topic=2553.msg29169#msg29169 date=1413439781]<br />我用pylot测试,觉得支持10个并发就不错了。想支持1000个并发,做梦吧?jsp的oracle ERP才差不多支1000个并发.<br />[/quote]<br /><br />官方32Gram+强cpu是支持100并发<br />再多 要集群了


  • 管理员

    @jimrich[quote author=jimrich link=topic=2553.msg29169#msg29169 date=1413439781]<br />我用pylot测试,觉得支持10个并发就不错了。想支持1000个并发,做梦吧?jsp的oracle ERP才差不多支1000个并发.<br />[/quote]<br />觉得? 压力测试是一个专业的活,是需要拿数据说话的, 光觉得是不行的。兄弟也做了测试,不妨把你的测试方法,测试数据与我们分享一下,告诉我们如何得出10个并发的结果的。<br />我们对测试并不在行,但是也用funcload工具试着做了一个测试。测试中我们对OpenERP V7 针对订单创建,确认,生成发票的典型应用场景做了测试。使用的硬件条件基本与楼主相同内存为4G,与典型的服务器配置差很远,测试结果请见下面的链接:<br />[url=http://openerp.cn/test/]http://openerp.cn/test/[/url]<br /><br /><br />在我们的测试中,订单创建/确认/生成发票的过程, 25并发响应非常良好,50并发开始变差, 并没有楼主说得那么不济。



  • 我没有整那么高级. <br /><br />我就是直接写 python 脚本准备N个线程 一起 start 然后创建OE的记录 测试结果:<br /><br />http://69195329.qqlog.mrshelly.com/20140910.html#155432<br /><br />发现走 xmlrpc 有点恼火,如果直接调用网页创建记录, 还是相当理想的....



  • 测试方法:<br />配置 Intel E8400 3.00G 双核 4.0GRAM Windows XP wingIDE 前端未加 nginx 等, 直接调用.<br />python 多线程1000, 300, 200, 150  都测试过<br /><br />1000线程 成功 200多 <br />300 线程 成功 200多<br />200 线程 成功 180多<br />150 线程 成功 150. 几次 150线程测试都成功100%, 基本稳定<br />下面是150线程的测试结果数据 <br />['start: 0.0', 'ready session and cookies: 14.3838699864', 'ready thread: 14.388 9531826', 'done thread: 14.9821065911', 'insert record: 150']<br />前面 14.384 秒 都在模拟登陆OE, 得到 150 条 Cookie 数据<br />0.005(14.389-14.384) 秒 启用 线程实例<br />后面 0.7秒(14.982-14.389) 就是线程开始调用, 并完成150条记录的创建时间..<br /><br />


登录后回复
 

与 Odoo 中文社区 的连接断开,我们正在尝试重连,请耐心等待