← Back to team overview

openerp-community team mailing list archive

Re: mrp scheduler

 

On 12/18/2013 08:48 AM, Alexandre Fayolle wrote:
Is your cron configured with Repeat Missed set ? If so this could be the
case.
you may be interested in a more robust implementation - especially for long running jobs http://bazaar.launchpad.net/~camptocamp/c2c-rd-addons/6.1/files/head:/timed_job/ - production http://bazaar.launchpad.net/~camptocamp/c2c-rd-addons/7.0/files/head:/timed_job/ - development


Alexandre



On 18/12/2013 06:00, Grahame Jordan wrote:
Hi,

I have a problem with the mrp scheduler when running on 7,000 products.

I am running on 2 x quad core 3.0GHz, 32 GB RAM, RAID10 SSD for DB,
Ubuntu 12.04 LTS. V6.1.

When running from Warehouse -> Schedulers -> Compute Schedulers the
performance is as expected. ~30 minutes to complete on 4351 procurements.

When running from ir.cron the performance is up to 20x worse.  6 - 10
hours.

Is there some extra overhead when running from ir.cron?
Is it possible to enhance this?

Some timings below to show the problem. The first one is from manually
invoking the scheduler, the second is invoked from ir.cron.
Read from the bottom to the top.

2013-12-18 04:48:21,854 8706 INFO ? procurement:
procurement.order._procure_orderpoint_confirm(): #1: qty: 385
START::             44/100 : 2144/4351 : 2144 : V75-4x2.5
2013-12-18 04:48:21,884 8706 INFO ? stock:
stock.move.create_chained_picking(): #1:
TIMING::            0.002s
2013-12-18 04:48:21,887 8706 INFO ? procurement:
procurement.order._procure_orderpoint_confirm(): #6: button_confirm:
TIMING::            0.048s
2013-12-18 04:48:21,911 8706 INFO ? procurement:
procurement.order.check_produce(): #3:
TIMING::                    0.015s
2013-12-18 04:48:21,949 8706 INFO ? mrp:
procurement.order.make_mo():                             #1:
prod.create():   TIMING::                    0.036s
2013-12-18 04:48:21,985 8706 INFO ? mrp:
mrp.bom._bom_explode():                                  #1: bom
:          TIMING::                           0.005s
2013-12-18 04:48:21,985 8706 INFO ? mrp_geicp:
mrp.production.action_compute():                   #1: bom :
TIMING::                           0.026s
2013-12-18 04:48:21,986 8706 INFO ? mrp_geicp:
mrp.production.action_compute():                   #2: :
TIMING::                           0.000s
2013-12-18 04:48:22,050 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               0.107s
2013-12-18 04:48:22,074 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   0.039s
2013-12-18 04:48:22,074 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               0.040s
2013-12-18 04:48:22,142 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               0.113s
2013-12-18 04:48:22,178 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   0.059s
2013-12-18 04:48:22,178 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               0.060s
2013-12-18 04:48:22,258 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               0.134s
2013-12-18 04:48:22,305 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   0.078s
2013-12-18 04:48:22,305 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               0.079s
2013-12-18 04:48:22,381 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               0.126s
2013-12-18 04:48:22,437 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   0.092s
2013-12-18 04:48:22,437 8706 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               0.093s
2013-12-18 04:48:22,437 8706 INFO ? mrp_geicp:
mrp.production.action_compute():                   #3: :
TIMING::                           0.752s
2013-12-18 04:48:22,479 8706 INFO ? mrp_geicp:
mrp.production.update_production_bom_information():#1: :
TIMING::                               0.070s
2013-12-18 04:48:22,505 8706 INFO ? mrp_geicp:
mrp.production.update_production_bom_information():#2: :
TIMING::                               0.043s
2013-12-18 04:48:22,534 8706 INFO ? mrp_geicp:
mrp.production.update_production_bom_information():#3: :
TIMING::                               0.048s
2013-12-18 04:48:22,534 8706 INFO ? mrp_geicp:
mrp.production.action_compute():                   #4:
update:          TIMING::                           0.162s
2013-12-18 04:48:22,534 8706 INFO ? mrp:
mrp.production.test_if_product():                        #1:
action_compute:  TIMING::                        0.966s
2013-12-18 04:48:22,573 8706 INFO ? mrp:
procurement.order.make_mo():                             #3:
button_confirm:  TIMING::                    1.040s
2013-12-18 04:48:22,573 8706 INFO ? mrp_geicp:
procurement.order.make_mo():                       #1:
super.make_mo()  TIMING::                1.079s
2013-12-18 04:48:22,582 8706 INFO ? procurement:
procurement.order._procure_orderpoint_confirm(): #7: button_check:
TIMING::            1.158s



2013-12-18 03:59:53,691 7820 INFO ? procurement:
procurement.order._procure_orderpoint_confirm(): #1: qty: 3075
START::             60/100 : 1460/4351 : 1460 : 50-100-0812
2013-12-18 03:59:54,182 7820 INFO ? stock:
stock.move.create_chained_picking(): GBJ #0: moves =
[browse_record(stock.move, 405450)] : context = None
2013-12-18 03:59:54,196 7820 INFO ? stock:
stock.move.action_confirm(): #1:                  TIMING::
0.12s : 0.12s
2013-12-18 03:59:54,295 7820 INFO ? procurement:
procurement.order._procure_orderpoint_confirm(): #6: button_confirm:
TIMING::            0.856s
2013-12-18 03:59:54,581 7820 INFO ? procurement:
procurement.order.check_produce(): #3:
TIMING::                    0.07s
2013-12-18 03:59:54,913 7820 INFO ? mrp:
procurement.order.make_mo():                             #1:
prod.create():   TIMING::                    0.33s
2013-12-18 03:59:56,177 7820 INFO ? mrp_geicp:
mrp.production.action_compute():                   #1: bom :
TIMING::                           0.261s
2013-12-18 03:59:56,177 7820 INFO ? mrp_geicp:
mrp.production.action_compute():                   #2: :
TIMING::                           0.000s
2013-12-18 03:59:56,873 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               1.160s
2013-12-18 03:59:57,084 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   0.350s
2013-12-18 03:59:57,084 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               0.351s
2013-12-18 03:59:57,786 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               1.170s
2013-12-18 03:59:58,111 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   0.541s
2013-12-18 03:59:58,111 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               0.542s
2013-12-18 03:59:58,831 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               1.200s
2013-12-18 03:59:59,269 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   0.729s
2013-12-18 03:59:59,269 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               0.730s
2013-12-18 04:00:00,001 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               1.219s
2013-12-18 04:00:00,542 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   0.901s
2013-12-18 04:00:00,542 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               0.902s
2013-12-18 04:00:01,273 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #1:
super:           TIMING::                               1.218s
2013-12-18 04:00:01,915 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.reset_states():     #1: :
TIMING::                                   1.069s
2013-12-18 04:00:01,915 7820 INFO ? mrp_geicp:
mrp.production.workcenter.line.create():           #2:
reset_states():  TIMING::                               1.070s
2013-12-18 04:00:01,915 7820 INFO ? mrp_geicp:
mrp.production.action_compute():                   #3: :
TIMING::                           9.563s
2013-12-18 04:00:02,421 7820 INFO ? mrp_geicp:
mrp.production.update_production_bom_information():#1: :
TIMING::                               0.843s
2013-12-18 04:00:02,652 7820 INFO ? mrp_geicp:
mrp.production.update_production_bom_information():#2: :
TIMING::                               0.385s
2013-12-18 04:00:03,043 7820 INFO ? mrp_geicp:
mrp.production.update_production_bom_information():#3: :
TIMING::                               0.652s
2013-12-18 04:00:03,043 7820 INFO ? mrp_geicp:
mrp.production.action_compute():                   #4:
update:          TIMING::                           1.880s
2013-12-18 04:00:03,043 7820 INFO ? mrp:
mrp.production.test_if_product():                        #1:
action_compute:  TIMING::                        13.44s
2013-12-18 04:00:03,310 7820 INFO ? mrp:
procurement.order.make_mo():                             #3:
button_confirm:  TIMING::                    14.00s
2013-12-18 04:00:03,488 7820 INFO ? procurement:
procurement.order._procure_orderpoint_confirm(): #7: button_check:
TIMING::            15.323s


Appreciate your expert help and insight.

Grahame Jordan



_______________________________________________
Mailing list: https://launchpad.net/~openerp-community
Post to     : openerp-community@xxxxxxxxxxxxxxxxxxx
Unsubscribe : https://launchpad.net/~openerp-community
More help   : https://help.launchpad.net/ListHelp




References