MySQL 데이터베이스 호스팅을 위한 서버 구성

MySQL 데이터베이스 호스팅을 위한 서버 구성

가상 서버에서 호스팅되는 MySQL 데이터베이스를 사용하는 웹 애플리케이션이 있습니다. 저는 애플리케이션을 시작할 때와 데이터베이스가 정말 작았을 때 이 서버를 사용해 왔습니다. 이제는 규모가 커져 서버가 db를 처리할 수 없게 되어 db 오류가 자주 발생하고 있습니다. 서버를 확보할 계획인데 이에 대한 제안이 필요합니다.
내가 말했듯이, DB는 이제 9GB이며 상당히 빠르게 증가하고 있습니다. 자주 업데이트되고 쿼리되는 수백만 개의 행이 있는 테이블이 많이 있습니다. DB에서 가장 자주 표시되는 오류는 입니다 Lock wait timeout exceeded. 이전에는 "총 잠금 수가 잠금 테이블 크기를 초과합니다" 오류도 있었지만 Innodb 버퍼 풀 크기를 늘려 이를 방지할 수 있었습니다.
구입해야 하는 서버에서 어떤 구성을 찾아야 하는지 제안해 주세요. DB가 이상적으로는 데이터 크기보다 큰 버퍼 풀 크기를 가져야 한다는 내용을 읽었으므로 제 경우에는 9GB의 메모리가 필요할 것 같습니다. 서버에서 어떤 다른 사항을 찾아야 합니까?

다음에 대해 더 많은 정보를 제공해야 하는지 알려주세요.

답변1

이름이 지정된 Perl 스크립트를 사용할 수 있습니다.MySQL튜너조정할 변수에 대한 아이디어를 얻고 필요한 경우 하드웨어를 업그레이드할 수 있습니다.
그러나 설정을 수정하기 전에 설정을 이해해야 합니다. 그렇지 않으면 문제가 악화될 위험이 있습니다.

스크립트 자체에는 매우 통찰력 있는 팁이 포함되어 있습니다.

*경고
MySQL 데이터베이스 서버에 대한 각 변경 사항을 완전히 이해하는 것이 매우 중요합니다. 스크립트 출력의 일부를 이해하지 못하거나 권장 사항을 이해하지 못하는 경우 지식이 풍부한 DBA 또는 신뢰할 수 있는 시스템 관리자에게 문의해야 합니다. 항상 스테이징 환경에서 변경 사항을 테스트하고 한 영역의 개선이 다른 영역의 MySQL에 부정적인 영향을 미칠 수 있다는 점을 항상 염두에 두십시오.
*경고

Percona의 주제에 관한 훌륭한 기사를 찾을 수 있습니다.MySQL 성능 블로그, ㅏ책 목록해당 주제를 다루고 심지어 스크린캐스트까지percona.tv웹사이트.

답변2

잠금 대기를 조사해 보셨나요?

InnoDB 잠금 모니터를 활성화하면 이렇게 할 수 있습니다.

CREATE TABLE innodb_lock_monitor(a int) ENGINE=INNODB;

그런 다음 MySQL 오류 로그를 추적하십시오.

모니터를 비활성화하려면 테이블을 삭제하십시오.

HTH

관련 정보