Temat: Symulacja duzego ruchu na AWS Amazon

Witam,
Jestem w trakcie testowania systemu korzystajacego z Amazon AWS ktory ma obsluzyc 1 godzinne wydarzenie marketingowe w necie o bardzo duzym ruchu (spodziewane ok 50tys uzytkownikow) i spotkalem sie z oporem ze strony narzedzi AB i SIEGE odczas symulacji ktore zwracaja bledy limitu plikow i limitu socketow podczas gdy webserwery nie wygladaja na specjalnie obciazone. Gdzie robie blad?

Konfiguracja:

1 x AWS Load balancer (stickiness disabled)

1 x AWS instance (db serwer)
serwer to CentOS: High-Memory Quadruple Extra Large Instance 68.4 GB of memory, 26 EC2 Compute Units (8 virtual cores with 3.25 EC2 Compute Units each), 1690 GB of local instance storage, 64-bit platform

3 x AWS instance (web serwer)
- kazdy serwer to CentOS: High-Memory Quadruple Extra Large Instance 68.4 GB of memory, 26 EC2 Compute Units (8 virtual cores with 3.25 EC2 Compute Units each), 1690 GB of local instance storage, 64-bit platform
- apache prefork, php5.3.3 modul, mysql5.1.47

Test:
Testowana jest prosta strona www, 1 strona ktore poprzez requesty ajaxowe bedzie odswiezac kontent via json z bazy, requesty sa krotkie ok 200-300 znakow w json z bazy, zapytania do bazy max 3 na jeden request wykonuja sie ponizej 0,002s, poprawne indeksy na myisam

> ab -c 1000 -n 20000 url.com
> siege -b -c 1000 -r 200

po wykonaniu powyzszych komend z c=1000 otrzymuje ok 3000request/s z failure=0, kazdy wzorst c wiekszy niz 1000 daje ponad 25% failures i ani ab ani siege nie moze zakonczyc poprawnie testowania, w obu przypadkach zwraca blad: ...: Too many open files

zwiekszylem limit plikow do 2048 z 1024 i tym razem wyrzuca blad ogolny ...: Socket error

Podsumowujac:
Jak zasymulowac tak duzy ruch na serwerze w celu oszacowania ile web serwerow musze podpisac pod load balancer dla danej strony www. W moim przypadku widze jak na dloni ze webserwery nie sa zbytnio obciazone, db server tez sie nudzi a ab i siege wyrzucaja bledy i bad requesty...

zrzut z ab z proba c=4000 na public url load balancera:

[root@ip ~]# ab -c 4000 -n 70000 url.com/news
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://zeustech.net/
Copyright 2006 The Apache Software Foundation, http://apache.org/

Benchmarking url.com.amazonaws.com (be patient)
Completed 7000 requests
Completed 14000 requests
Completed 21000 requests
Completed 28000 requests
Completed 35000 requests
Completed 42000 requests
Completed 49000 requests
Completed 56000 requests
Completed 63000 requests
Finished 70000 requests


Server Software:
Server Hostname: url.com.amazonaws.com
Server Port: 80

Document Path: /news
Document Length: 0 bytes

Concurrency Level: 4000
Time taken for tests: 56.43387 seconds
Complete requests: 70000
Failed requests: 56066
(Connect: 0, Length: 56066, Exceptions: 0)
Write errors: 0
Non-2xx responses: 12067
Total transferred: 847796346 bytes
HTML transferred: 832600357 bytes
Requests per second: 1249.03 [#/sec] (mean)
Time per request: 3202.479 [ms] (mean)
Time per request: 0.801 [ms] (mean, across all concurrent requests)
Transfer rate: 14772.95 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 749 2744.4 3 45026
Processing: 0 1649 3912.4 313 55346
Waiting: 0 999 3376.1 77 52709
Total: 1 2398 4944.9 406 55376

Percentage of the requests served within a certain time (ms)
50% 406
66% 1453
75% 3042
80% 3329
90% 6597
95% 10124
98% 21058
99% 26126
100% 55376 (longest request)

Z gory dziekuje za sugestie i wskazanie gdzie robie blad
pozdrawiam

konto usunięte

Temat: Symulacja duzego ruchu na AWS Amazon

Może problem w tym że trudno symulować ruch o takim natężeniu z jednego systemu. Ja zazwyczaj testuje z kilku maszyn jednocześnie. pozdrAlojzy Fikumiku edytował(a) ten post dnia 10.10.10 o godzinie 21:25

Następna dyskusja:

Amazon - baza danych SimpleDB




Wyślij zaproszenie do