두 시스템의 메모리 성능 비교(낮은 버퍼 대 높은 캐시)

두 시스템의 메모리 성능 비교(낮은 버퍼 대 높은 캐시)

제가 소유한 두 컴퓨터의 성능을 비교하려고 합니다. 두 컴퓨터에 동일한 설정으로 데이터베이스가 설치되어 있습니다. 두 시스템 모두 동일한 양의 CPU(20개 코어)/메모리(65GB)를 갖습니다. 각 머신은 로컬 디스크가 있는 전용 esx의 가상 머신입니다.

두 컴퓨터 모두에서 동일한 작업을 실행하고 있지만 하드웨어가 동일하더라도 machine1보다 machine2에서 훨씬 더 나은 결과를 볼 수 있습니다. 근본 원인을 찾으려고 노력했고, 기억을 조사하는 것부터 시작했습니다. 두 시스템 모두에서 free -m의 출력을 관찰한 결과 작업 전반에 걸쳐 버퍼/공유/캐시 값이 매우 다른 것을 발견했습니다.

머신 1(평균) 사용됨 - 42GB, 버퍼 - 450MB, 공유 - 1.9GB, 캐시 - 39GB

머신 2(평균) 사용됨 - 58GB, 버퍼 - 2.8GB, 공유 - 4GB, 캐시 - 29GB,

내가 이해한 바에 따르면 캐싱은 최근에 디스크에서 읽은 데이터가 I/O를 절약하기 위해 캐시에 보관된다는 것을 의미합니다. 이는 캐시된 열이 더 크기 때문에(내 결과와는 달리) machine1에서 읽는 것이 더 빨라야 함을 의미합니다.

결과를 어떻게 설명할 수 있을까요? 또 무엇을 조사할 수 있나요?

답변1

기계를 그렇게 쉽게 비교할 수는 없습니다. 다음 사항을 해결해야 합니다.

  1. 호스트 시스템과 가상 머신의 동일한 디스크(속도, I/O 작업, 캐시, 디스크 파티셔닝 측면에서) 동일한 구성으로 LVM 등
  2. 동일한 소프트웨어 - 동일한 버전의 호스트 운영 체제, 동일한 패치, 동일한 설정을 실행해야 합니다.
  3. 동일한 VM - 각 VM에는 고유한 로드가 있으므로 이는 귀하의 경우에 가장 중요합니다.
  4. 또한 동일한 가상 머신은 시간, 해당 머신에서 실행되는 작업 등에 따라 다양한 유형의 로드를 표시할 수 있습니다.

답변2

2.8GB의 버퍼는 꽤 많은 용량입니다. 이는 무언가가 블록 장치에서 원시 I/O를 수행하고 있거나 파일 시스템 캐시를 우회하고 있음을 거의 확실하게 의미합니다. 이는 결국 드라이버나 그 위에서 실행하는 모든 것이 정확히 동일하지 않음을 의미합니다.

  • 실행 중인 소프트웨어 버전과 해당 구성을 비교하세요.
  • 커널 버전 비교
  • ESX 섹션에서 가상 머신의 하드웨어 에뮬레이션 비교
  • 그들이 실행되는 실제 하드웨어를 비교해 볼 가치가 있을 수도 있습니다.
  • 호스트의 커널 버전과 ESX 버전을 비교하는 것이 좋습니다.

관련 정보