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

MariaDB with XtraDB uses times more of IO events than with InnoDB plugin

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 5.5.38, 10.0.11
    • Fix Version/s: 5.5.39, 10.0.13
    • Component/s: None
    • Labels:
      None

      Description

      If MariaDB is started with default options, it uses several times more IO events than if it's started with InnoDB plugin, or than Percona server, or MySQL server.

      On my machine, if I run the server manually with all default options, the values are:

      MariaDB 5.5/10.0 with InnoDB plugin, Percona 5.5/5.6, MySQL 5.5/5.6:
      2661

      MariaDB 5.5/10.0 with XtraDB:
      14337

      With MTR the values are somewhat different, possibly due to non-default options, but the problem is still obvious:

      MariaDB 5.5/10.0 with InnoDB plugin, Percona 5.5/5.6, MySQL 5.5/5.6:
      4298

      MariaDB 5.5/10.0 with XtraDB:
      15050

      Apparently, it has been like that from early versions of MariaDB 5.5.

      While hitting the maximum is not a fatal problem for MariaDB, it still means that the native AIO will be switched off much earlier than it could have been.

      MTR test:

      --source include/have_innodb.inc
      
      --echo AIO count:
      --exec cat /proc/sys/fs/aio-nr
      

        Gliffy Diagrams

          Attachments

            Activity

            Hide
            jplindst Jan Lindström added a comment -

            Repeated:

            AIO count:
            3336
            innodb.innodb-aio-events 'innodb_plugin' [ pass ]      3
            AIO count:
            24840
            innodb.innodb-aio-events 'xtradb'        [ pass ]      5
            
            Show
            jplindst Jan Lindström added a comment - Repeated: AIO count: 3336 innodb.innodb-aio-events 'innodb_plugin' [ pass ] 3 AIO count: 24840 innodb.innodb-aio-events 'xtradb' [ pass ] 5
            Hide
            jplindst Jan Lindström added a comment -

            This is the difference:

            === modified file 'storage/xtradb/include/os0file.h'
            — storage/xtradb/include/os0file.h 2014-05-06 08:21:34 +0000
            +++ storage/xtradb/include/os0file.h 2014-07-04 04:26:43 +0000
            @@ -168,8 +168,8 @@
            #define OS_FILE_LOG 256 /* This can be ORed to type */
            /* @} */

            -#define OS_AIO_N_PENDING_IOS_PER_THREAD 256 /*!< Windows might be able to handle
            -more */
            +#define OS_AIO_N_PENDING_IOS_PER_THREAD 32 /*!< Win NT does not allow more
            + than 64 */

            Show
            jplindst Jan Lindström added a comment - This is the difference: === modified file 'storage/xtradb/include/os0file.h' — storage/xtradb/include/os0file.h 2014-05-06 08:21:34 +0000 +++ storage/xtradb/include/os0file.h 2014-07-04 04:26:43 +0000 @@ -168,8 +168,8 @@ #define OS_FILE_LOG 256 /* This can be ORed to type */ /* @} */ -#define OS_AIO_N_PENDING_IOS_PER_THREAD 256 /*!< Windows might be able to handle -more */ +#define OS_AIO_N_PENDING_IOS_PER_THREAD 32 /*!< Win NT does not allow more + than 64 */
            Hide
            jplindst Jan Lindström added a comment -

            10.0:

            revno: 4272
            committer: Jan Lindström <jplindst@mariadb.org>
            branch nick: 10.0-innodb
            timestamp: Fri 2014-07-04 08:09:27 +0300
            message:
            MDEV-6318: MariaDB with XtraDB uses times more of IO events
            than with InnoDB plugin

            Fix: os0file.h in XtraDB had OS_AIO_N_PENDING_IOS_PER_THREAD 256
            when on InnoDB it is OS_AIO_N_PENDING_IOS_PER_THREAD 32. Changed
            XtraDB also to use 32.

            Show
            jplindst Jan Lindström added a comment - 10.0: revno: 4272 committer: Jan Lindström <jplindst@mariadb.org> branch nick: 10.0-innodb timestamp: Fri 2014-07-04 08:09:27 +0300 message: MDEV-6318 : MariaDB with XtraDB uses times more of IO events than with InnoDB plugin Fix: os0file.h in XtraDB had OS_AIO_N_PENDING_IOS_PER_THREAD 256 when on InnoDB it is OS_AIO_N_PENDING_IOS_PER_THREAD 32. Changed XtraDB also to use 32.
            Hide
            jplindst Jan Lindström added a comment -

            5.5:

            revno: 4222
            committer: Jan Lindström <jplindst@mariadb.org>
            branch nick: 5.5
            timestamp: Fri 2014-07-04 08:16:45 +0300
            message:
            MDEV-6318: MariaDB with XtraDB uses times more of IO events
            than with InnoDB plugin

            Fix: os0file.h in XtraDB had OS_AIO_N_PENDING_IOS_PER_THREAD 256
            when on InnoDB it is OS_AIO_N_PENDING_IOS_PER_THREAD 32. Changed
            XtraDB also to use 32.

            Show
            jplindst Jan Lindström added a comment - 5.5: revno: 4222 committer: Jan Lindström <jplindst@mariadb.org> branch nick: 5.5 timestamp: Fri 2014-07-04 08:16:45 +0300 message: MDEV-6318 : MariaDB with XtraDB uses times more of IO events than with InnoDB plugin Fix: os0file.h in XtraDB had OS_AIO_N_PENDING_IOS_PER_THREAD 256 when on InnoDB it is OS_AIO_N_PENDING_IOS_PER_THREAD 32. Changed XtraDB also to use 32.

              People

              • Assignee:
                jplindst Jan Lindström
                Reporter:
                elenst Elena Stepanova
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0 minutes
                  0m
                  Logged:
                  Time Spent - 3 hours
                  3h