Получил серверную программу, написанную на mod_perl. Я использую общую память apache worker mpm только с одним процессом и ~ 60 потоками. Я использую блокировки для временной защиты доступа к разделяемой памяти, хотя время блокировки составляет всего 0,1 с из 1,7.
Проблема в том, что я получаю ту же скорость на 10 последовательных запросах по сравнению с 10 параллельными запросами.
мой стресс-скрипт запускается п количество тяжелых URL-запросов с задержкой 0,1 с между каждым. Число в скобках - это номер запроса.
perl stressTestServer.pl n=1
DONE ( 0 ) > 1.778257 sek
perl stressTestServer.pl n=5
DONE ( 3 ) > 8.71926 sek
DONE ( 0 ) > 8.85207 sek
DONE ( 1 ) > 8.976061 sek
DONE ( 4 ) > 9.119936 sek
DONE ( 2 ) > 9.218552 sek
perl stressTestServer.pl n=10
DONE ( 9 ) > 8.840539 sek
DONE ( 7 ) > 9.130133 sek
DONE ( 8 ) > 9.271598 sek
DONE ( 6 ) > 9.873936 sek
DONE ( 5 ) > 10.02668 sek
DONE ( 4 ) > 18.169001 sek
DONE ( 3 ) > 18.432776 sek
DONE ( 2 ) > 18.617186 sek
DONE ( 1 ) > 18.775277 sek
DONE ( 0 ) > 18.821972 sek
это нормально для данной установки? это проверено на двухъядерном. переходя на четырехъядерный процессор, какую разницу в производительности я могу ожидать с этой настройкой? Мне трудно поверить, что здесь поможет большее количество ядер ... похоже, что сериализованное выполнение может быть более эффективным, чем параллельные потоки.
tx для ввода!