[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: |
|
||||||||
| Description |
|
|
| 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
| ||||
| Comment by Elena Stepanova [ 2020-01-26 ] | ||||
|
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 | ||||
| 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:
When the MariaDB server is started by systemd, then there is a corresponding option for the MariaDB unit file:
| ||||
| 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. |