Почему MySQLTuner видит только 4 ГБ ОЗУ?
-
26-09-2020 - |
Вопрос
Я запустил MySQLTuner, чтобы проверить конфигурацию базы данных MySQL, и он сообщил об этой проблеме:
[!!] Maximum possible memory usage: 40.9G (1022% of installed RAM)
Эти цифры получены в результате вычислений max_connections
умножается на read_buffer_size
+ sort_buffer_size
+ join_buffer_size
в my.cnf
файл, который фактически дает 40Гб.
Однако на сервере 128 ГБ оперативной памяти.Похоже, что MySQL видит только 4 ГБ.
Сначала я подумал, что это потому, что 32-битный двоичный файл MySQL в 64-битной ОС может эффективно получить доступ только к 4 ГБ ОЗУ..Однако как двоичный файл MySQL, так и ОС являются 64-битными:
root@box# isainfo -v
64-bit amd64 applications
pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp ahf cx16 sse3 sse2 sse
fxsr mmx cmov amd_sysc cx8 tsc fpu
32-bit i386 applications
pclmulqdq aes sse4.2 sse4.1 ssse3 popcnt tscp ahf cx16 sse3 sse2 sse
fxsr mmx cmov sep cx8 tsc fpu
root@box# uname -a
SunOS box 5.11 11.2 i86pc i386 i86pc
root@box# file /usr/local/bin/mysql
/usr/local/bin/mysql: ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR CMOV FPU], dynamically linked, not stripped
и нет ограничений на объем памяти, к которому может получить доступ процесс:
root@box# ulimit -a
address space limit (kbytes) (-M) unlimited
core file size (blocks) (-c) unlimited
cpu time (seconds) (-t) unlimited
data size (kbytes) (-d) unlimited
file size (blocks) (-f) unlimited
locks (-x) not supported
locked address space (kbytes) (-l) not supported
message queue size (kbytes) (-q) not supported
nice (-e) not supported
nofile (-n) 256
nproc (-u) 29995
pipe buffer size (bytes) (-p) 5120
max memory size (kbytes) (-m) not supported
rtprio (-r) not supported
socket buffer size (bytes) (-b) 5120
sigpend (-i) 128
stack size (kbytes) (-s) 8192
swap size (kbytes) (-w) not supported
threads (-T) not supported
process size (kbytes) (-v) unlimited
Есть ли другой способ узнать, сколько памяти эффективно использует MySQL?
(Если вы спросите, оболочка — это tcsh;Я не могу пометить публикацию как «tcsh» из-за недостаточных прав.)
Решение
Это не проблема MySQL - сам MySQLTuner не может видеть больше памяти, если он работает с 32-битным интерпретатором Perl.