7 февраля 2011 г. 15:16 пользователь Ostrov <ostr...@gmail.com> написал:
--
С уважением, Лашко Владимир.
ostr...@gmail.com
ostr...@mail.ru
а почему это проблема? потребление же растёт не до бесконечности.
--
Regards,
Anton Fedorov
Call2ru service
E-Mail: datac...@call2ru.com
Jabber: datac...@call2ru.com
ICQ: 272-35-262
Mobile: +7-913-925-7974 [SMS 24h, Call 05:00-19:00 MSKT (GMT+3)]
8 февраля 2011 г. 12:52 пользователь Anton Fedorov
<datac...@call2ru.com> написал:
> --
> Страница рассылки: http://groups.google.com/group/erlang-russian
> Jabber-конференция: erl...@conference.jabber.ru
> Новости: http://erlanger.ru
> Написать письмо: erlang-...@googlegroups.com
> Отписаться: erlang-russia...@googlegroups.com
В письме от Втр, 08 Фев 2011, 17:24 ostrovok ostrovok пишет:
судя по всему -- по причине того, что записи о транзакциях в ней есть, но нет
записей о важных транзакциях, достойных записи на диск.
а ротейтится оно по наполнению полезными транзакциями.
один вопрос -- зачем нужно в транзакции делать что-то, к бд не относящееся?
но вообще это баг, достойный загнать в БТ эриксона.
хотя юзкейз мне непонятен :)
В письме от Втр, 08 Фев 2011, 20:07 Alexander Dergachev пишет:
8 февраля 2011 г. 17:23 пользователь Anton Fedorov
Памяти ест 363m.
36963434519 mnesia_transient_decision set 265 4258 mnesia_recover
36964806768 mnesia_transient_decision set 244 3943 mnesia_recover
36965916785 mnesia_transient_decision set 357 5638 mnesia_recover
36967735411 mnesia_transient_decision set 30 733 mnesia_recover
почему-то не растет на бревой системе.
В письме от Втр, 08 Фев 2011, 20:31 ostrovok ostrovok пишет:
Первая тысяча, запуск test:start():
4141080 mnesia_transient_decision set 1002 15331 mnesia_recover
Вторая тысяча, запуск test:loop():
4141080 mnesia_transient_decision set 2002 30845 mnesia_recover
Третья тысяча:
4141080 mnesia_transient_decision set 3002 45845 mnesia_recover
Четвертая:
4141080 mnesia_transient_decision set 4002 61101 mnesia_recover
Пятая:
4141080 mnesia_transient_decision set 5002 76101 mnesia_recover
Шестая тысяча:
4141080 mnesia_transient_decision set 5058 76941 mnesia_recover
24866849 mnesia_transient_decision set 944 14461 mnesia_recover
Обратите внимание, создалась вторая таблица.
Если использовать after 1 вместо after 10 -- то таблица вторая не создавалась и
на 20 тысячах записей.
Если я вызываю mnesia:dump_log() -- новая копия создаётся, всё норм.
Поэтому, вопрос настройки сервера -- сколько памяти есть? есть ли своп?
какие размеры у mnesia_transient_decision на боевом сервере?
==========================
Кажисяма, я понялама!
-mnesia dump_log_write_threshold Max, where Max is an integer which specifies
the maximum number of writes allowed to the transaction log before a new dump of
the log is performed. It defaults to 100 log writes.
=> transaction(ok) не запись, и потмоу логи не ротейтятся по этому принципу
-mnesia dump_log_time_threshold Max, where Max is an integer which specifies the
dump log interval in milliseconds. It defaults to 3 minutes. If a dump has not
been performed within dump_log_time_threshold milliseconds, then a new dump is
performed regardless of how many writes have been performed.
=> думаю, вам надо поставить в 1 минуту.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-module ( test_tr ).
-export([ start/0, stop/0, loop/0 ]).
start( ) ->
init_database(),
loop().
loop( ) ->
loop( 1000 ).
loop( 0 ) ->
io:format("Memory usage: ~p~n", [erlang:memory(ets)]),
mnesia:info(),
ets:i();
loop( N ) ->
receive
after
10 ->
test_trans(),
loop(N-1)
end.
stop() ->
mnesia:stop(),
mnesia:delete_schema([node()]),
io:format("~p stop\n", [self()]),
ok.
init_database() ->
R1 = mnesia:stop(),
R2 = mnesia:delete_schema([node()]),
R3 = mnesia:create_schema([node()]),
timer:sleep(1000),
R4 = mnesia:start(),
io:format("Mnesia stop,delete_schema,create_schema:~n~p~n", [{R1,R2,R3,R4}]).
test_trans() ->
mnesia:transaction(fun() -> ok end).
8 февраля 2011 г. 18:02 пользователь Anton Fedorov
<datac...@call2ru.com> написал:
8 февраля 2011 г. 19:08 пользователь ostrovok ostrovok
<ostr...@gmail.com> написал:
В письме от Чтв, 10 Фев 2011, 13:29 ostrovok ostrovok пишет:
если что, система - FreeBSD 8.1,
Erlang R14B (erts-5.8.1) [source] [64-bit] [smp:2:2] [rq:2]
[async-threads:0] [hipe] [kernel-poll:false]
пока остановился на таких параметрах:
dc_dump_limit 1
dump_log_load_regulation false
dump_log_update_in_place true
dump_log_write_threshold 100
dump_log_time_threshold 40000
schema_location opt_disc