2012-10-02 2 views
1

다음 설정에서 새 사이트를 테스트 중입니다 * 2 m1.large ec2 인스턴스를 탄성 부하 분산 장치 뒤에 웹 서버로 설치 * 두 웹 서버에 내가 ab -n 100 http://beta.domain.com/ 내가 얻을nginx 서버에서 Apache ab 테스트를 재개 할 때 초당 요청 수가 매우 낮음

Server Software:  nginx/1.1.19 
Server Hostname:  beta.domain.com 
Server Port:   80 

Document Path:  /
Document Length:  50817 bytes 

Concurrency Level:  1 
Time taken for tests: 127.032 seconds 
Complete requests:  100 
Failed requests:  0 
Write errors:   0 
Total transferred:  5117100 bytes 
HTML transferred:  5081700 bytes 
Requests per second: 0.79 [#/sec] (mean) 
Time per request:  1270.322 [ms] (mean) 
Time per request:  1270.322 [ms] (mean, across all concurrent requests) 
Transfer rate:   39.34 [Kbytes/sec] received 

Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  21 42 100.4  26 1018 
Processing: 1119 1228 69.4 1218 1488 
Waiting:  941 1016 41.8 1015 1159 
Total:  1144 1270 121.6 1246 2199 

Percentage of the requests served within a certain time (ms) 
    50% 1246 
    66% 1271 
    75% 1281 
    80% 1295 
    90% 1364 
    95% 1483 
    98% 1547 
    99% 2199 
100% 2199 (longest request) 

APC는 속도 명중하면 다음과 같은 결과는 주위에 원격 서버에서이 프로그램을 실행할 때 memcache에/APC/nginx를/PHP-FPM은 몽고 DB를 에 대한 * 1 개 m1.large의 EC2 인스턴스를 설치 98 %. 또한이 테스트를 수행 할 때 memcached 로그 파일을 검사 중이며 ab가 두 서버를 모두 치고 memcached (모든 공격, 누락 없음) 값을 치는 것을 볼 수 있습니다. 그러나 여전히 RPS 가치는 0.79입니다. 이것은 매우 낮은 것이 아닌가? 여기서 요점을 놓치고 있습니까?

편집

또한 모든 정적 컨텐츠 (CSS, JS, 이미지) GZ 형식으로 아마존 S3에서 제공하고 1 년 유효 기간이되고있다.

* EDIT 2 * 나는 -c 50 매개 변수를 사용하여 동일한 테스트를 실행하고 여기에 결과

Concurrency Level:  50 
Time taken for tests: 49.332 seconds 
Complete requests:  100 
Failed requests:  0 
Write errors:   0 
Total transferred:  5118200 bytes 
HTML transferred:  5082800 bytes 
Requests per second: 2.03 [#/sec] (mean) 
Time per request:  24666.145 [ms] (mean) 
Time per request:  493.323 [ms] (mean, across all concurrent requests) 
Transfer rate:   101.32 [Kbytes/sec] received 

Connection Times (ms) 
       min mean[+/-sd] median max 
Connect:  20 33 10.0  30  58 
Processing: 7656 20521 6139.1 21495 29328 
Waiting:  7538 20415 6131.9 21407 29243 
Total:  7687 20554 6140.3 21540 29380 

Percentage of the requests served within a certain time (ms) 
    50% 21540 
    66% 23255 
    75% 25744 
    80% 26204 
    90% 27414 
    95% 28098 
    98% 29259 
    99% 29380 
100% 29380 (longest request) 

입니다 **로드 생성 **

내가 AB가 않는 것 같아요, 그렇지 않니? 죄송합니다. 저는 벤치마킹에 새로운 경험이 있습니다. 또한 -c 50을 추가하고 테스트를 다시 실행했습니다. 위의 결과를 참조하십시오.

** 테스트 페이지 **이 페이지는 이미지, 설명 등 일부 백엔드 계산을합니까 20 개 제품을 나열하지만 결코 실제로 데이터베이스 (몽고)을 명중 있도록 결과를 모두 memcache에에 캐시

. memcache 로그 파일에서 확인할 수 있습니다.

** ** 여기

은 즉 여부 AB 테스트

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- 
r b swpd free buff cache si so bi bo in cs us sy id wa 
0 0  0 7161224 21028 199896 0 0 26 16 29 30 1 0 99 0 

iostat

Linux 3.2.0-29-virtual 10/02/2012 _x86_64_ (2 CPU) 

avg-cpu: %user %nice %system %iowait %steal %idle 
      0.67 0.00 0.31 0.15 0.34 98.54 

Device:   tps kB_read/s kB_wrtn/s kB_read kB_wrtn 
xvdap1   4.25  48.00  32.40  178001  120160 
xvdb    0.17   0.54   0.00  1993   4 

답변

0

동안 서버 중 하나에 vmstat의 결과는 다른 무엇 낮음은 여러 요소에 따라 달라집니다.

로드 생성

어떻게 생성하는 부하? 한 번에 하나의 요청을 보내면 그 값이 부당하지 않을 수 있습니다. 얼마나 많은 동시 요청을 보내고 있습니까?

테스트 된 페이지의 기능은 무엇입니까?

해당 페이지의 처리량은 얼마나됩니까? 시스템에 아무런 부하없이 페이지를 완전히로드하는 데 시간이 얼마나 걸립니까?, 문제를 켜보고 자원이 서버에 세금이 부과되고 있는지 표시되지 않습니다 위의 두 가정

을 확인하기 위해 다른 무엇

.

iostat의

vmstat를 사용

성능을 잃고 어디에 알아낼. CPU가 고정되어 있습니까? 디스크 대기열은 얼마나 오래 있습니까? 사용 가능한 모든 메모리를 사용하고 있습니까?

AWS 특정

당신이 어떤 중요한 IO이있는 경우 EBS 스토리지 정확히 빠르지 것을 발견 할 것이다. 그 문제에 대한 해결책은 항상

http://www.mysqlperformanceblog.com/2009/08/06/ec2ebs-single-and-raid-volumes-io-bencmark/

최근 AWS는 EBS 볼륨에서 디스크 IO의 일정 금액을 보장합니다 프로비저닝 IO라는 새로운 서비스를 출시하는 소프트웨어 RAID에 여러 EBS 볼륨을 스트라이프하는 것이 었습니다. 더 비싸지 만 특별한 구성을 사용하지 않아도됩니다 (EBS 볼륨을 만들 때 적절한 옵션을 선택해야합니다).