2016-10-22 2 views
0

드루팔 (Drush 7 Drupal 7 사이트에 몇 개의 노드와 85 모듈이있는 데이터베이스 업데이트를 만들려고합니다 ... 업데이트가 거의 매번 죽을 때마다, VPS의 경우 512MB의 컨테이너 서비스MySQL이 메모리를 덜 사용하는 방법?

메모리 부족 : 메모리가 충분하지 MySQL은, nginx를, PHP-FPM 등), ...

매번 MySQL의는 지금까지의 내가 로그에서 이해할 수있는 커널에 의해 살해됩니다 : kill 프로세스 4310 (mysqld)

내 질문은 어떻게하면 " 암살? mysqld 프로세스의 메모리 소비를 줄이기 위해 MySQL 구성 파일의 매개 변수는 무엇입니까?

저는 DEV에 속해있어서 프로세스가 느려지더라도 괜찮습니다. 메모리를 늘리지 않고 업데이트 프로세스에서 생존하기 위해 조정해야하는 매개 변수를 알고 싶습니다.

도움 주셔서 감사합니다.

답변

1

이러한 매개 변수가 수십 가지 있습니다. 자세한 내용은 mysql server system variables 설명서에서 확인할 수 있습니다. 일반적으로 단어가 size 인 변수를 찾습니다. 특히 기본값이 128MB이고 전용 서버의 권장 값이 실제 메모리의 80 %이기 때문에 innodb_buffer_pool_size을 확인하십시오.

+0

80 % 작은 VM 너무 많이 ...이 도움이되기를 바랍니다. –

+0

나는 그가 80 %로 설정해야한다고 말하지 않았다. 나는이 특별한 설정이 권장 설정이 80 %이기 때문에 일반적으로 높은 레벨로 설정되어 있기 때문에이 설정을 지적했다. – Shadow

+0

감사합니다. innodb_buffer_pool_size가 가장 중요합니다. MySQL이 도커 컨테이너 안에 있고 컨테이너에 대한 설정이 잘못 되었기 때문에 처음에는 설정을 사용하지 못했습니다. 이제 컨테이너가 my.cnf 파일을 읽고 모든 것이 예상대로 작동합니다. –

1

소량의 RAM이있는 VM이 ​​있습니까? 그리고 여러 가지를 실행하고 있습니다 (Drupal, MySQL)? 당신이 운 좋게도 작동 할 수 있습니다. 이 설정 충분히 실행하려면 MySQL이 축소 충분할 수있다 :

한편
key_buffer_size = 5M 
innodb_buffer_pool_size = 60M 

는 my.cnf 파일에서 어떤 값을 증가하지 않습니다. 내 제안이 충분하지 않은 경우; my.cnf를 모두 보겠습니다. 합리적으로 감소 될 수있는 다른 것들이있을 수 있습니다.

실행중인 MySQL 버전은 무엇입니까?

+0

감사합니다 릭. MySQL은 "my.cnf"파일을 읽지 않아서 작동하게하기 위해 내가 뭘 조정해야하는지에 대해 의심 스러웠습니다. MySQL은 도커 컨테이너 안에 있었고 config가 올바르지 않습니다. MySQL은 DEV 환경에서 낮은 메모리 소비로 완벽하게 작동 할 수 있습니다. –

1

VPS 512M에 나를 위해 작업이 설정은

[mysqld] 
performance_schema = off 
port = 3306 
datadir = /var/lib/mysql 
socket = /var/lib/mysql/mysql.sock 

key_buffer_size = 16M 
query_cache_size = 2M 
query-cache-limit = 1M 
tmp_table_size = 1M 
innodb_buffer_pool_size = 1M 
innodb_additional_mem_pool_size = 1M 
innodb_log_buffer_size = 1M 
max_connections = 25 

sort_buffer_size = 512M 
read_buffer_size = 256K 
read_rnd_buffer_size = 512K 
join_buffer_size = 128K 
thread_stack = 196K 
binlog_cache_size = 0M 

# Disabling symbolic-links is recommended to prevent assorted security risks 
#symbolic-links=0 
# Settings user and group are ignored when systemd is used. 
# If you need to run mysqld under a different user or group, 
# customize your systemd unit file for mariadb according to the 
# instructions in http://fedoraproject.org/wiki/Systemd 

[mysqld_safe] 
log-error=/var/log/mariadb/mariadb.log 
pid-file=/var/run/mariadb/mariadb.pid 

# 
# include all files from the config directory 
# 
!includedir /etc/my.cnf.d 
관련 문제