programing

ubuntu@aws 마이크로 인스턴스에서 mysql의 메모리 사용량 감소

codeshow 2023. 10. 14. 10:46
반응형

ubuntu@aws 마이크로 인스턴스에서 mysql의 메모리 사용량 감소

저는 최근 작은 웹 앱을 개발 중인 PoC 프로젝트를 시작했습니다.초기 설정은 AWS의 마이크로 인스턴스에서 수행됩니다.우리는 레일스+mysql 스택에 있습니다.

MySQL을 설치/실행한 후 약 500MB 이상의 RAM이 이미 사용되었음을 알 수 있습니다. 나머지 시스템에는 거의 남아 있지 않습니다(마이크로 인스턴스의 RAM은 620MB에 불과함).

이 단계에서 우리의 앱은 꽤 간단합니다.MySQL 서버에서 소모되는 메모리를 줄이기 위해 제가 할 수 있는 일이 있습니까?

도와주셔서 감사합니다.

MySQL 8.0.30 기준:

편집:/etc/mysql/my.cnf파일을 작성한 후 다음을 추가합니다.

[mysqld]
performance_schema = 0

mysql 서버를 다시 시작하면 행복이 따라옵니다.

예 mysql 합니다(: mysql )을 mysql -u root -p 및 합니다를 합니다.

SHOW VARIABLES LIKE '%perf%';

맨 위에 다음 줄이 표시됩니다.

| performance_schema  | OFF   |

를 읽어야 .OFF 읽혀진다면.ON..

MySQL 구성 파일(my.cnf)에서 이 설정 변경

key_buffer              = 8M 
max_connections         = 30 # Limit connections
query_cache_size        = 8M # try 4m if not enough 
query_cache_limit       = 512K
thread_stack            = 128K

다른 답을 덧붙이기 위해서입니다.최근에 아마존 마이크로 인스턴스(Ubuntu가 아닌)에서 이 문제가 발생했습니다.my.cnf 파일이 거의 비어있으므로 다음 작업을 수행했습니다.

cp /etc/my.cnf /etc/my.cnf.orig
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

my.cnf를 편집하고 해당되는 경우 innodb 행을 활성화합니다.내 sqld를 다시 시작합니다.

마이크로 인스턴스에도 스왑이 없으므로 문제가 될 수 있습니다.

SWAPFILE=/mnt/swapfile.swap
dd if=/dev/zero of=$SWAPFILE bs=1M count=512
mkswap $SWAPFILE
swapon $SWAPFILE

그런 다음 /etc/rc.local add에서:

/mnt/swap 파일에서 스왑합니다.

루비에 메모리를 저장하려면 루비 엔터프라이즈를 사용해야 합니다.

bash < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer)
gpasswd -a root rvm
source /etc/profile.d/rvm.sh
rvm get head
rvm reload
rvm install ree
rvm --default use ree

저는 500mb 램밖에 없는 서버를 가지고 있는데, mysql이 제 테이블이 커짐에 따라 램을 많이 사용하기 시작했다는 것을 발견했습니다.여러 설정을 가지고 놀다가 메모리 사용량을 줄인 것은 모든 테이블을 MyISAM으로 변환하는 것이었습니다.innodb 테이블을 MyISAM으로 변환하는 기능이 필요 없다면 꽤 도움이 됩니다.다음과 같은 테이블을 변환할 수 있습니다.

ALTER TABLE test.mytable ENGINE=MyISAM;

이 변경 후 메모리 사용량이 20% 감소한 것을 확인했습니다.메모리 사용량을 더욱 줄이려면 테이블을 모두 MyISAM으로 변환한 다음 mysql에서 nodb 지원을 모두 해제하면 됩니다.이로 인해 메모리 사용량이 50% 감소했습니다.

다음을 추가하여 이 작업을 수행할 수 있습니다.

[mysqld]
default_storage_engine=myisam
innodb=OFF

mysql을 다시 시작합니다.

스와프 파일 sudo file sudo fallocate -l 2G /swap file sudo mod 600 /swap file sudo sudo swap on /swap file sudo sudo swap on /etc/fstab /etc/fstab을 구성합니다.박수도 나노 /etc/fstab

끝에 다음 행을 추가하고 저장한 후 닫습니다. /swapfile swap defaults 0

sudo sysctl vm.swappiness=10 sudo vi /etc/ sysctl.conf

마지막에 다음 행을 추가하고 저장한 후 닫습니다. vm.swappiness=10

PHP sudo nano /opt/bitnami/php/etc/memory.conf 구성

; Bitnami memory configuration for PHP-FPM
;
; Note: This will be modified on server size changes
pm.max_children=10
pm.start_servers=2
pm.min_spare_servers=2
pm.max_spare_servers=10
pm.max_requests=5000

MariaDB(MySQL) sudo nano /opt/bitnami/mariadb/conf/bitnami/memory.conf 구성

[mysqld]
#wait_timeout = 120
long_query_time = 1
query_cache_limit=2M
query_cache_type=1
query_cache_size=8M
innodb_buffer_pool_size=16M
#innodb_log_file_size=128M
#innodb_flush_method=O_DIRECT
tmp_table_size=16M
max_connections = 100
max_user_connections = 250
key_buffer_size=8M

sudo /opt /bitnami /ctlscript.재시동

언급URL : https://stackoverflow.com/questions/10676753/reducing-memory-consumption-of-mysql-on-ubuntuaws-micro-instance

반응형