Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-1888

Decrease runtime of pull request tester

    • Type: Icon: Task Task
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • WT2.7.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      The pull request tester is currently taking over 20 minutes to complete an iteration.

      Ideally it would take less than 10 minutes. We should look at ways to reduce the runtime.

      I pulled the content of the pull request tester into a shell script, and timings for the various stages are:

      Starting s_all at Tue Apr 14 07:14:50 UTC 2015
      Starting reconf at Tue Apr 14 07:15:34 UTC 2015
      Starting configure1 at Tue Apr 14 07:15:42 UTC 2015
      Starting configure2 at Tue Apr 14 07:16:36 UTC 2015
      Starting configure3 at Tue Apr 14 07:17:30 UTC 2015
      Starting configure4 at Tue Apr 14 07:18:34 UTC 2015
      Starting make check at Tue Apr 14 07:18:41 UTC 2015
      Starting test suite at Tue Apr 14 07:23:06 UTC 2015
      Done at Tue Apr 14 07:27:24 UTC 2015
      

      The above timings are from a larger (and less loaded) AWS instance than the Jenkins machine. I presume they extrapolate to relatively larger values on the slower machine.

      The

      Unable to find source-code formatter for language: s_all```. Available languages are: actionscript, ada, applescript, bash, c, c#, c++, cpp, css, erlang, go, groovy, haskell, html, java, javascript, js, json, lua, none, nyan, objc, perl, php, python, r, rainbow, ruby, scala, sh, sql, swift, visualbasic, xml, yaml
       takes less than a minute. Maybe it could be faster, but it's not a big contributor.
      
      The four configure steps take about a minute each. There is some duplication here - I think we could remove two of them, but the tester is setup to match the main 

      wiredtiger

       job now, so we should choose whether to keep them matching (change both) or let them diverge.
      
      The make check takes ~5 minutes, of that about 3 minutes is spent running 

      test/fops

      . The fops tests are horribly slow on the AWS machines. They run quickly on 

      tmpfs

       - maybe we could add a home directory argument to 

      test/fops

      , then add a 

      smoke.sh

       that sets the home directory to 

      /dev/shm

       if it exists.
      
      A run of the Python test suite takes just over 5 minutes. If I run the test suite on a tmpfs instead of the ssd on the AWS box it takes under 3 minutes. I think we should trial adding a 

      if [ -e /dev/shm ]; then extra_test_args="-D /dev/shm/WT_TEST"; fi{{`}} or similar to the Jenkins jobs. We'll need to be careful about running out of space on the tmpfs drive.

            Assignee:
            david.hows David Hows
            Reporter:
            alexander.gorrod@mongodb.com Alexander Gorrod
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: