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
'programing' 카테고리의 다른 글
CSS 스타일 각진 방법JS 지시? (0) | 2023.10.14 |
---|---|
Visual Studio 2017과 관련된 Node.js 서버 프로세스를 끌 수 있습니까? (0) | 2023.10.14 |
[object Object]의 의미는 무엇입니까?(자바스크립트) (0) | 2023.10.14 |
데이터 정렬이란 무엇입니까?C에 캐스팅 포인터를 입력할 때 왜 그리고 언제 걱정해야 합니까? (0) | 2023.10.14 |
gcc 옵션 "-fm메시지 길이"의 의미는 무엇입니까? (0) | 2023.10.14 |