MariaDB在Ubuntu上的资源占用情况
MariaDB作为Ubuntu系统上的主流开源数据库,其资源占用表现受版本、配置及负载情况影响,以下从基础资源占用、配置优化后的占用、常见资源瓶颈及排查方向三方面说明:
安装MariaDB后(如Ubuntu 20.04/22.04 LTS搭配10.3/10.6版本),默认配置下的资源占用如下:
systemctl status mariadb
显示内存占用57.0M;Ubuntu 20.04安装10.3版本后,内存占用66.0M~70.4M)。默认配置可能不适合生产环境(如内存较小的服务器),通过调整核心参数可显著降低资源占用:
performance_schema
(性能模式,占用约10%~20%内存),调小innodb_buffer_pool_size
(InnoDB缓冲池,默认1G,可降至1M~16M)、query_cache_size
(查询缓存,默认1M,可保留但需监控)、tmp_table_size
(临时表大小,默认16M,可降至1M)等。innodb_buffer_pool_size
设为1M、tmp_table_size
设为1M等调整后,MariaDB内存占用从默认的87MB降至22MB,完全满足低内存环境的运行需求。MariaDB在Ubuntu上的资源占用问题多集中在CPU和内存,常见原因及排查方法如下:
top -Hu mysql
查看高CPU线程,结合SHOW FULL PROCESSLIST;
(或DBeaver等工具)找出慢SQL,再用EXPLAIN
分析执行计划,添加合适索引优化。例如某项目中,500万条数据的表因msg_id
字段无索引,导致查询耗时3.84s、CPU占用93%,添加索引后查询时间缩短至16ms,CPU负载恢复正常。innodb_buffer_pool_size
设置过大(如超过物理内存的70%),或连接数过多(max_connections
默认151,可根据需求调整)。需根据服务器内存大小合理分配缓冲池,并通过SHOW STATUS LIKE 'Threads_connected';
监控当前连接数。为及时掌握MariaDB在Ubuntu上的资源占用情况,可使用以下工具:
top -Hu mysql
过滤MySQL用户进程);iotop -o -u mysql
),排查磁盘瓶颈;vmstat 1
每秒刷新一次);