안녕하세요
회사에서 사용하고 있는 MariaDB 가 내릴 때 너무 오래 걸리는 것 같아서(마지막 내릴 때 몇시간 걸려서 정상 적으로 내려가긴 했습니다.)
온라인 서비스를 하고 있는 서버라 불안해서 확인하다 보니 swap를 너무 많이 사용하고 있는 것 아닌가 하는 생각이 듭니다.
CentOS 7
MariaDB 10.3.10 입니다.
[root@localhost~]# cat /proc/meminfo | MemTotal
MemTotal: 528286776 kB
[root@localhost ~]# free -m
total used free shared buff/cache available
Mem: 515905 215475 124664 301 175765 298674
Swap: 7628 6380 1248
[root@localhost ~]# top
Tasks: 321 total, 1 running, 319 sleeping, 0 stopped, 1 zombie
%Cpu(s): 6.3 us, 0.1 sy, 0.0 ni, 93.5 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 42.1/52828678+[|||||||||||||||||||||||||||||||||||||||||| ]
KiB Swap: 83.6/7812092 [|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ]
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3226 mysql 20 0 0.447t 0.200t 9896 S 207.0 40.6 51455:14 mysqld
my.cnf 파일중 일부 입니다.
===============================================
[mysqld]
... 생략 ...
innodb_buffer_pool_instances=64
key_buffer_size=10737418240
max_connections=1000
wait_timeout=1800
interactive_timeout=3600
query_cache_size=0
performance_schema=ON
sort_buffer_size=8388608
join_buffer_size=20971520
read_rnd_buffer_size=8388608
innodb_log_file_size=50G
general_log=1
general_log_file=/data/******/logs/mysql_history.log
# Slow LOG
slow_query_log=1
slow_query_log_file=/data/******/logs/mysql_slow.log
long_query_time=10
# Error LOG
log-error=/data/******/logs/mysql_error.log
# Binary LOG
log-bin=/data/******/logs/mysql_binary
binlog_cache_size=2M
max_binlog_size=50M
expire_logs_days=7
skip-host-cache
skip-name-resolve
=========================================================
동료가 처음 서비스 시작하면서 무슨 스크립트를 돌려서 나온 튜닝값으로 설정을 했다고 하네요.
DB를 자주 내리지 못하는 상황이라 조만간 2중화 솔루션 도입을 위해 12시간 중단 계획이 있는데
지난번에도 2중화 솔루션 도입을 위해 DB를 내리는데 1시간인가? 넘게 걸린 것으로 기억 됩니다.
하도 안내려가서 강제로 Kill 을 할뻔 했는데 제대로 내려가긴 했습니다만...
튜닝을 제대로 하지 못해서 메모리를 너무 많이 껴놓고도 스왑을 많이 사용하는 것 아닌가 하는 생각이 들어
고수님들의 고견을 듣고 싶어서 질문 올려 봅니다.
|