Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-12425

MariaRocks: Tests require too much disk space

Details

    Description

      MariaRocks tests take a lot of diskspace. Buildbot's test runs fail because of "Disk full" errors.
      The disk in this case is /dev/shm so the amount of space is limited, and we don't want to make a really-generous-upper-bound assumption about how much space is required.

      Need to investigate.

      Attachments

        1. screenshot-1.png
          70 kB
          Sergei Petrunia
        2. screenshot-2.png
          94 kB
          Sergei Petrunia

        Issue Links

          Activity

            - MyRocks
            - Vanilla 10.2

            psergei Sergei Petrunia added a comment - - MyRocks - Vanilla 10.2

            That is, MyRocks can take up to 2.5G, while vanilla 10.2 tests use at most 550M.
            Will now try to identify the biggest disk hog tests and mark them as "big tests".

            psergei Sergei Petrunia added a comment - That is, MyRocks can take up to 2.5G, while vanilla 10.2 tests use at most 550M. Will now try to identify the biggest disk hog tests and mark them as "big tests".
            psergei Sergei Petrunia added a comment - - edited

            Running MyRocks tests with --parallel=1 and checking disk space usage after each test, I get the following (note that it's not an exact metric because tests typically delete their data at the end I only see the left overs):

            935120	rocksdb.bulk_load
            598700	rocksdb.add_index_inplace_sstfilewriter
            451032	rocksdb.rpl_statement_not_found
            450768	rocksdb.rpl_statement
            450732	rocksdb.rpl_savepoint
            450716	rocksdb.rpl_row_stats
            450700	rocksdb.rpl_row_rocksdb
            348680	rocksdb.type_blob
            346756	rocksdb.type_text
            340104	rocksdb.rocksdb_range2
            339500	rocksdb_sys_vars.all_vars
            ...
            

            psergei Sergei Petrunia added a comment - - edited Running MyRocks tests with --parallel=1 and checking disk space usage after each test, I get the following (note that it's not an exact metric because tests typically delete their data at the end I only see the left overs): 935120 rocksdb.bulk_load 598700 rocksdb.add_index_inplace_sstfilewriter 451032 rocksdb.rpl_statement_not_found 450768 rocksdb.rpl_statement 450732 rocksdb.rpl_savepoint 450716 rocksdb.rpl_row_stats 450700 rocksdb.rpl_row_rocksdb 348680 rocksdb.type_blob 346756 rocksdb.type_text 340104 rocksdb.rocksdb_range2 339500 rocksdb_sys_vars.all_vars ...

            Scripts to run each test individually and watch its disk usage

            ~/mariadb-10.2/mysql-test$ cat watch-size.sh 
            #!/bin/bash
            sleep 2
            while true ; do 
              du -s var/ >> var-size.log 2>/dev/null
              sleep 1
            done
             
            ~/mariadb-10.2/mysql-test$ cat run-all.sh 
            #!/bin/bash
             
            ls ../storage/rocksdb/mysql-test/rocksdb/t/*test | 
            while read a ; do
              testname=`basename $a`;
              testname=${testname/.test/}
              echo "TEST: $testname" >> var-size.log
              ./watch-size.sh &
              ./mysql-test-run rocksdb.$testname;
              du -s var/ >> var-size.log
              kill `jobs -p`;
              sleep 1
            done
            

            psergei Sergei Petrunia added a comment - Scripts to run each test individually and watch its disk usage ~/mariadb-10.2/mysql-test$ cat watch-size.sh #!/bin/bash sleep 2 while true ; do du -s var/ >> var-size.log 2>/dev/null sleep 1 done   ~/mariadb-10.2/mysql-test$ cat run-all.sh #!/bin/bash   ls ../storage/rocksdb/mysql-test/rocksdb/t/*test | while read a ; do testname=`basename $a`; testname=${testname/.test/} echo "TEST: $testname" >> var-size.log ./watch-size.sh & ./mysql-test-run rocksdb.$testname; du -s var/ >> var-size.log kill `jobs -p`; sleep 1 done

            Conversion of script output to SQL is not fully automated...
            For "rocksdb" test suite:

            select 
              testname, max(size) as MAX_DISK_SIZE 
            from var_logs 
            group by testname
            order by MAX_DISK_SIZE desc;
            

            +-------------------------------------------+---------------+
            | testname                                  | MAX_DISK_SIZE |
            +-------------------------------------------+---------------+
            | bulk_load                                 |       2183400 |
            | add_index_inplace_sstfilewriter           |       1298452 |
            | rpl_statement_not_found                   |        239092 |
            | rpl_statement                             |        238964 |
            | rpl_row_rocksdb                           |        238848 |
            | cardinality                               |        238832 |
            | rpl_row_stats                             |        226312 |
            | rpl_savepoint                             |        226312 |
            | col_opt_not_null                          |        210120 |
            | rocksdb                                   |        200084 |
            | checkpoint                                |        198888 |
            | deadlock                                  |        169684 |
            | locking_issues                            |        140672 |
            | statistics                                |        138736 |
            | partition                                 |        138676 |
            | col_opt_null                              |        138084 |
            | autoinc_vars_thread_2                     |        136968 |
            | concurrent_alter                          |        133460 |
            | drop_table2                               |        132272 |
            | commit_in_the_middle_ddl                  |        132060 |
            | type_char_indexes_collation               |        131156 |
            | rocksdb_datadir                           |        130732 |
            | records_in_range                          |        128240 |
            | rocksdb_checksums                         |        128116 |
            | rocksdb_range2                            |        127484 |
            | no_merge_sort                             |        127348 |
            ...
            

            psergei Sergei Petrunia added a comment - Conversion of script output to SQL is not fully automated... For "rocksdb" test suite: select testname, max(size) as MAX_DISK_SIZE from var_logs group by testname order by MAX_DISK_SIZE desc; +-------------------------------------------+---------------+ | testname | MAX_DISK_SIZE | +-------------------------------------------+---------------+ | bulk_load | 2183400 | | add_index_inplace_sstfilewriter | 1298452 | | rpl_statement_not_found | 239092 | | rpl_statement | 238964 | | rpl_row_rocksdb | 238848 | | cardinality | 238832 | | rpl_row_stats | 226312 | | rpl_savepoint | 226312 | | col_opt_not_null | 210120 | | rocksdb | 200084 | | checkpoint | 198888 | | deadlock | 169684 | | locking_issues | 140672 | | statistics | 138736 | | partition | 138676 | | col_opt_null | 138084 | | autoinc_vars_thread_2 | 136968 | | concurrent_alter | 133460 | | drop_table2 | 132272 | | commit_in_the_middle_ddl | 132060 | | type_char_indexes_collation | 131156 | | rocksdb_datadir | 130732 | | records_in_range | 128240 | | rocksdb_checksums | 128116 | | rocksdb_range2 | 127484 | | no_merge_sort | 127348 | ...

            Marked bulk_load and add_index_inplace_sstfilewriter as big tests.

            psergei Sergei Petrunia added a comment - Marked bulk_load and add_index_inplace_sstfilewriter as big tests.

            Closing as buildbot doesn't report "out of disk space" issues after this change.

            psergei Sergei Petrunia added a comment - Closing as buildbot doesn't report "out of disk space" issues after this change.

            People

              psergei Sergei Petrunia
              psergei Sergei Petrunia
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Git Integration

                  Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.