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

high memory consumption after upgrade to 10.6, especially during mysqldump

    XMLWordPrintable

Details

    • Bug
    • Status: Closed (View Workflow)
    • Major
    • Resolution: Incomplete
    • 10.6.12
    • N/A
    • None
    • None
    • EL8, mariadb 10.6.12 (official yum repo)

    Description

      After upgrading from mariadb 10.3 to 10.6 we are having a lot of issues with memory filling up and abnormal memory usage.

      General info:

      # cat /etc/redhat-release
      Red Hat Enterprise Linux release 8.7 (Ootpa)
       
      # uname -a
      Linux xxxxxxxxx 4.18.0-425.19.2.el8_7.x86_64 #1 SMP Fri Mar 17 01:52:38 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
       
      # rpm -qa | grep -i maria
      MariaDB-common-10.6.12-1.el8.x86_64
      MariaDB-shared-10.6.12-1.el8.x86_64
      MariaDB-client-10.6.12-1.el8.x86_64
      MariaDB-server-10.6.12-1.el8.x86_64
       
      # yum info jemalloc
      Installed Packages
      Name         : jemalloc
      Version      : 5.2.1
      Release      : 2.el8
      Architecture : x86_64
      Size         : 762 k
      Source       : jemalloc-5.2.1-2.el8.src.rpm
      Repository   : @System
      From repo    : epel
      Summary      : General-purpose scalable concurrent malloc implementation
      URL          : http://www.canonware.com/jemalloc/
      License      : BSD
      Description  : General-purpose scalable concurrent malloc(3) implementation.
                   : This distribution is the stand-alone "portable" implementation of jemalloc.
       
       
      MariaDB [(none)]>     SHOW VARIABLES LIKE 'version_malloc_library';
      +------------------------+------------------------------------------------------------+
      | Variable_name          | Value                                                      |
      +------------------------+------------------------------------------------------------+
      | version_malloc_library | jemalloc 5.2.1-0-gea6b3e973b477b8061e0076bb257dbd7f3faa756 |
      +------------------------+------------------------------------------------------------+
       
      # mysqltuner (partial output)
      [--] Up for: 2d 0h 17m 59s (4M q [26.215 qps], 73K conn, TX: 36G, RX: 2G)
      [--] Reads / Writes: 46% / 54%
      [--] Binary logging is enabled (GTID MODE: ON)
      [--] Physical Memory     : 15.4G
      [--] Max MySQL memory    : 7.5G
      [--] Other process memory: 0B
      [--] Total buffers: 6.4G global + 18.9M per thread (51 max threads)
      [--] Performance_schema Max memory usage: 165M
      [--] Galera GCache Max memory usage: 0B
      [OK] Maximum reached memory usage: 6.8G (44.24% of installed RAM)
      [OK] Maximum possible memory usage: 7.5G (48.66% of installed RAM)
      [OK] Overall possible memory usage with other process is compatible with memory available
       
      # free -m
                    total        used        free      shared  buff/cache   available
      Mem:          15800       12454         433         129        2911        2871
      Swap:          7995        5717        2278
       
       
      # top
          PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
        21026 mysql     20   0   22.8g  11.6g  14676 S   0.7  75.1 186:12.70 mariadbd
       
       
      MariaDB [(none)]> SHOW ENGINE INNODB STATUS \G;
      *************************** 1. row ***************************
        Type: InnoDB
        Name:
      Status:
      =====================================
      2023-04-30 13:44:34 0x7f17f729c700 INNODB MONITOR OUTPUT
      =====================================
      Per second averages calculated from the last 21 seconds
      -----------------
      BACKGROUND THREAD
      -----------------
      srv_master_thread loops: 0 srv_active, 0 srv_shutdown, 184831 srv_idle
      srv_master_thread log flush and writes: 184819
      ----------
      SEMAPHORES
      ----------
      ------------
      TRANSACTIONS
      ------------
      Trx id counter 108643
      Purge done for trx's n:o < 108643 undo n:o < 0 state: running
      History list length 3
      LIST OF TRANSACTIONS FOR EACH SESSION:
      ---TRANSACTION (0x7f17f8845480), not started
      0 lock struct(s), heap size 1128, 0 row lock(s)
      --------
      FILE I/O
      --------
      Pending flushes (fsync) log: 0; buffer pool: 0
      4712675 OS file reads, 783405 OS file writes, 115892 OS fsyncs
      0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s
      -------------------------------------
      INSERT BUFFER AND ADAPTIVE HASH INDEX
      -------------------------------------
      Ibuf: size 1, free list len 0, seg size 2, 0 merges
      merged operations:
       insert 0, delete mark 0, delete 0
      discarded operations:
       insert 0, delete mark 0, delete 0
      0.00 hash searches/s, 0.00 non-hash searches/s
      ---
      LOG
      ---
      Log sequence number 23625243328
      Log flushed up to   23625243328
      Pages flushed up to 22665988754
      Last checkpoint at  22665988754
      0 pending log flushes, 0 pending chkp writes
      88183 log i/o's done, 0.00 log i/o's/second
      ----------------------
      BUFFER POOL AND MEMORY
      ----------------------
      Total large memory allocated 6476005376
      Dictionary memory allocated 43952088
      Buffer pool size   389376
      Free buffers       0
      Database pages     389376
      Old database pages 143735
      Modified db pages  206924
      Percent of dirty pages(LRU & free pages): 53.142
      Max dirty pages percent: 90.000
      Pending reads 0
      Pending writes: LRU 0, flush list 0
      Pages made young 2346394, not young 729301125
      0.00 youngs/s, 0.00 non-youngs/s
      Pages read 4710099, created 324293, written 686951
      0.00 reads/s, 0.00 creates/s, 0.00 writes/s
      Buffer pool hit rate 1000 / 1000, young-making rate 0 / 1000 not 0 / 1000
      Pages read ahead 0.00/s, evicted without access 0.00/s, Random read ahead 0.00/s
      LRU len: 389376, unzip_LRU len: 0
      I/O sum[0]:cur[0], unzip sum[0]:cur[0]
      --------------
      ROW OPERATIONS
      --------------
      0 read views open inside InnoDB
      Process ID=0, Main thread ID=0, state: sleeping
      Number of rows inserted 10565449, updated 146566, deleted 9102732, read 2299931488
      0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 817.44 reads/s
      Number of system rows inserted 0, updated 0, deleted 0, read 0
      0.00 inserts/s, 0.00 updates/s, 0.00 deletes/s, 0.00 reads/s
      ----------------------------
      END OF INNODB MONITOR OUTPUT
      ============================
      

      `show global status;` and `my.conf` as attachments.

      1) After a service restart, the "normal" (backup/restore using mysqldump/restore disabled/not executed) memory usage seems to be around 11.5/12 GB: is that normal? Should it not be 7.5 GB max?

      2) If mysqldump is executed, memory usage increases by 2.5/3+ GB (memory will never be completely released?!). In version 10.3 that increase was lower (max 2GB) but memory used to be released (it seems at the beginning of mysqldump execution). See images `memory_usage.*.png` (mysqldump start @22:00, stop @22:40)

      Attachments

        1. my.conf
          2 kB
        2. memory_usage_106.png
          memory_usage_106.png
          106 kB
        3. memory_usage_103.png
          memory_usage_103.png
          101 kB
        4. global_status.txt
          62 kB

        Activity

          People

            Unassigned Unassigned
            bovy89@gmail.com Stefano Bovina
            Votes:
            0 Vote for this issue
            Watchers:
            2 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.