InnoDB 버퍼 풀 크기 늘리기


11

MySql InnoDB의 버퍼 풀 크기 및 로그 파일 크기를 설정하는 데 어려움이 있습니다. 나는 MySql 전문가와는 거리가 멀지 만 주변을 읽었으며이를 변경하면 내 /etc/mysql/my.cnf 에이 줄을 추가하는 것 같습니다.

# Set buffer pool size to 50-80% of your computer's memory
innodb_buffer_pool_size=2048M
innodb_additional_mem_pool_size=512M
#
# Set the log file size to about 25% of the buffer pool size
innodb_log_file_size=256M
innodb_log_buffer_size=128M

서버에는 약 7GB의 메모리가 있으며 웹 서버도 실행 중이므로이 숫자는 괜찮은 시작점이라고 생각합니다. 그러나 서버를 저장하고 다시 시작한 후에는 변경 사항이 적용되지 않은 것 같습니다. 버퍼 풀이 여전히 16.0M에 있다고보고 한 Mysqltuner를 실행하려고 시도했습니다. 내가 뭘 잘못하고 있는지 알아? 구성 파일을 더 보려면 알려주세요. 감사!


어떤 분포? 배포판의 패키지 또는 다른 것을 사용하고 있습니까? mysql을 어떻게 시작합니까? 요컨대, 무엇을 설치하고 무엇을 설치했으며 어떻게 설치 했습니까?
— navaho

우분투 서버 x64 위에 기본 램프 스택입니다
— tgrosinger

/ opt / lampp / etc에 다른 구성 파일이 있으며 작동한다고 생각합니다.
— tgrosinger

답변:


7

확인하는 선은 이내 [mysqld]한 후 섹션 즉, [mysqld]하지만 다른 어떤 전에 [section]같은 [mysqldump].


그것들은 [mysqldump] 직전의 [mysqld]에서 올바른 섹션에 있습니다
— tgrosinger

2

MySQL 오류 로그에서 정보를 찾을 수 있습니다. 가장 큰 위치 /var/lib/mysql는 bigmem 커널이있는 32 비트 시스템입니까? 그렇다면 MySQL의 경우 2GB 이상을 처리 할 수 ​​없습니다.

또한-버퍼 풀 크기에 대해 MySQL 자체에서 확인하고 싶습니다 . 기본값 은 128M 이라는 점을 고려하면 16MB가 약간 떨어집니다 . 해당 서버의 MySQL 세션에 'SHOW VARIABLES LIKE'innodb_buffer_pool_size '를 입력하여이를 확인할 수 있습니다. 결과는 바이트입니다.


어떤 이유로 나는 그 디렉토리에 들어갈 수 없습니다. 나는 / var / lib에서 ls를 할 때 그것을 볼 수 있지만 CD로 넣으려고하면 "permission denied"가 나타납니다. sudo로 cd하려고하면 "No such file or directory"가 표시됩니다. 생각? Ubuntu Server의 64 비트 설치입니다.
— tgrosinger

my.cnf (/etc/my.cnf 또는 데비안 아마도 /etc/mysql/my.cnf)에 게시해야합니다.
— thinice

또한 버퍼 풀 크기에 대해 MySQL 자체에서 확인하고 싶습니다 . 기본값 은 128M 이라는 점을 고려하면 16MB가 약간 떨어집니다 . 해당 서버의 MySQL 세션에 'SHOW VARIABLES LIKE'innodb_buffer_pool_size '를 입력하여이를 확인할 수 있습니다. 결과는 바이트입니다.
— Thinice

1
sudo cdsudo가 올바른 권한으로 서브 쉘을 작성하고 완료되면 닫아서 시작 위치를 떠나기 때문에 작동하지 않습니다. sudo -s대신 시도하십시오 .
— Ladadadada

SHOW VARIABLES LIKE를 사용할 때 버퍼 풀 크기는 16777216이며 실제로 16M이라고 생각합니다. 여기 my.cnf가 있습니다 : hastebin.com/binaqeforu.vala 대단히 감사합니다!
— tgrosinger

2

제 경우에는 문제가있었습니다 innodb_buffer_pool_instances.

축소 innodb_buffer_pool_size했으므로 인스턴스 당 1GB 미만이되었으므로 반올림했습니다.

또한 인스턴스를 줄이면 마침내 풀 크기가 변경되었습니다 !


0

--no-defaults 또는 (-no-defaults)로 mysql을 시작하면 구성이 전혀로드되지 않습니다. --defaults-file (또는 -default-file, 확실하지 않음)도있어 특정 구성을로드합니다. 또한 편집 한 구성과 다른 구성인지 확인하십시오.

다음과 같이 시작할 수 있습니다.

--innodb_buffer_pool_size=2048M --innodb_log_buffer_size=512M

또는 이미 시작하고있는 매개 변수를 확인하고 그 중 하나가 구성을 생략하는지 확인하십시오.


우분투에서 어떻게 시작되는지 어떻게 알 수 있습니까? 아치에 익숙해 져서 rc.d 파일에 추가하려고했지만 여기에는 이와 같은 것이 보이지 않습니다.
— tgrosinger

Arch는 BSD Style Init를 사용하는 반면 Ubuntu는 SysV Init를 사용합니다. 따라서 /etc/init.d에 파일을 시작하고 옵션이 설정되는 / etc / defaults에 파일이 있습니다. 'ps -ef | grep mysql '현재 실행중인 옵션을 확인할 수 있습니다.
— juwi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.