Otis Gospodnetic wrote:
Perhaps the container logs explain what happened?
How about just throttling to the point where the failure rate is 0%? Too slow?

Otis's questions regarding dropped inserts sent me back to the drawing board. The system had been tuned to a slower database to optimize speed and accept a few drops. When I migrated to a faster DB I didn't retune. Here are results of testing indexing performance for Tomcat and Jetty. The DB speedup apparently moved the bottleneck from getting records from the database (around 400 rps) to cramming records into the servlet container.


System:               16 processor, 2.5 ghz, 64G memory
Index:                  33 Gig, freshly optimized, avg recordsize 1.4k
Insert load:         250,000 records

I calculate records/sec by dividing the number of successful inserts by the time. The adjusted time is the estimated time it would take to insert the full 250,000 records with no errors, which is raw time plus the additional time required to insert those dropped records, ie, raw time * (1 + error-rate * 0.01). Judging from processor/memory/io utilization, it appears the write speed of a single java thread is dominating the solr indexing speed. Which makes sense.


Takehome lessons:

  The speed limit is about 450 records per second in our environment.

Three or four threads posting inserts max out speed. More threads don't help.

Jetty is significantly faster than Tomcat at sane thread counts in our environment

I hope this is useful.
          -Jim

PS: If you have formatting issues with this table, try viewing with a fixed width font Tomcat Jetty _____________________________________________________________ ____________________________________________________________

# threads Raw time # Drops % Error Records/sec Adj. time Raw time # Drops % Error Records/sec Adj. time 16 533 17131 6.85 436.9 569.51 594 24222 9.69 380.1 651.55 15 520 16878 6.75 448.31 555.1 518 28581 11.43 427.45 577.22 14 547 16378 6.55 427.1 582.83 496 30047 12.02 443.45 555.61 13 540 16638 6.65 432.15 575.91 495 27076 10.83 450.35 548.61 12 545 15920 6.36 429.5 579.66 494 28785 11.51 447.8 550.88 11 523 16192 6.47 447.05 556.84 484 26495 10.6 461.79 535.29 10 540 15643 6.26 433.99 573.8 497 27190 10.88 448.31 551.05 9 553 15543 6.21 423.97 587.34 494 25862 10.34 453.72 545.1 8 541 14095 5.64 436.05 571.51 501 23482 9.39 452.13 548.06 7 549 10735 4.29 435.82 572.55 499 24657 9.86 451.59 548.22 6 566 9468 3.79 424.97 587.45 502 23074 9.23 452.04 548.33 5 588 7754 3.10 411.98 606.23 527 20779 8.31 434.95 570.8 4 577 4201 1.68 425.99 586.69 513 16608 6.64 454.96 547.08 3 613 0 0 407.83 613 537 9503 3.8 447.85 557.41 2 801 0 0 312.11 801 633 0 0 394.94 633 1 1365 0 0 183.15 1365 1122 0 0 222.82 1122


Reply via email to