성능 벤치마킹의 진실
쟁점:"동맹국의 성과를 측정하는 방식에 대한 재부팅이 필요하다. 여러 해동안 우리 산업은 소프트웨어가 실제로 운영될 때의 실행 방식을 알려주기 위해 합성 벤치마크에 의존해왔다. 대부분의 새로운 코드는 실제로 단일체 접근에서 더 많이 이동했으며, 오늘날의 응용 프로그램은 벤치마크와 일치하지 않는다. 정적 벤치마크의 단순성과 분산된 서비스의 복잡성 사이의 격차가 커지고 있으며, 성능은 특정 워크로드, 데이터 세트 및 종합적인 플랫폼에 좌우된다. 그러나 대부분의 전통적인 벤치마크는 실제 세계의 요구를 반영하지 않는 인위적인 대리인을 사용하며, 보통 하나의 구성 요소만 측정한 디자인된다. 이것은 개발자들에게 큰 골치거리가 될 수 있다. 합성 벤치마크에서 우수한 성능을 보더라도 실제 운영시에 실망할 수 있다. 해결책은 성능 엔지니어 중 한 명으로부터 직접들어보는 능동 벤치마킹 기술이다. 이제 세계에서 가장 존경받는 성능 엔지니어 중 한 명인 브랜든 그렉부터 직접 통화를 통해 들어보자."
""
"냐아, 저의 이름은 브랜든이고, 올해 초에 분석한 벤치마킹 프로세스를 공유하고 싶습니다. 새로운 프로세서가 있었고, CPU 마이크로 벤치마크를 통해 이전에 사용했던 인텔 프로세서보다 2.6배 빠르다는 결과가 나왔습니다. 2.6배는 엄청난 결과입니다. 이 결과를 토대로 어떻게 행동할 것인지 상상해보세요. 벤치마킹을 많이 한 저는 100개 가까운 벤치마크가 틀렸거나 심각하게 오도하는 것으로 요약했고, 이런 이유로 능동 벤치마킹이라는 것을 실시합니다. 벤치마크를 실행하는 동안 벤치마크를 분석하여 단순히 결과를 보고 통계 분석을 하는 것이 아니라는 것입니다."
""
"이 마이크로 벤치마크를 분석하는데 CPU 플레임 그래프를 사용했는데, 모든 CPU 시간이 하나의 함수에 소비되는 것으로 나타났습니다. 그래서 해당 함수를 더 자세히 들여다보기 위해 명령 수준 프로파일링을 사용했고, 결과적으로 85%의 CPU 시간이 나눗셈 명령어에 사용된 것으로 확인되었습니다. 이에 따라 다른 프로세서가 더 빠른 나눗셈 명령어를 갖고 있어서 2.6배 빠르다는 결과가 나왔음을 확인했습니다. 이 결과에 대한 Netflix 클라우드에 미치는 영향을 측정하기 위해 일부 마이크로서비스에서의 div 명령에 대한 시간을 측정했고, 이것이 프로덕션에서 1% 미만의 시간을 소비한다는 것을 확인했습니다."
""
"다른 사람들이 클라우드에서 작업을 이동한 결과, 클라우드에서의 성능 모니터링 카운터를 차단할 수 있는 하이퍼바이저가 있는 경우, pmcs를 사용하는 것이 어렵습니다. 또한, 클라우드에서의 입마련 수준 분석 도구가 작동하지 않게 할 수 있습니다. 제가 이전에 이와 같은 분석을 수행한 적이 있으며, 각 명령어와 그에 소요된 시간을 확인하고 무언가가 잘못되었다고 판단한 후, 클라우드에서 디버깅하고 프로파일링을 작동하게 만들었던 경험이 있습니다. 그러나 이는 고급 엔지니어링 활동이며, 여기에는 후견으로, 벤치마킹은 또한 주니어 수준의 활동으로 간주되는 동시에, 벤치마킹 분석의 진실을 파악하는 것은 정식 엔지니어링 활동입니다. 이 벤치마크 뿐만 아니라 대부분의 벤치마크가 틀렸거나 어떤 이유로 심각하게 오해되는 것으로 나타납니다. 이를 자세히 파악하기 위해 벤치마킹 체크리스트를 공개했으며, 첫 번째로 결과가 두 배가 되지 않는 이유와이 벤치마킹에서 어느 정도 민감해야 하는지에 대한 체크리스트는 흥미로울 것입니다."
""
"이것은 현실적으로 어렵지만, 지금은 수직 쌓기와 같은 신기술이 등장하고 있으며 프로세서의 혁신적 기술이 증가하고 있다는 것은 흥미로운 일입니다. 그러나 클라우드에서 디버깅하는 것은 매우 어렵기 때문에, 벤치마크 기술도 매우 어려운 시대가 도래했습니다. 이는 이전보다 발전된 프로세서와 그들의 새로운 기능에 대한 증가한 이해 수요로 이어집니다. 그러나 너무 많은 벤치마크가 오류가 있거나 오도된 것으로 보여집니다. 좋은 벤치마크는 혁신을 장려하며 모두에게 도움이 되므로, 여러분도 좋은 벤치마킹을 수행해보시기를 희망합니다. 끝. " 와 같이 가치없이 주제를 재생 합니다.