Skip to content

SQLite Memory Leak after 2.7.3 => 3.0.1 upgrade? #4976

@orlandothoeny

Description

@orlandothoeny

We upgraded ProxySQL from version 2.7.3 to 3.0.1 two weeks ago. We observe what seems to be a memory leak. The memory usage of ProxySQL is rising continously.
We didn't change any configuration when upgrading.

The memory seems to be increasing in the SQLite (sqlite3_memory_bytes metric) component.
Image
Before the upgrade, the memory usage graph was more or less flat.

We do not use query caching.

ProxySQL version: 3.0.1

We are running ProxySQL as a container inside a GCP GKE Kubernetes cluster.
Using the official image from Dockerhub: https://hub.docker.com/r/proxysql/proxysql
OS version:

$ uname -a
Linux proxysql-74cd984b99-sksng 6.6.72+ #1 SMP PREEMPT_DYNAMIC Fri Apr 11 08:55:21 UTC 2025 x86_64 GNU/Linux

$ cat /etc/*release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm

Configuration file:

datadir="/var/lib/proxysql"

admin_variables = {
    admin_credentials="REDACTED",
    stats_credentials="REDACTED"
    read_only=false
    mysql_ifaces="0.0.0.0:6032"
}

mysql_variables = {
    threads=4
    max_connections=2048
    # 5 minutes in ms
    default_query_timeout=300000
    interfaces="0.0.0.0:6033;0.0.0.0:6034;0.0.0.0:6035;0.0.0.0:6036;0.0.0.0:6037;0.0.0.0:6038"
    default_schema="information_schema"
    server_version="8.0.20"
    # 1.5s
    connect_timeout_server=1500
    # 3s
    connect_timeout_server_max=3000
    connect_retries_on_failure=1
    monitor_username="REDACTED"
    monitor_password="REDACTED"
    # 600s
    monitor_history=600000
    # 5s
    monitor_connect_interval=5000
    # 1s
    monitor_connect_timeout=1000
    # 2s
    monitor_ping_interval=2000
    # 1.5s
    monitor_read_only_interval=1500
    # 800ms
    monitor_read_only_timeout=800
    # 10s
    ping_interval_server_msec=10000
    # 300ms
    ping_timeout_server=300
}

mysql_servers = (
    REDACTED
)

mysql_users = (
	REDACTED
)

mysql_query_rules = (
	{
		rule_id=1
		active=1
        proxy_port=6034
        destination_hostgroup=1
        apply=1
	},
	{
		rule_id=2
		active=1
		proxy_port=6033
		destination_hostgroup=0
		apply=1
	},
	{
		rule_id=3
		active=1
		proxy_port=6035
		destination_hostgroup=2
		apply=1
	},
	{
		rule_id=4
		active=1
        proxy_port=6037
        destination_hostgroup=4
        apply=1
	},
	{
		rule_id=5
		active=1
		proxy_port=6036
		destination_hostgroup=3
		apply=1
	},
	{
		rule_id=6
		active=1
		proxy_port=6038
		destination_hostgroup=5
		apply=1
	}
)

mysql_replication_hostgroups = (
    {
        writer_hostgroup=0
        reader_hostgroup=1
    },
    {
        writer_hostgroup=3
        reader_hostgroup=4
    }
)

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions