내 결과에 따라 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 %가 아닙니다 (무엇을보아야하는지에 관해서).
감사합니다.
수정. 캐싱이 켜져 있으면 나중에 Web1에서 테스트를 수행하면 더 나은 결과를 얻을 수 있습니다. 나는 초당 130 회의 요청에 가까워지고있다. 따라서 가장 큰 문제는 캐싱이 켜져 있지 않을 때 Web2를 다시 잡는 것입니다. 5 두 번째 요청은 느립니다. – spicer