Ubuntu Server 10 LTS에서 MySQL을 설정하는 가장 효율적인 방법은 무엇입니까?

Ubuntu Server 10 LTS에서 MySQL을 설정하는 가장 효율적인 방법은 무엇입니까?

이 질문은 원래 stackoverflow.com에 있었지만 이 사이트에서 더 나은 답변을 얻을 수 있다고 들었습니다...

곧 매우 바쁜 사이트를 가진 클라이언트를 위해 웹 서버를 설정할 예정입니다. 그는 포럼을 가지고 있습니다.심플머신 포럼PHP로 작성된 SMF)는 실제로 변경할 수 없습니다. 하루에 400개 이상의 게시물과 하루 약 40,000건의 조회수로 매우 바쁘기 때문에 이것을 자체적으로 별도의 가상 사설 서버로 옮기고 싶습니다. SMF 버전(가장 안정적이고 가장 안정적인 프로덕션 버전 1.1)을 사용하면 실행하려면 MySQL이 필요하므로 PostgreSQL로 변경할 수 없습니다(아마도 선호할 것임).

Ubuntu Server 10 LTS에 MySQL Server를 설치할 때 가장 효율적인 방법을 찾을 수 있는지 궁금합니다. 저는 가능한 한 빨리 실행하여 리소스를 줄이고 서버의 리소스 제한을 초과하지 않도록 하고 싶습니다. 가상 사설 서버를 사용하면 리소스를 즉시 전환할 수 있는 옵션이 있지만 저는 그런 유형의 전문가가 아니기 때문에 MySQL Server가 최대한 효율적으로 설정되도록 하고 싶습니다.

저는 몇 가지 조사를 하다가 효율성을 보장하기 위해 이렇게 하라고 제안하는 기사를 발견했습니다.

# open mysql conf and set these settings:
#    key_buffer = 16k
#    max_allowed_packet = 1M
#    thread_stack = 64K
nano /etc/mysql/my.cnf
# restart mysql
/etc/init.d/mysql restart

누구든지 이 주제에 대한 몇 가지 팁, 힌트, 링크, 지식을 제공할 수 있습니까?

답변1

가장 먼저; Janne의 말이 맞습니다. 하루에 40,000개의 읽기와 400개의 쓰기는 로드가 0입니다. 거의 모든 종류의 설정에서 성능상의 단점이 전혀 없어야 합니다.

SMF를 사용하는 VPS에서 비슷한 설정을 실행하고 있습니다. APC를 활용하므로 캐싱 메커니즘으로 인해 많은 이점을 얻을 수 있다는 것을 알았습니다.

내 설정(내가 추천하는 설정):

  • 엔진스
  • MySQL(대부분의 SMF 테이블을 InnoDB로 변환)
  • PHP-FPM(확장성이 매우 높음, 소수의 생성으로 시작하도록 지정하면 리소스를 거의 사용할 수 없음)
  • APC 캐시

답변2

우선, 하루에 40,000건의 히트와 400개 이상의 게시물이 MySQL을 힘들게 할 만큼은 아닌 것 같습니다. 하루에 40,000개의 조회수는 하루 동안 확산된다면 초당 약 2개의 조회수이며, 게시물이 400개 이상이라는 것은 3분마다 새로운 게시물이 있다는 것을 의미합니다.

그리고 그것은 그리 많지 않습니다. 정말.

어떤 스토리지 엔진을 사용하고 있는지 언급하지 않았습니다. MyISAM 테이블을 사용하면 특히 다음을 조정해야 합니다.key_buffer그리고table_cache가치. InnoDB 테이블 사용innodb_buffer_pool_size가장 중요한 것입니다.

그만큼key_buffer = 16k귀하의 예에서는 이상하게 들립니다. 16킬로바이트 key_buffer? 절대 16M(메가바이트) 이상으로 설정하세요. 서버에 적당한 양의 메모리가 있으면 훨씬 더 커질 수 있습니다. 많은 MySQL 변수가연결전역 값이 아닌 특정 값이므로 서버 로드가 수천 개의 동시 MySQL 연결을 의미하는 경우 값을 조정해야 합니다. 그러나 일반적으로 소수의 연결만 있고 대규모 데이터 세트가 있는 경우 값을 조정해야 합니다.

관련 정보