[MDEV-21399] Unknown variable 'innodb_numa_interleave' Created: 2019-12-27  Updated: 2020-09-02  Resolved: 2020-03-31

Status: Closed
Project: MariaDB Server
Component/s: Compiling, Storage Engine - InnoDB
Affects Version/s: 10.4.11
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: acsfer Assignee: Daniel Bartholomew
Resolution: Won't Fix Votes: 0
Labels: None

Issue Links:
Duplicate
duplicates MDEV-18860 innodb_numa_interleave is not availab... Closed

 Description   

[ERROR] /usr/sbin/mysqld: unknown variable 'innodb_numa_interleave=1'



 Comments   
Comment by Marko Mäkelä [ 2019-12-27 ]

acs-ferreira, where did you install MariaDB from? I think that this is an issue with the build environment or build scripts; the source code for this parameter has not been removed.

Comment by acsfer [ 2019-12-27 ]

From http://ams2.mirrors.digitalocean.com/mariadb/repo/10.4/ubuntu/ (Ubuntu 18.04) with a simple

apt install mariadb-server

Comment by Elena Stepanova [ 2020-01-26 ]

http://buildbot.askmonty.org/buildbot/builders/kvm-deb-bionic-amd64/builds/3707/steps/compile/logs/stdio

WITH_NUMA=OFF: NUMA memory allocation policy disabled

I don't see it in initial compilation options, so I guess it gets disabled because it doesn't find the library.

Comment by Daniel Bartholomew [ 2020-03-31 ]

Closing this (and MDEV-18860) as "Won't Fix" because enabling libnuma will add a dependency to our packages, which is a big no-no for stable releases. If you really need this you'll need to compile your own packages or bintars.

Comment by Axel Schwenke [ 2020-09-01 ]

When the MariaDB server is started with mysqld_safe, then there is the --numa-interleave option, that causes all memory allocations from the server to be interleaved on all NUMA nodes. This should go into my.cnf:

[mysqld_safe]
numa-interleave=1

When the MariaDB server is started by systemd, then there is a corresponding option for the MariaDB unit file:

[Service]
NUMAPolicy=interleave

Comment by Axel Schwenke [ 2020-09-01 ]

The Knowldge Base documents several mysqld_safe options and their counterparts with systemd. It has an alternative solution for --numa-interleave. It might be better to use the solution from the KB, as I'm not sure what version of systemd supports NUMAPolicy and how widely it is available.

Comment by Daniel Black [ 2020-09-01 ]

Systemd version v243rc1

Older systemd versions ignore directives

kb updated.

Comment by Marko Mäkelä [ 2020-09-02 ]

The configuration parameters in mysqld_safe and systemd slightly differ from what the libnuma dependency in InnoDB is doing, because they should affect all memory allocation, while InnoDB only controls the allocation of the buffer pool. Other global buffers, such as the redo log record buffer, would be allocated using the defaults.

My intuition suggests that it might be useful to treat strictly thread-local memory allocations differently from allocations of memory that is likely frequently accessed by multiple threads. It could be interesting to compare WITH_NUMA=ON to the ‘wrapper’ solution in a read-only benchmark (read-only, so that the allocation of the redo log buffer would not matter).

If benchmarks suggest that WITH_NUMA=ON is not faster, then maybe we should remove the compile-time option altogether. Else, we should consider introducing the build dependency in a future major version.

Generated at Thu Feb 08 09:06:50 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.