Strange mnesia behaviour
Anders Nygren
anders_nygren2002@REDACTED
Mon Aug 25 20:45:40 CEST 2003
Ops
I forgot, You need to do
>proc1:start_link().
before running the test with
load_test:start(...).
/Anders
--- Anders Nygren <anders_nygren2002@REDACTED> skrev:
> Hi
> Enclosed are two files for demonstrating the
> problem.
>
> 1> mnesia:create_schema([node()]).
> ok
> %% create test table
> 2> proc1:create_tab().
>
> %% Send 1000 messages
>
> 21> load_test:start(1000,1,1000).
> Starting: {1061,824066,922527}
> ok
> Finished: {1061,824067,57799}
> Duration: 0.135272
>
> %% send 4000 messages
>
> 22> load_test:start(4000,1,4000).
> Starting: {1061,824104,408645}
> ok
> Finished: {1061,824105,433962}
> Duration: 1.02532
> %% NOTE: Duration more than 4x time for 1000 msgs.
>
> %% send 10000 msgs
> 23> load_test:start(10000,1,10000).
> Starting: {1061,824183,532563}
> ok
> Finished: {1061,824190,685861}
> Duration: 7.15330
>
> %% And now for the real fun
> %% Send 10000 msgs, but sleep 1 sec, after 5000 msgs
> 24> load_test:start(10000,1000,5000).
> Starting: {1061,824264,759878}
> ok
> Finished: {1061,824268,418335}
> Duration: 3.65846 %% !!!!!!!!!
>
> eprof shows that flush_downs is the guilty.
> Warning: do not try profileing witheprof on 10000
> messages, 4000 msg takes 25 secs with profiling on
> my 2.4 Ghz P4.
> /Anders
>
> --- Dan Gudmundsson <dgud@REDACTED> skrev:
> >
> > Hmm
> >
> > flush_downs cleans the msg queue, with alot msgs
> in
> > it, it takes some
> > time..
> >
> > Can you email me the test program?
> >
> > /Dan
> >
> > Anders Nygren writes:
> > > Hi
> > > I have found a strange thing in mnesia. I was
> > trying
> > > to do some throughput measurement on a process.
> > >
> > > My process does the following:
> > > 1, receive one message
> > > 2, make one mnesia:select
> > > 3, send one message
> > >
> > > My test was to send N identicat messages to my
> > process
> > > and measure the time it took to process all
> > messages.
> > > To my suprise the times grew non-linearly with
> N.
> > > eprof shows that
> > > N = 10 - > mnesia:flush_downs/0 is called 55
> > times
> > > N = 100 -> mnesia:flush_downs/0 is called 5000
> > times
> > > N = 4000 -> a whopping 4 million times.
> > >
> > > Also if I run the test twice with 50 messages I
> > get
> > > 2500 mnesia:flush_downs, but when I run one
> test
> > with
> > > 100 messages there are 5000.
> > >
> > > I the mnesia table has one record.
> > > I am using a single node -> no distribution.
> > > The table is type bag, disc_copy.
> > > I am using R9C on Suse 8.2.
> > >
> > > Is there something wrong with mnesia or is
> there
> > > something I dont understand?
> > >
> > > /Anders
> > >
> > > Yahoo! Mail - Gratis: 6 MB lagringsutrymme,
> > spamfilter och virusscan. Se mer på
> > http://se.mail.yahoo.com
> >
>
> Yahoo! Mail - Gratis: 6 MB lagringsutrymme,
> spamfilter och virusscan. Se mer på
http://se.mail.yahoo.com
> ATTACHMENT part 2 application/x-tar
name=files.tar.gz
Yahoo! Mail - Gratis: 6 MB lagringsutrymme, spamfilter och virusscan. Se mer på http://se.mail.yahoo.com
More information about the erlang-questions
mailing list