быстрый кроль

Nov 30, 2012 16:36


Либа для кроля https://github.com/kakaranet/white_rabbit.

Таймеры:

1. Время инциализации для пользователя
  {T, _}= timer:tc(nsm_users,init_mq, [Me#user.username, Groups]),
  ?INFO("Init:  ~p~n", [T])

1.1 Время открытия 
         {T1,{ok, Channel}} = timer:tc(nsm_mq,open, [[]]),
        ?INFO("Opened: ~p", [T1])
      1.2 Время создания ексченжа
         {T3, ok} =timer:tc(nsm_mq_channel,create_exchange, [Channel, UserExchange,ExchangeOptions]),
         ?INFO("Created OK, ~p", [T3])

1.3 Время бинда по ключам 
         [begin
             {T2,_} = timer:tc(nsm_users, bind_user_exchange, [Channel, User, RK]),
             ?INFO("Exchange binded: ~p ~p", [T2, RK])
          end 
        || RK <- [rk([feed, delete, User])|Relations]]

2. Общее время создания 2048 юзеров
  {Time, _} = timer:tc(nsm_db, create_tour_users , [1,2048,["kakaranet"]]),
  ?INFO("Total: ~p~n", [Time])

Копипаста лога для среднестатистического юзера:

{rabbit,"RabbitMQ","2.7.1"}

INIT MQ: "ezgi_mestafa" ["kakaranet"]
Opened: 1567
Cration Exchange: {<0.18332.4>,<<"user_exchange.ezgi_mestafa.fanout">>,[{type,<<"fanout">>},durable,{auto_delete,false}]}, Created OK, 588
Exchange binded: 1388 <<"feed.delete.ezgi_mestafa">>
Exchange binded: 1966 <<"feed.user.ezgi_mestafa.*.*.*">>
Exchange binded: 1173 <<"db.user.ezgi_mestafa.put">>
Exchange binded: 1076 <<"subscription.user.ezgi_mestafa.add_to_group">>
Exchange binded: 966 <<"subscription.user.ezgi_mestafa.remove_from_group">>
Exchange binded: 977 <<"subscription.user.ezgi_mestafa.invite_to_group">>
Exchange binded: 1015 <<"subscription.user.ezgi_mestafa.reject_invite_to_group">>
Exchange binded: 1048 <<"subscription.user.ezgi_mestafa.leave_group">>
Exchange binded: 1063 <<"login.user.ezgi_mestafa.update_after_login">>
Exchange binded: 1013 <<"profile.user.ezgi_mestafa.add_twitter">>
Exchange binded: 1057 <<"profile.user.ezgi_mestafa.remove_twitter">>
Exchange binded: 979 <<"likes.user.ezgi_mestafa.add_like">>
Exchange binded: 1006 <<"personal_score.user.ezgi_mestafa.add">>
Exchange binded: 990 <<"feed.user.ezgi_mestafa.count_entry_in_statistics">>
Exchange binded: 1019 <<"feed.user.ezgi_mestafa.count_comment_in_statistics">>
Exchange binded: 998 <<"feed.user.ezgi_mestafa.post_note">>
Exchange binded: 1005 <<"subscription.user.ezgi_mestafa.subscribe_user">>
Exchange binded: 966 <<"subscription.user.ezgi_mestafa.remove_subscribe">>
Exchange binded: 1026 <<"subscription.user.ezgi_mestafa.set_user_game_status">>
Exchange binded: 982 <<"subscription.user.ezgi_mestafa.update_user">>
Exchange binded: 973 <<"subscription.user.ezgi_mestafa.block_user">>
Exchange binded: 977 <<"subscription.user.ezgi_mestafa.unblock_user">>
Exchange binded: 1029 <<"affiliates.user.ezgi_mestafa.create_affiliate">>
Exchange binded: 981 <<"affiliates.user.ezgi_mestafa.delete_affiliate">>
Exchange binded: 1138 <<"affiliates.user.ezgi_mestafa.enable_to_look_details">>
Exchange binded: 1046 <<"affiliates.user.ezgi_mestafa.disable_to_look_details">>
Exchange binded: 1027 <<"purchase.user.ezgi_mestafa.set_purchase_external_id">>
Exchange binded: 998 <<"purchase.user.ezgi_mestafa.set_purchase_state">>
Exchange binded: 1000 <<"purchase.user.ezgi_mestafa.set_purchase_info">>
Exchange binded: 970 <<"purchase.user.ezgi_mestafa.add_purchase">>
Exchange binded: 1086 <<"transaction.user.ezgi_mestafa.add_transaction">>
Exchange binded: 998 <<"invite.user.ezgi_mestafa.add_invite_to_issuer">>
Exchange binded: 1002 <<"tournaments.user.ezgi_mestafa.create">>
Exchange binded: 984 <<"tournaments.user.ezgi_mestafa.create_and_join">>
Exchange binded: 1039 <<"gifts.user.ezgi_mestafa.buy_gift">>
Exchange binded: 976 <<"gifts.user.ezgi_mestafa.give_gift">>
Exchange binded: 1003 <<"gifts.user.ezgi_mestafa.mark_gift_as_deliving">>
Exchange binded: 906 <<"feed.system.*.*">>
Exchange binded: 985 <<"feed.group.kakaranet.*.*.*">>

Init: 43264 (0.043264 секунды)

Тotal: 175781200 (2.93 минуты)

{rabbit,"RabbitMQ","3.0.0"}

INIT MQ: "yusuf_yazici"["kakaranet"]

Opened: 1270
Cration Exchange: {<0.21605.6>,<<"user_exchange.yusuf_yazici.fanout">>,[{type,<<"fanout">>},durable,{auto_delete,false}]},Created OK, 128179
Exchange binded: 92952 <<"feed.delete.yusuf_yazici">>
Exchange binded: 76416 <<"feed.user.yusuf_yazici.*.*.*">>
Exchange binded: 95326 <<"db.user.yusuf_yazici.put">>
Exchange binded: 290692 <<"subscription.user.yusuf_yazici.add_to_group">>
Exchange binded: 85628 <<"subscription.user.yusuf_yazici.remove_from_group">>
Exchange binded: 67032 <<"subscription.user.yusuf_yazici.invite_to_group">>
Exchange binded: 67270 <<"subscription.user.yusuf_yazici.reject_invite_to_group">>
Exchange binded: 67301 <<"subscription.user.yusuf_yazici.leave_group">>
Exchange binded: 68346 <<"login.user.yusuf_yazici.update_after_login">>
Exchange binded: 66671 <<"profile.user.yusuf_yazici.add_twitter">>
Exchange binded: 66710 <<"profile.user.yusuf_yazici.remove_twitter">>
Exchange binded: 69910 <<"likes.user.yusuf_yazici.add_like">>
Exchange binded: 78336 <<"personal_score.user.yusuf_yazici.add">>
Exchange binded: 78564 <<"feed.user.yusuf_yazici.count_entry_in_statistics">>
Exchange binded: 136393 <<"feed.user.yusuf_yazici.count_comment_in_statistics">>
Exchange binded: 77138 <<"feed.user.yusuf_yazici.post_note">>
Exchange binded: 122845 <<"subscription.user.yusuf_yazici.subscribe_user">>
Exchange binded: 67364 <<"subscription.user.yusuf_yazici.remove_subscribe">>
Exchange binded: 67418 <<"subscription.user.yusuf_yazici.set_user_game_status">>
Exchange binded: 67342 <<"subscription.user.yusuf_yazici.update_user">>
Exchange binded: 66873 <<"subscription.user.yusuf_yazici.block_user">>
Exchange binded: 67016 <<"subscription.user.yusuf_yazici.unblock_user">>
Exchange binded: 78607 <<"affiliates.user.yusuf_yazici.create_affiliate">>
Exchange binded: 78518 <<"affiliates.user.yusuf_yazici.delete_affiliate">>
Exchange binded: 67507 <<"affiliates.user.yusuf_yazici.enable_to_look_details">>
Exchange binded: 67031 <<"affiliates.user.yusuf_yazici.disable_to_look_details">>
Exchange binded: 80525 <<"purchase.user.yusuf_yazici.set_purchase_external_id">>
Exchange binded: 78460 <<"purchase.user.yusuf_yazici.set_purchase_state">>
Exchange binded: 85688 <<"purchase.user.yusuf_yazici.set_purchase_info">>
Exchange binded: 81576 <<"purchase.user.yusuf_yazici.add_purchase">>
Exchange binded: 71803 <<"transaction.user.yusuf_yazici.add_transaction">>
Exchange binded: 85818 <<"invite.user.yusuf_yazici.add_invite_to_issuer">>
Exchange binded: 66827 <<"tournaments.user.yusuf_yazici.create">>
Exchange binded: 67406 <<"tournaments.user.yusuf_yazici.create_and_join">>
Exchange binded: 66889 <<"gifts.user.yusuf_yazici.buy_gift">>
Exchange binded: 67527 <<"gifts.user.yusuf_yazici.give_gift">>
Exchange binded: 67580 <<"gifts.user.yusuf_yazici.mark_gift_as_deliving">>
Exchange binded: 78496 <<"feed.system.*.*">>
Exchange binded: 78398 <<"feed.group.kakaranet.*.*.*">>

Init: 3342401 (3.34 секунды)

Total: не дождался. хватило минут на 40.

тесты на 2.8.6 приблизительно повторяют резльтат 3.0.0, тоесть не дождался.
Все кроли тестировались свежепоставленными с пустыми базами. Первый раз запустил 3.0.0 под старой базой и ошибочно принял его за самый быстрый.

Видно что на 2.8-3.0 каждый ключик имеет значение, время его бинда приблизительно такое же как всех ~40 ключей на 2.7.1

Ни один кроль в результате експериментов не пострадал и подтвердилась народная мудрость о том, что старый кроль борозды не портит. 

rabbitmq

Previous post Next post
Up