2012-07-12 11 views
4

현재 내 서버를 하드 드라이브의 MyISAM에서 SSD의 InnoDB로 전환하고 있습니다.SSD 벤치 마크 MySQL : 도구 및 전략

저는 벤치 마크 표로 테이블을 가지고 있습니다. 3,800,000 개의 행 (16GB)이 있습니다.

내 서버 설정 :

  • 우분투 64 + Nginx에 MySQL은 5.5 + ...

내가 마음에 두 가지를 그 내가 아주 많이 테스트하는 것 :

  • 하드 드라이브에서 SSD 로의 전환이 동시성에 미치는 영향
  • MyISAM에서 InnoDB 로의 전환이 동시성에 미치는 영향

나는 도구와 전략 모두에 관한 질문이 : 내가 동시성에 주로 관심 때문에

  • 을, 나는 테스트를 할 무엇을 사용해야 도구 ?Siege으로 게임을 해보니 정말 놀기 쉽습니다. 하지만 내 필요에 더 잘 맞는 더 강력한 리눅스 소프트웨어가 많이 있어야한다고 생각합니다.
  • 테스트 전략은 어떻게 생겼습니까? 본인은 전략 선택이 내가 선택한 도구와 긴밀한 관계가 있음을 이해합니다. 예를 들어, Siege로 게임을 할 때, MySQL 작업을 수행하는 PHP 스크립트를 작성하여 서버에 업로드하고 스크립트 URL을 Siege (로컬 랩톱에 설치된)의 매개 변수로 전달하고 Siege 나를위한 동시 트래픽을 시뮬레이션하십시오.
+0

16GB/380K rows :: 평균 행 크기가 32K를 초과합니다. 데이터 모델을 재 설계해야할까요? – wildplasser

+0

@wildplasser 미안하지만 3,800,000이어야합니다. 방금 내 질문을 업데이트했습니다. 그것을 지적 주셔서 감사합니다 !! –

답변

1

일반 테스트는 괜찮지 만 실제로드만으로 소프트웨어 & 하드웨어 구성의 차이점을 알 수 있습니다. 프로덕션 서버에서

  1. 덤프 데이터베이스
  2. 캡처 테스트 구성에
  3. 로드 데이터베이스 (LONG_QUERY_TIME = 0을 설정하는 데 사용하는 슬로우 쿼리 로그) 프로덕션 서버에서 모든 쿼리 및 슬로우 쿼리 로그를 재생 : 어쩌면 시도 (pt-log-player 사용).
  4. 다시 long_query_time = 0 인 테스트 서버에서 모든 쿼리를 캡처하십시오.
  5. pt-query-digest를 사용하여 느린 쿼리 로그의 결과를 분석하십시오.

여기 도구는 MySQL 용 Percona Toolkit입니다 (일부 도구에는 Percona Server가 필요할 수 있지만 확실하지는 않습니다).

1

SSD의 유형과 품질에 큰 차이가 있습니다. 서버 사용량이 많은 경우에는 mysql에 데스크탑 SATA SSD를 사용하지 마십시오. 당신이 생각하는 성능 향상을 얻지 못할 것입니다.

여기에 몇 가지 훌륭한 기사가 있습니다 http://www.mysqlperformanceblog.com/search/innodb+log+file+ssd/

2

리눅스에서 벤치마킹 MySQL의 스토리지 성능이 캐시 때 기억해야 할 중요한 것. 나도 똑같은 테스트 케이스에 대해 궁금했다. 사용자가 느린 쿼리에 대해 불평 할 때 항상 재미 있습니다. 그들은 당신에게 전화를 걸어서 50+ 분 쿼리가 쿼리 캐시 때문에 30 초 만에 완료된다는 것을 알기 위해서만 다시 실행합니다. 쿼리 최적화를 시도 할 때 항상

mysql> reset query cache; 

을 실행하십시오. 즉, SSD와 기존 스핀들을 비교할 때 디스크 캐시라는 단계가 하나 더 있습니다. OS가 자체적으로 메모리에 디스크를 캐싱 할 때 액세스 시간이나 IOps를 비교하는 것은 어렵습니다. 디스크 캐시를 지우려면 쉘에서 다음 실행 : 벤치 마크 쿼리의 각 전에 실행

$ sync && sysctl -w vm.drop_caches=3 

이 명령은 당신이 SATA은 당신이 굼벵이 그 7k2 비교하여 SSD의 잠재력을 실현하는 데 도움이됩니다. 캐시를 비우고 쿼리 시간을 관찰하지 않고 같은 쿼리를 두 번 실행하여이를 확인하십시오. 이 시점에서 인덱스가 있거나없는 쿼리와 가능한 경우 일부 조인을 시도하는 것이 좋습니다. 각 쿼리에 대해 EXPLAIN PLAN을 사용하여 인덱스가 사용되는지 확인하십시오. 인덱스와 데이터 파일 사이의 읽기를 임의로 액세스하면 느린 디스크에 병목 현상이 나타납니다. my.cnf가 SSD 벤치 마크와 플래터간에 일관성이 있는지 확인하십시오. 간단한 데스크탑 OCZ SSD에서 몇 가지 사항을 테스트하고 7200rpm SATA 디스크보다 10 배 빠른 쿼리 성능 향상을 확인했습니다. SSD 기반 트랜잭션 데이터베이스에서 SSD TRIM과 결합 된 빈번한 데이터베이스 압축이 디스크 수명에 영향을 줄 수 있으므로 OPTIMIZE TABLE을 사용할 때는주의해야합니다. 이론적인데, 나는 이것을 뒷받침 할 증거를 아직 보지 못했습니다.

희망이 도움이됩니다. 마그네틱 HD가 테이프를 백업 매체로 대체하고 대부분의 하드웨어에서 SSD로 완전히 대체되는 날을 기다릴 수는 없습니다.