2012-08-31 3 views
6

내 결과에 따라 EC2와 Linode의 차이점에 관심이 있습니다. 나는 잘못 될 수있는 백만 가지가 있다는 것을 알고 있습니다. 어디서부터 시작해야할지 궁금합니다.Amazon EC2와 Linode의 성능 차이

나는 (Apache Benchmark를 통해) 내 블로그 방문 페이지에 대한 요청을 타이밍을 올렸습니다. 약 22 개의 SQL 쿼리와 상당한 양의 html이 있습니다. 두 대의 서버에 똑같은 사이트를 설치했습니다.

Web1 - Linode (512 크기 VPS)에서 호스팅됩니다.

Web2 - Amazon (micro VPS)에서 호스팅.

그런 다음 모두에 100 개의 동시 연결을 테스트했습니다. 테스트를 먼저 실행하여 데이터베이스를 워밍업 한 다음 실제로 실행했습니다.

웹 1 - 33 초당 요청 수.

웹 2 - 5 초당 요청 수.

그런 다음 페이지 캐싱을 설치했습니다. 이것은 완전한 html 리턴을 파일에 저장하는 곳입니다. 따라서 PHP 컨트롤러를 거치지 않고 데이터베이스 연결을 만드는 대신 정적 HTML 파일 만 반환합니다.

Web1 - 32 초당 요청.

Web2 - 88 초당 요청 수.

파일 캐싱이 Web1에서는별로 도움이되지 않습니다. 데이터베이스/PHP가 빠른 속도로 돌아오고 하나의 파일을 열고 반환하는 것 같습니다. 당신은 Web2에서 첫 번째 요청에 비해 빠르다는 것을 알게 될 것입니다.

나는 이러한 측정을 하루 종일 여러 번 수행했습니다. 그것은 일회성 문제가 아닙니다.


내가 아는 바 있습니다.

  • 두 시스템이 동일합니다. 같은 배포 스크립트를 사용하여 둘 다 구성했습니다.
  • Web2 (Amazon)는 SAN (파일 시스템)에서 실행될 가능성이 큽니다.
  • Web1 (Linode)은 로컬 하드 드라이브 (파일 시스템)에서 실행될 가능성이 큽니다.
  • 뒤에 어떤 CPU가 있는지 확실하지 않습니다. 나는 그들이 다른 CPU라고 가정 할 것이다. 나는 CPU에 많은 차이가 있다고 상상할 수 없다.

나는 캐싱이없는 경우 Web2입니다 너무 느린하게 무엇인지 찾아 내기에 정말 관심이 있고 꽤 빨리가 캐싱하고 WEB1이 두 가지 같을 때.

아이디어는 무엇입니까? CPU, IO?

병목 현상을 추적하려면 어떻게해야합니까?

"w"로 인한 부적절한로드가 표시되지 않습니다. "iostat"에서 가치있는 것이 100 %가 아닙니다 (무엇을보아야하는지에 관해서).


감사합니다.

+0

수정. 캐싱이 켜져 있으면 나중에 Web1에서 테스트를 수행하면 더 나은 결과를 얻을 수 있습니다. 나는 초당 130 회의 요청에 가까워지고있다. 따라서 가장 큰 문제는 캐싱이 켜져 있지 않을 때 Web2를 다시 잡는 것입니다. 5 두 번째 요청은 느립니다. – spicer

답변

0

가능한 한 가지 요인은 EC2 EBS 볼륨이 표준 HDD에 비해 상당히 느려지는 경향이 있다는 것입니다 (SSD와 비교할 때 훨씬 더 많은 경향이 있습니다).

See this SO Q&A.And this criticism (that is linked to from the SO link).

이 아마 속도 저하에 대한 전체 이유가 아니라 Linode 옵션이 실제 하드 디스크 드라이브를 사용하는 경우 적어도 부분적인 이유이다.

4

그래서 알아 냈습니다.

절름발이. 그러나 Amazon에 마이크로 인스턴스가 있으면 CPU가 제한됩니다. 그래서 동시 연결로 여러 번 연결하려고 할 때 CPU를 제한하고있었습니다.

+0

이것은 마이크로 인스턴스가있는 주된 이유입니다. CPU가 스로틀됩니다. 어쨌든 Peter의 말처럼 Amazon EBS 볼륨은 클라우드의 다른 제품에 비해 느립니다. – adosaiguas