OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse,...

13
OPENERP BENCHMARK How to test performance and robustness against your own volumes ? Cyril MORISSE ( @cmorisse )

Transcript of OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse,...

Page 1: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

OPENERP BENCHMARK How$to$test$performance$and$robustness$against$your$own$volumes$?$

Cyril$MORISSE$($@cmorisse$)$$

Page 2: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

Introduc3on%

!  At%Audaxis,%we%decided%to%invest%in%a%methodology%to%answer%3%kinds%of%ques3ons:%!  Is%OpenERP%able%to%manage%my%business%!  Is%this%hardware%configura3on%able%to%sustain%our%opera3ons%load%?%Un3l%when%?%

! What%hardware%should%we%buy%to%run%OpenERP%for%the%next%3%years%?%

Page 3: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

What%to%measure%?%

!  You%must%find%the%most%challenging%business%processes%and%condi3ons%then%express%them%in%terms%of%what%you%can%measure%!  Eg.%Can%OpenERP%handle%240.000%orders%per%years%with%40%users%?%%

!  You%can’t%benchmark%on%this%base%%!  240.000%orders%per%year%is%2,5%orders%per%hour%per%user%(on%a%240%

working%days%of%10%hours%per%year%base)%"  Note:%that%this%is%one%order%every%36s%too%!%

!  What%you%can%measure%is:%!  Can%my%system%maintains%response%3me%<%1%s%per%transac3on%over%10%

hours%with%:%"  40%users%entering%1%order%every%16%minutes%during%10%(peak%hours%intensity)%%%

"  That’s%1%order%every%24s%

Page 4: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

What%to%measure%(con3nued)%

!  What%does%«good%response%3me»%technically%means%?%

%

!  JSONbRPC%requests%response%3me%must%be%kept%around%1s%for%the%system%to%be%felt%as%responsive.%!  Funkload%measure%responsiveness%for%you%using%%APDEX%

OpenERP Database

OpenERP Application Server

User OpenERP Web Client

Enter fields, Press buttons JSON-RPC SQL

Responsiveness

1 Sale Order with 5 lines, “Confirmed” then “Invoiced”

~ 20 ~ 150 ~ 6700

Page 5: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

How%to%measure%it%

!  Use%Funkload%!  Develop%a%test%case%which%simulates%user%interac3ons%(via%XMLbRPC…)%

!  Install%«%Funkload%monitor%»%on%your%servers%!  Define%and%run%Funkload%benchmarks%with:%

"  A%test%case%"  List%of%cycle%defining%the%number%of%concurrent%users%

"  Eg.%100,100,100,100%"  Cycle%dura3on%"  Frequency%(as%a%period%:%one%test%every%x%seconds)%

!  You%will%get%a%(quite)%fancy%report%with:%!  Test%execu3on%3me%!  Individual%request%execu3on%3me%!  Main%server%metrics%(CPU,%RAM,%Network%Load)%

%

Page 6: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

Funkload%Sample%Report%(con3nued)%

Page 7: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

Funkload%Sample%Report%(con3nued)%

Page 8: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

Funkload%Sample%Report%(end)%

Page 9: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

Database%size%really%maAers%

!  You%must%bench%with%real%volume%of%data%!!!%

0

1

2

3

4

5

6

7

8

0 100000 200000 300000 400000 500000

OpenERP Response Time evolution over Sales Order count

Response Time (s)

Page 10: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

Database%size%really%maAers(con3nued)%

!  In%fact,%you%will%need%several%benchmarks:%!  Benchbfiller%

"  Use%these%benchmarks%to%fill%up%your%database%(customers,%products,%…)%

!  Benchbreference%"  2%hours%with%target%ac3vity%level%

!  Benchbrobustness%"  10%(several)%hours%with%target%ac3vity%level%

!  Benchblimit%" We%run%this%one%at%the%end%of%the%bench%to%determine%how%many%users%more%the%system%will%support%at%target%ac3vity%level%%

%

Page 11: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

Plan%your%architecture%but%focus%on%the%database%

!  Configure%your%database%!%At%least%use%pgtune%!!!%!  ORM%may%be%your%enemy%;%think%about%the%roundtrips%involved%by%your%code%!  Don’t%split%Applica3on%and%Database%servers%too%early%!%!  If%your%database%is%not%too%big%:%think%SSD%(From%20x%to%250x%more%IOPS%than%HDD)*%

OpenERP Database OpenERP

Application Server OpenERP

Web Client

JSON-RPC SQL

Horizontal Scaling

Vertical Scaling

Page 12: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

Tools%&%References%

!  Funkload%(%hAp://funkload.nuxeo.org%%)%!  Benchmark%(and%Test)%your%OpenERP%Server%and%others%

!  Muppy%(%hAp://bitbucket.org/cmorisse/muppy%)%!  “Make%your%OpenERP%Servers%behave%as%puppets”%!  Install%OpenERP%plamorms%everywhere%(in%really%alpha%stage)%

!  Pgbadger%(%hAp://dalibo.github.io/pgbadger%)%!  Analyse%SQL%requests%processed%by%your%PostgreSQL%Server%

!  Pgtune%(%hAps://github.com/gregs1104/pgtune%)%!  Helps%you%to%configure%your%PostgreSQL%(basically)%

!  Pg_ac3vity%(hAps://github.com/julmon/pg_ac3vity%)%!  Top%like%applica3on%for%PostgreSQL%Server%

!  OpenERP%buildout%Recipe%(%hAps://pypi.python.org/pypi/anybox.recipe.openerp%)%!  A%set%of%Ugly%scripts%to%automate%the%launch%of%Funkload%Filler%benchmarks%%

!  Theses%tools%allows%to%measure%performance%over%database%size%

!  hAp://www.apdex.org%%!  SQL%Databases%Don’t%Scale%by%Adam%WIGGINS%

!  hAp://adam.heroku.com/past/2009/7/6/sql_databases_dont_scale/%

!  HDD%vs%SSD%by%IBM%!  hAp://wwwb03.ibm.com/systems/power/hardware/peripherals/ssd/hdd_ssd.html%%

Page 13: OpenERP Benchmark : How to test performance and robustness against your volumes? Cyril Morisse, Audaxis

More%informa3on?%

www.audaxis.com%%

Contact%us%[email protected]%

%

%

%

14

Visit our booth at OpenERP Community Days in Hall K