2016-11-15 1 views
0

32GB RAM MYSQL 서버가 있습니다. 아직 완전히 새로운 것으로 기본 데이터베이스를 제외한 모든 데이터베이스는 연결되어 있지 않습니다. 내가 free -m 명령을 실행할 때, 나는 다음과 같은 얻을 :MYSQL 기본 RAM 사용량

 total  used  free shared buff/cache available 
Mem: 32768  2972  29718  10  76  29692 
Swap: 16384  0  16384 

내가 호스트를 연결할 때, 그들은 MYSQL 기본적으로 메인 메모리의 10 %를 소비하는 나에게 말했다 그들은 다음과 같은 매개 변수를 구성 할 충고 : 내가 생각

key_buffer_size = 8192M 
myisam_sort_buffer_size = 10922M 
innodb_buffer_pool_size = 16384M 

그 값은 기본적으로 소비 무엇을하지 할당 할 수있는 최대 소비를 대표하고 그들은 MYSQL에 의해 권장되는 값입니다. 예를 들어 8192M/32768M (총 메모리) = 25 %가 권장 값입니다. 누구든지이 메모리 소비를 설명 할 수 있습니까? 내가 생각

답변

3

그 값은 너무 초기을 줄일 수 innodb_buffer_pool_size의 크기를 줄이고, 전체 InnoDB의 버퍼 풀은 서버 시작시 할당

기본적으로 소비 무엇을하지 할당 할 수있는 최대 소비를 나타냅니다 MySQL이 사용하는 메모리 사용량.

저는 key_buffer_sizemyisam_sort_buffer_size과 같은 다른 MySQL 버퍼에 대해서도 마찬가지라고 생각합니다.

그러나 이러한 매개 변수를 조정할 때 실제 서버 작업 부하를 고려해야합니다. 시작시 사용 된 메모리의 양은 부적합합니다. 흥미로운 점은 서버가 실제 데이터베이스에서 사용 중일 때 메모리 사용량이 어떻게 표시되는지입니다.

Jelastic을 사용하고 있다고 (다른 곳에서) 언급 했으므로이 설정을 수동으로 조정하려면 my.cnf (보통/1 행 근처)에서 #Jelastic autoconfiguration mark. 행을 삭제해야합니다. 그렇지 않으면 Cloudlet Scaling 한도에 맞게 자동으로 조정됩니다 (즉, Cloudlet Limits를 조정하거나 MySQL을 다시 시작할 때마다 변경 사항을 덮어 씁니다).

0

key_buffer_size

key_buffer_size 변수의 최대 크기는 32 비트 시스템 4 기가 바이트보다 큰 64 비트 시스템이다. key_buffer_size는 머신의 RAM의 25 % 이하로 유지하는 것이 좋습니다.

innodb_buffer_pool_size

권장 범위 : 60 ~ 80 %

MySQL 5.7 and it’s online buffer pool resize feature이 쉽게 원리를 따르도록해야한다.