Я тестирую свой новый сайт на следующей настройке * 2 экземпляра m1.large ec2 в качестве веб-сервера за эластичным балансировщиком нагрузки * на обоих веб-серверах установлен memcache/apc/nginx/php-fpm * 1 экземпляр m1.large ec2 для mongo db, когда Я запускаю это с удаленного сервера ab -n 100 http://beta.domain.com/
и получаю следующие результаты
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)
Вероятность попадания БТР составляет около 98%. Кроме того, я проверяю файл журнала memcached, выполняя этот тест, и вижу, что ab поражает оба сервера и набирает значения на memcached (все попадания, без промахов). Но все равно значение RPS равно 0,79. Разве это не очень низко? Я упускаю суть?
ИЗМЕНИТЬ
Также весь статический контент (css, js, изображения) обслуживается с Amazon S3 в формате gz и имеет срок действия 1 год.
*ИЗМЕНИТЬ 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)
** Генерация нагрузки **
Я предполагаю, что Эб делает это, не так ли? Извините, я совсем новичок в бенчмаркинге :) Я также добавил -c 50
и снова запустил тест. См. результаты выше.
** Тестовая страница **
На этой странице перечислены 20 продуктов с изображением, описанием и т. д. Выполняет некоторые внутренние вычисления, но все результаты кэшируются в memcache, поэтому на самом деле они никогда не попадают в базу данных (mongo). Я вижу это из файла журнала memcache.
** Что-то еще **
Вот результат vmstat
на одном из серверов во время абтеста
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