XAMPP/Apache httpd 성능을 테스트하는 가장 안정적인 방법

XAMPP/Apache httpd 성능을 테스트하는 가장 안정적인 방법

너무 길어요. 다양한 컴퓨터와 클라우드 서비스에서 실행되는 XAMPP/Apache 서버의 성능을 테스트하고 비교하는 가장 좋고 신뢰할 수 있는 방법은 무엇입니까? 높은 수준의 결과(다양한 옵션 간의 성능 비교)가 필요한 경우 브라우저 응답 시간을 측정하는 것으로 충분합니까? 아니면 더 나은 옵션이 있습니까?


나는 사용하고있다마이크로소프트XAMPP네 가지 기어의 세 가지 버전(PHP PHP 7.4, 8.0 및 8.1 사용):

  • 아주 오래된 Windows XP 컴퓨터
  • Windows 10이 설치된 오래된 PC
  • 새로운 초고속 Windows 11 PC
  • 라즈베리 파이 3B+

또한 Linux가 설치된 12년 된 NAS와 AWS, Digital Ocean 및 OVH의 여러 클라우드 솔루션에서 Apache 서버(전체 XAMPP는 아님)를 사용합니다.

동시에 성능 테스트에 관해서는 아직 완전한 초보자입니다. 이러한 모든 장치에서 웹사이트 서비스/API 요청 처리 속도를 테스트하는 가장 좋고 가장 유망하거나 신뢰할 수 있는 방법은 무엇입니까?

제가 아는 한, 그러한 테스트의 범위나 기대치는 매우 높은 수준입니다. 나는 단지 나 자신을 가르치고 싶습니다:

  • 주어진 하드웨어를 사용하는 것이 (실제 컴퓨터의 맥락에서) 의미가 없습니까?
  • 서비스 구성/월 요금과 웹 서버 성능(클라우드 서비스인 경우) 사이에 명확하고 판독 가능한 상관 관계가 있습니까?

그래서 복잡한 결과나 보고서, 수치를 기대하지 않습니다. 다양한 하드웨어 및 클라우드 옵션에서 실행되는 동일한 소프트웨어(일반적으로 사용)의 결과를 차별화/비교할 수 있는 요소는 하나(또는 그 이상)뿐입니다.

저는 이 주제에 대한 초보자이기 때문에 떠오르는 유일한 아이디어는 브라우저에서 직접 각 요청을 수동으로 호출하고 브라우저의 개발 도구에서 보고된 응답 시간을 측정하는 것입니다. 더 좋은 게 있나요?


편집하다: 질문을 명확히하기 위해. 하드웨어를 테스트하고 싶지 않습니다. 테스트하고 싶은 사항:

  • 정확히 동일한 소프트웨어(XAMPP/Apache httpd)
  • 완전 똑같은 버전
  • 다양한 하드웨어(또는 클라우드) 플랫폼에서 실행

저는 여러 웹 애플리케이션의 작성자입니다(그러나 저는 개발자가 아닌 순전히 개발자이기 때문에 이 질문을 합니다). 이 모든 것은 순전히 내부(인트라넷)이며 전혀 공개되지 않습니다. 그들은 모두:

  • 완전히 동일한 플랫폼(XAMPP)을 사용하여 동일한 버전으로 제공됩니다.
  • 동일한 언어(PHP), 프레임워크(Yii 2) 및 버전을 사용하여 개발됨
  • 동일한 팀에 의해 개발되었으며 동일한 코딩 원칙을 사용합니다.

위의 내용을 바탕으로 서로 다른 웹 애플리케이션이라 할지라도 차이점은 거의 순전히 비즈니스(기능적)이므로 성능은 방문자 수 및 서비스에 사용되는 하드웨어와 밀접한 관련이 있다고 가정할 수 있습니다(그렇습니까?). 관련.

이러한 앱 중 일부는 하루에 3~5명이 액세스/사용하고, 일부는 시간당 50명이(최대) 액세스/사용합니다. 다양한 기어에서 XAMPP의 성능을 테스트하는 고유한 솔루션을 통해 다음과 같은 내 질문에 답하고 싶습니다.

  • 아주 오래된 PC를 사용하면 XYZ 애플리케이션을 제공하기에 충분합니까(하루에 3-5명의 방문자), 아니면 사용하는 것이 무의미합니까?
  • 시간당 최대 25번의 방문이 가능한 ABC 애플리케이션의 보조(백업) 서버로 아주 새로운 노트북을 사용할 수 있습니까? 아니면 이 하드웨어로는 충분하지 않습니까?

제 질문을 보시고 말이 안 되셨다면 죄송합니다. 하지만 저는 환경에 관심이 많은 사람이고 그렇게 하고 싶습니다.거의 모든 것오래된 하드웨어에 두 번째 삶, 두 번째 기회 또는 두 번째 임무를 부여합니다. 그것을 버리는 것이 내가 고려한 마지막 시나리오였습니다. 그래서 이런 문제가 있습니다.

답변1

하지만 저는 환경 전문가이고 오래된 하드웨어에 두 번째 생명, 두 번째 기회, 두 번째 임무를 부여하기 위해 거의 모든 일을 할 것입니다.

이는 훌륭하지만 오래된 하드웨어는 전력 소모가 매우 심하며 자체 서버를 로컬에서 실행한다는 것은 자신의 워크로드만을 위한 전체 서버를 실행한다는 것을 의미합니다. 서버를 거의 사용하지 않더라도 서버의 전력 소비를 다른 누구도 공유하지 않습니다!

이 점을 고려해야 합니다. 우리가 해보자

아주 오래된 Windows XP 컴퓨터

유휴 상태에서의 전력은 아마도 20-30W일 것입니다. 완전히 사용하면 200W(?) 를 소모할 수 있습니다. 정말 상황에 따라 다릅니다! 구입에너지 미터, 유휴 기간 및 실제 사용 사례를 시뮬레이션하는 워크로드 중에 하드웨어가 어떻게 사용되는지 계산합니다.
당신은 표지 이미지를 자동으로 가져오고, 책을 검색하고, 책을 삽입하는 도서관 관리 도구와 같은 서비스를 제공하는 사람입니다. 따라서 이러한 일반적인 워크로드를 트리거하는 엔드포인트를 작성하세요. (시간이 얼마나 걸리는지에 따라) 수백 번에서 수천 번 트리거하고 손에 걸리는 시간을 측정하고 이를 연관시킵니다.

특정 하드웨어가 특정 워크로드를 충족하는 데 걸리는 시간과 1년 동안 얼마나 많은 전력을 사용할지 평가하도록 설정할 수 있는 사람은 자신뿐입니다.

이것은 스프레드시트 작업이 될 것입니다! 연간 컴퓨팅 하드웨어를 사용하는 시간(또는 예상 남은 실행 시간)을 나열하는 스프레드시트를 만드세요. 해당 기간 동안 제공할 워크로드 양에 대해 더 낮은, 높은 및 가장 가능성 있는 추정치를 작성하여 이를 수행합니다. 워크로드란 위에서 직접 작성한 벤치마크로 시뮬레이션한 단위를 의미합니다. 벤치마크가 10,000개의 시뮬레이션된 사용자 상호 작용을 제공하고 완료하는 데 20분이 걸린다고 가정합니다. 편안히 앉아서 머리를 긁적이며(또는 배포 서버에 대한 통계를 읽는 것이 더 좋습니다) 사용자가 연간 200,000~2,000,000개의 요청을 한다고 추정하고 최선의 추측은 500,000입니다. 즉, 200,000/10,000 · 20분 = 400분 ~= 연간 6.67시간, 2,000,000/10,000 · 20분 = 4000분 = 66.7시간의 노력이 됩니다. 1년은 8760분입니다. 이제 시스템이 "유휴" 전원을 사용한 시간과 "전체" 전원을 사용한 시간을 알 수 있습니다.

시간 단위의 예:

기계: 오래된 컴퓨터

  • 유휴 전력: 20W
  • 작동 전력: 200W
  • 요청 10,000건당 시간: 0.33시간
  • 장면:
    • 낮은 부하(연간 요청 200,000건)
      • 6.67시간 작동 · 200W = 1.33kWh
      • 유휴 시간 8753.33시간 · 20W = 175kWh
      • 총계: 176kWh
    • 높은 로드(연간 요청 2,000,000건)
      • 66.7시간 작동 · 200W = 13.3kWh
      • 유휴 시간 8693.3시간 · 20W = 173kWh
      • 총계: 186.3kWh

기계: 매우 빠른 PC

  • 유휴 전력: 15W(최신 PC는 유휴 상태에서 더 좋습니다!)
  • 작동 전력: 500W
  • 요청 10,000건당 시간: 0.006시간
  • 장면:
    • 낮은 부하(연간 요청 200,000건)
      • 0.0667 작동 시간 · 500W = 0.03kWh
      • 유휴 시간 8670시간 · 15W = 130kWh
      • 총 : 130kWh…

이제 클라우드 제공업체에서는 워크로드가 얼마나 많은 전력을 소비하는지 알 수 없습니다. 걸리는 시간만 벤치마킹할 수 있습니다. 그러나 이는 가정입니다. "내가 지불한 것보다 더 많은 전기를 사용하지 않습니다. OvH는 최소 0.20유로/kWh를 지불하므로 그곳의 가상 머신에 대해 연간 50유로를 지불하면 그 중 절반은 단지 에너지입니다. 비용은 약 125kWh 이상 사용할 수 없습니다.” 당신의 모델이 되어보세요!

저 할 수 있어요매우필요한 작업 부하를 처리하기 위해 구형 PC를 실행하는 것을 선호하더라도 놀라지 마십시오.

관련 정보