문제

After running mysqltuner.pl, I get an Innodb write log efficiency way above 100 %. Why? What does it mean? There is no specific reccomendation from mysqltuner.

DB is MariaDB 10.1.26 on Debian 9.x with 1 GB RAM.

-------- InnoDB Metrics ----------------------------------------------------------------------------
[--] InnoDB is enabled.
[--] InnoDB Thread Concurrency: 0
[OK] InnoDB File per table is activated
[OK] InnoDB buffer pool / data size: 64.0M/9.0M
[OK] Ratio InnoDB log file size / InnoDB Buffer pool size: 8.0M * 2/64.0M should be equal 25%
[OK] InnoDB buffer pool instances: 1
[--] InnoDB Buffer Pool Chunk Size not used or defined in your version
[OK] InnoDB Read buffer efficiency: 100.00% (116110977 hits/ 116111816 total)
[!!] InnoDB Write Log efficiency: 4857.14% (10880 hits/ 224 total)
[OK] InnoDB log waits: 0.00% (0 waits / 11104 writes)

This is the configuration of InnoDb engine:

innodb                                                     ON
innodb-adaptive-flushing                                   TRUE
innodb-adaptive-flushing-lwm                               10
innodb-adaptive-hash-index                                 TRUE
innodb-adaptive-hash-index-partitions                      1
innodb-adaptive-max-sleep-delay                            150000
innodb-additional-mem-pool-size                            8388608
innodb-api-bk-commit-interval                              5
innodb-api-disable-rowlock                                 FALSE
innodb-api-enable-binlog                                   FALSE
innodb-api-enable-mdl                                      FALSE
innodb-api-trx-level                                       0
innodb-autoextend-increment                                64
innodb-autoinc-lock-mode                                   1
innodb-background-scrub-data-check-interval                3600
innodb-background-scrub-data-compressed                    FALSE
innodb-background-scrub-data-interval                      604800
innodb-background-scrub-data-uncompressed                  FALSE
innodb-buf-dump-status-frequency                           0
innodb-buffer-page                                         ON
innodb-buffer-page-lru                                     ON
innodb-buffer-pool-dump-at-shutdown                        FALSE
innodb-buffer-pool-dump-now                                FALSE
innodb-buffer-pool-dump-pct                                100
innodb-buffer-pool-filename                                ib_buffer_pool
innodb-buffer-pool-instances                               1
innodb-buffer-pool-load-abort                              FALSE
innodb-buffer-pool-load-at-startup                         FALSE
innodb-buffer-pool-load-now                                FALSE
innodb-buffer-pool-populate                                FALSE
innodb-buffer-pool-size                                    67108864
innodb-buffer-pool-stats                                   ON
innodb-change-buffer-max-size                              25
innodb-change-buffering                                    all
innodb-changed-pages                                       ON
innodb-checksum-algorithm                                  INNODB
innodb-checksums                                           TRUE
innodb-cleaner-lsn-age-factor                              HIGH_CHECKPOINT
innodb-cmp                                                 ON
innodb-cmp-per-index                                       ON
innodb-cmp-per-index-enabled                               FALSE
innodb-cmp-per-index-reset                                 ON
innodb-cmp-reset                                           ON
innodb-cmpmem                                              ON
innodb-cmpmem-reset                                        ON
innodb-commit-concurrency                                  0
innodb-compression-algorithm                               zlib
innodb-compression-failure-threshold-pct                   5
innodb-compression-level                                   6
innodb-compression-pad-pct-max                             50
innodb-concurrency-tickets                                 5000
innodb-corrupt-table-action                                assert
innodb-data-file-path                                      (No default value)
innodb-data-home-dir                                       (No default value)
innodb-default-encryption-key-id                           1
innodb-defragment                                          FALSE
innodb-defragment-fill-factor                              0.9
innodb-defragment-fill-factor-n-recs                       20
innodb-defragment-frequency                                40
innodb-defragment-n-pages                                  7
innodb-defragment-stats-accuracy                           0
innodb-disable-sort-file-cache                             FALSE
innodb-doublewrite                                         TRUE
innodb-empty-free-list-algorithm                           BACKOFF
innodb-encrypt-log                                         FALSE
innodb-encrypt-tables                                      OFF
innodb-encryption-rotate-key-age                           1
innodb-encryption-rotation-iops                            100
innodb-encryption-threads                                  0
innodb-fake-changes                                        FALSE
innodb-fast-shutdown                                       1
innodb-fatal-semaphore-wait-threshold                      600
innodb-file-format                                         Antelope
innodb-file-format-check                                   TRUE
innodb-file-format-max                                     Antelope
innodb-file-io-threads                                     4
innodb-file-per-table                                      TRUE
innodb-flush-log-at-timeout                                1
innodb-flush-log-at-trx-commit                             1
innodb-flush-method                                        (No default value)
innodb-flush-neighbors                                     1
innodb-flushing-avg-loops                                  30
innodb-force-load-corrupted                                FALSE
innodb-force-primary-key                                   FALSE
innodb-force-recovery                                      0
innodb-foreground-preflush                                 EXPONENTIAL_BACKOFF
innodb-ft-aux-table                                        (No default value)
innodb-ft-being-deleted                                    ON
innodb-ft-cache-size                                       8000000
innodb-ft-config                                           ON
innodb-ft-default-stopword                                 ON
innodb-ft-deleted                                          ON
innodb-ft-enable-diag-print                                FALSE
innodb-ft-enable-stopword                                  TRUE
innodb-ft-index-cache                                      ON
innodb-ft-index-table                                      ON
innodb-ft-max-token-size                                   84
innodb-ft-min-token-size                                   3
innodb-ft-num-word-optimize                                2000
innodb-ft-result-cache-limit                               2000000000
innodb-ft-server-stopword-table                            (No default value)
innodb-ft-sort-pll-degree                                  2
innodb-ft-total-cache-size                                 640000000
innodb-ft-user-stopword-table                              (No default value)
innodb-idle-flush-pct                                      100
innodb-immediate-scrub-data-uncompressed                   FALSE
innodb-instrument-semaphores                               FALSE
innodb-io-capacity                                         200
innodb-io-capacity-max                                     18446744073709551615
innodb-kill-idle-transaction                               0
innodb-large-prefix                                        FALSE
innodb-lock-schedule-algorithm                             fcfs
innodb-lock-wait-timeout                                   50
innodb-lock-waits                                          ON
innodb-locking-fake-changes                                TRUE
innodb-locks                                               ON
innodb-locks-unsafe-for-binlog                             FALSE
innodb-log-arch-dir                                        (No default value)
innodb-log-arch-expire-sec                                 0
innodb-log-archive                                         FALSE
innodb-log-block-size                                      512
innodb-log-buffer-size                                     16777216
innodb-log-checksum-algorithm                              INNODB
innodb-log-compressed-pages                                TRUE
innodb-log-file-size                                       8388608
innodb-log-files-in-group                                  2
innodb-log-group-home-dir                                  (No default value)
innodb-lru-scan-depth                                      1024
innodb-max-bitmap-file-size                                104857600
innodb-max-changed-pages                                   1000000
innodb-max-dirty-pages-pct                                 75
innodb-max-dirty-pages-pct-lwm                             0.001
innodb-max-purge-lag                                       0
innodb-max-purge-lag-delay                                 0
innodb-metrics                                             ON
innodb-mirrored-log-groups                                 0
innodb-monitor-disable                                     (No default value)
innodb-monitor-enable                                      all
innodb-monitor-reset                                       (No default value)
innodb-monitor-reset-all                                   (No default value)
innodb-mtflush-threads                                     8
innodb-mutexes                                             ON
innodb-old-blocks-pct                                      37
innodb-old-blocks-time                                     1000
innodb-online-alter-log-max-size                           134217728
innodb-open-files                                          0
innodb-optimize-fulltext-only                              FALSE
innodb-page-size                                           16384
innodb-prefix-index-cluster-optimization                   FALSE
innodb-print-all-deadlocks                                 FALSE
innodb-purge-batch-size                                    300
innodb-purge-threads                                       1
innodb-random-read-ahead                                   FALSE
innodb-read-ahead-threshold                                56
innodb-read-io-threads                                     4
innodb-read-only                                           FALSE
innodb-replication-delay                                   0
innodb-rollback-on-timeout                                 FALSE
innodb-rollback-segments                                   128
innodb-sched-priority-cleaner                              19
innodb-scrub-log                                           FALSE
innodb-scrub-log-speed                                     256
innodb-show-locks-held                                     10
innodb-show-verbose-locks                                  0
innodb-simulate-comp-failures                              0
innodb-sort-buffer-size                                    1048576
innodb-spin-wait-delay                                     6
innodb-stats-auto-recalc                                   TRUE
innodb-stats-include-delete-marked                         FALSE
innodb-stats-method                                        nulls_equal
innodb-stats-modified-counter                              0
innodb-stats-on-metadata                                   FALSE
innodb-stats-persistent                                    TRUE
innodb-stats-persistent-sample-pages                       20
innodb-stats-sample-pages                                  8
innodb-stats-traditional                                   TRUE
innodb-stats-transient-sample-pages                        8
innodb-status-file                                         FALSE
innodb-status-output                                       FALSE
innodb-status-output-locks                                 FALSE
innodb-strict-mode                                         TRUE
innodb-support-xa                                          TRUE
innodb-sync-array-size                                     1
innodb-sync-spin-loops                                     30
innodb-sys-columns                                         ON
innodb-sys-datafiles                                       ON
innodb-sys-fields                                          ON
innodb-sys-foreign                                         ON
innodb-sys-foreign-cols                                    ON
innodb-sys-indexes                                         ON
innodb-sys-semaphore-waits                                 ON
innodb-sys-tables                                          ON
innodb-sys-tablespaces                                     ON
innodb-sys-tablestats                                      ON
innodb-table-locks                                         TRUE
innodb-tablespaces-encryption                              ON
innodb-tablespaces-scrubbing                               ON
innodb-thread-concurrency                                  0
innodb-thread-sleep-delay                                  10000
innodb-tmpdir                                              (No default value)
innodb-track-changed-pages                                 FALSE
innodb-trx                                                 ON
innodb-undo-directory                                      .
innodb-undo-logs                                           128
innodb-undo-tablespaces                                    0
innodb-use-atomic-writes                                   FALSE
innodb-use-fallocate                                       FALSE
innodb-use-global-flush-log-at-trx-commit                  TRUE
innodb-use-mtflush                                         FALSE
innodb-use-native-aio                                      TRUE
innodb-use-stacktrace                                      FALSE
innodb-use-sys-malloc                                      TRUE
innodb-use-trim                                            FALSE
innodb-write-io-threads                                    4
도움이 되었습니까?

해결책

That seems to be computed from

abs(Innodb_log_write_requests - Innodb_log_writes)  hits /
    Innodb_log_write_requests  total

where the values come from SHOW GLOBAL STATUS.

"..._write_requests" are when InnoDB needs to write something to iblog on disk. However, writes are buffered in the buffer_pool in hopes of collecting multiple things together a single write once ("..._writes").

Normally multiple "requests" would eventually result in a single "write".

The "abs()" is to hide negative numbers (more writes than requests). Those don't make sense, but do seem to happen.

In the hundred servers I checked, none got more than 100%.

I would ignore the metric -- mysqltuner has issues, and InnoDB seems to be doing something extra with the number to make them less then useful for comparing in this way.

It's hard to get into any performance problems (that tuning can fix) when you have only 9MB of data+index.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 dba.stackexchange
scroll top