[firebase-br] [Firebird-devel] Test of new GC thread

Carlos H. Cantu listas em warmboot.com.br
Qui Out 7 12:03:52 -03 2004


This is a forwarded message
From: Vlad Horsun <hvlad em users.sourceforge.net>
To: firebird-devel em lists.sourceforge.net
Date: Thursday, October 7, 2004, 9:31:35 AM
Subject: [Firebird-devel] Test of new GC thread

===8<==============Original message text===============
    Hi, All

    Since Arno fixed problems with indexes (thank you, 
Arno!) i can continue testing new garbage collector thread.

    Now i made multiuser test to see how gc_thread affects
performance. I run 16 isql's one by one (serial test) and 
simultaneously (parallel test), each of it execute the same 
script as in prior test.

    After each test series database was checked (gfix -v -f), 
gstat was running to see how much garbage left and sweeped.
Database has 512 page cache set.

Results :

1. No garbage collector thread
    a) serial test 
       runs               4
       avg run time      54.37
       sum run time     217.48
       garbage left   14252

    b) parallel test
       runs             16
       avg run time     35.14
       max run time     38.80
       garbage left  57008

2. Old garbage collector
    a) serial test 
       runs               4
       avg run time      54.09
       sum run time     216.34
       garbage left   14252

    b) parallel test
       runs             16
       avg run time     30.18
       max run time     37.93
       garbage left  57008

3. New garbage collector + cooperative gc
    a) serial test 
       runs              16
       avg run time       2.53
       sum run time      40.46
       garbage left       1

    b) parallel test
       runs             16
       avg run time     31.45
       max run time     39.48
       garbage left   1157

4. New "pure" garbage collector (no cooperative gc)
    a) serial test 
       runs              16
       avg run time       2.51
       sum run time      40.21
       garbage left       9

    b) parallel test
       runs             16
       avg run time     38.08
       max run time     39.92
       garbage left    750

    In (1) and (2) serial test was stopped after 4th run 
due to very long execution time (from 2.4 to 175 sec)

    New garbage collector implementation was described 
earlier in this list

    (3) New garbage collector + cooperative gc means :
when user thread reads record which have backversion than
user thread tried to purge it (if OST allows) or notified
garbage collector about it

    (4) New "pure" garbage collector means :
when user thread reads record which have backversion than
user thread just notified garbage collector about it (same
as old gc thread)


    Conclusions :

    a) run time of parallel test differs a little between 
       each gc strategy so we can say that new garbage 
       collector thread don't affect performance much 

    b) new gc_thread collects almost all garbage

    c) run time of parallel and serial tests with new 
       gc_thread are near equal, but serial test with
       old gc_thread (or without gc_thread) are slower
       and slower

Regards,
Vlad



-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
Firebird-Devel mailing list, web interface at https://lists.sourceforge.net/lists/listinfo/firebird-devel

===8<===========End of original message text===========








Mais detalhes sobre a lista de discussão lista