Proxmox – Jak snížit alokaci RAM pro MySQL v LXC

By | 08/08/2025

Last Updated on 08/08/2025 by administrator

Proxmox – Jak snížit alokaci RAM pro MySQL v LXC

Proxmox – Jak snížit alokaci RAM pro MySQL v LXC

Motivace:

Provozuji menší LXC kontejner na Proxmox, na kterém mi běží aplikace Speedtest pro měření rychlosti doma. Všiml jsem si, že po upgradu LXC konteineru, se mi zvýšila alokace paměti pro MySQL i přesto, že se provedl minor patch MySQL.

Původní verze MySQL – před apt-upgrade:

root@speedtest-u24:~# mysql --version
mysql Ver 8.0.42-0ubuntu0.24.04.1 for Linux on x86_64 ((Ubuntu))

Aktuální verze MySQL – po apt-upgrade:

root@speedtest-u24:~# mysql --version
mysql Ver 8.0.42-0ubuntu0.24.04.2 for Linux on x86_64 ((Ubuntu))

MySQL si tak alokovala přes 66% celkové kapatity z 512 MB RAM .

Proxmox - Jak snížit alokaci RAM pro MySQL v LXC

Není to bug, ale změna výchozí konfigurace v MySQL 8, která není přátelská k malým LXC kontejnerům. Stačí ale upravit pár parametrů v configu a MySQL bude běžet i na 512 MB RAM bez problémů.

Implementace:

Jak snížit alokaci RAM pro MySQL v LXC:

Vytvořit nový konfigurační soubor lowmem.cnf v /etc/mysql/conf.d/ složce :

vi /etc/mysql/conf.d/lowmem.cnf

a vložit do něj následující řádky níže:

[mysqld]
# Menší InnoDB buffer
innodb_buffer_pool_size = 64M
innodb_buffer_pool_instances = 1

# Menší redo log a log buffer
innodb_log_file_size = 32M
innodb_log_buffer_size = 8M

# Omezit počet spojení
max_connections = 20

# Menší dočasné tabulky
tmp_table_size = 16M
max_heap_table_size = 16M

# Vypnout performance schema (šetří RAM)
performance_schema = off

# Malá thread cache
thread_cache_size = 2

Provést restart MySQL:

systemctl restart mysql

Ověření úspory paměti:

root@speedtest-u24:~# top

Jak lze vidět spotřeba RAM pro MySQL klesla z 66 % na 27 %:

Proxmox - Jak snížit alokaci RAM pro MySQL v LXC

Zdroj:

[1] https://github.com/iistarion/lowmem-mysql/blob/master/low-memory-my.cnf

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *