[Ubuntu] MySQL 8 메모리 줄이기

[Ubuntu] MySQL 8 메모리 줄이기
Photo by Rubaitul Azad / Unsplash

사용환경

  • OS : Ubuntu 22.04 LTS (Jammy Jellyfish)
  • DB : MySQL 8.0.34

A. 작업이유

현재 iwinv를 통해서 아주 작은 사이즈의 가상서버를 임대해서 사용하다보니 메모리가 1 GB뿐이다. 문제는 DB인 MySQL을 올려야하고 NodeJS로 구동되는 ghost 블로그까지 올리려니 서비스를 다 올리고나면 가용메모리가 너무 적다(대략 80MB 정도...)

매주 OS 업데이트 작업을 진행하는데 가용메모리가 적다보니 OS 업데이트 (apt update && apt upgrade)하다가 서버가 Out of Memory로 Hang이 걸리는 문제가 있어서 매번 ghost 서비스를 내려놓고 작업을 하고 있었다.

거기에 이번에 ghost 업그레이드를 진행하려고 하니 가용메모리가 부족하다면서 업그레이드가 막히는 문제까지... 결국 MySQL이 사용하는 메모리를 좀 회수해야겠다는 생각이 들었다.(애초에 가상서버의 등급을 1단계 올린 것도 MySQL 돌리려고...)

B. 작업

구글링을 통해서 몇 개의 문서들을 검토해보니, 대부분은 성능이슈로 나와는 다르게 MySQL이 사용하는 메모리를 늘리는 경우였다. 그래도 나처럼 MySQL이 사용하는 메모리를 줄이려는 사람이 있어서 해당 문서를 토대로 작업을 진행했다.

$ sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

위 설정파일을 열어서 제일 하단에 아래의 내용을 넣었다.

performance_schema = off
innodb_buffer_pool_size = 100M
max_connections = 10
max_user_connections = 5

그 뒤에는 MySQL 서버를 재기동!

$ sudo systemctl restart mysql.service

원래는 참고문서에 있는 설정을 그대로 했더니... MySQL 서버가 올라가면서 죽어버려서 딱 필요해보이는 설정만 골랐다. 그랬더니 정상적으로 기동완료!

C. 점검

작업 후 free 명령어로 가용한 메모리 확인을 해보면...

$ free -m
               total        used        free      shared  buff/cache   available
Mem:             957         437         304           1         215         368
Swap:              0           0           0
$

free 메모리가 96 -> 304로 대폭 상승!(시간이 지나면서 조금씩 줄긴함...) (나중에 다시 읽어보니 free만 볼게 아니라 buff/cache 값도 같이 봤어야하는데... 포스팅 완료하고 기존 콘솔데이터가 남지 않아서 알 수가 없다... 그래도 유의미하게 MySQL 메모리 사용율이 떨어진 것은 사실이니.. 대충 넘어간다;;)

그래도 가용한 메모리가 10% 정도였다가 31.7%로 늘어났으니 아마 숨통이 트일 것 같다.

MySQL 메모리를 회수하고나서 ghost를 사용해봤는데 아직까진 특별히 느리다거나 하는 느낌을 들진 않는다.

D. 참고문서

  1. [MySql] mysql 사용 메모리 줄이기, 코드루덴스, codens, 2019/09/23

Read more

[Oracle] DB계정 생성 시 참고사항

[Oracle] DB계정 생성 시 참고사항

사용환경 * Oracle DBMS : 19c (19.3) A. 시작하기 전에.. 최근에 몇 개의 DB서버를 셋팅하면서 DB계정을 생성할 일이 많이 있었는데 루틴하게 수행하던 쿼리에 약간 의문이 생겨서 몇 가지 테스트를 해봤다. 그 내용을 잘 기억하기 위해서 정리해서 적어본다.(누군가한테 도움이 될 수도 있지만 실제론... 이렇게 블로그 포스트로 만들다보면 결국 내 기억에 각인이

By simplism
[Linux] Mariadb Docker container 설치

[Linux] Mariadb Docker container 설치

A. 사용환경 * OS : Rocky Linux 9.5 (Blue Onyx) * Docker : 28.0.4 * Portainer : 2.27.3 LTS B. 시작하기 전에... 어떤 소프트웨어를 사용하더라도 보통 Database는 거의 필수로 필요한 편이다.(요즘엔 SQLite도 많이써서... DB서버가 없어도 되긴하지만 어쨌든!) 업무적으로 사용할 소프트웨어들을 몇개 검토해봤는데, 대부분이 MySQL, Mariadb, PostgreSQL이더라. 일단, 바로 설치해서 사용해볼

By simplism
[Linux] Docker에 Portainer 설치

[Linux] Docker에 Portainer 설치

A. 사용환경 * OS : Rocky Linux 9.5 (Blue Onyx) * Docker : 28.0.4 B. Portainer란? docker를 사용할 때 명령어 기반으로 사용해도 되지만... 여전히 GUI는 필요하다.(ㅎㅎ) Portainer를 간단하게 설명하면 docker 관리소프트웨어(웹기반)정도로 이해해도 된다. Portainer 공식 홈페이지에서 확인해보면 기능이 아주 많은 것 같은데... 사실 나의 경우에는 아주 단순한 기능만

By simplism