Открытие более двух подключений к apache на клиента

Немного странная проблема здесь. Мы переносим сайт на новую программную платформу. В рамках этой миграции мы должны скопировать файлы из одной корзины Amazon S3 в другую. Есть сотни тысяч файлов.

Для этого мы также должны использовать имеющееся у нас программное обеспечение (phpFox). В основном php-фреймворк.

Задание разбивается на сегменты, которые мы вызываем, используя смещение в URL-адресе.

В основном: Скопируйте 10 файлов и обновите базу данных по мере необходимости. Увеличьте смещение на 10. Промойте, повторите.

Трафик API небольшой, нагрузка на сервер менее 1%, однако, если мы открываем более двух вкладок на какой-либо одной машине к серверу, скрипт начинает пропорционально тормозить, как будто веб-сервер (Apache) стоит в очереди команды вместо того, чтобы запускать их параллельно.

Мы обнаружили, что если мы открываем две вкладки на многих машинах, масштаб увеличивается, как и ожидалось. Чтобы либо насытить наш аплинк, либо дать сколько-нибудь ощутимую нагрузку на сервер, нам нужно заполнить комнату ноутбуками. Хотя это комично, это также очень непрактично и, как правило, заноза в заднице. Здесь должен быть лучший способ.

Я пытался увеличить максимальное количество резервных процессов и запросов на ребенка и т. д. и т. д. в 10 раз, и заметного увеличения скорости не было. Что нам не хватает? Как красиво сказать Apache, чтобы он временно позволял любому подключаться столько раз, сколько ему нужно, и сходить с ума?

PHP 5.3.8 PHP Sapi: apache2handler Загруженные расширения PHP: Core date ereg libxml openssl pcre sqlite3 zlib bcmath calendar ctype curl dom fileinfo filter ftp gd hash iconv SPL json mbstring mysql session standard posix Reflection Phar SimpleXML sockets SQLite imap tokenizer xml xmlreader xmlwriter zip apache2handler

MYSQL: сообщество MySQL 5.0.92

Спасибо за чтение!


person The HT    schedule 25.01.2012    source источник


Ответы (1)


Большинство веб-браузеров имеют ограничение на количество одновременных подключений к данному веб-серверу. Я не уверен насчет всех браузеров, но знаю один браузер, для которого его можно настроить, — это Mozilla Firefox с расширением Fasterfox:

https://addons.mozilla.org/en-US/firefox/addon/fasterfox-9148/

При этом - неужели вы действительно не можете написать сценарий для выполнения миграции на сервере, а не запускать ее через веб-интерфейс ??

person Community    schedule 26.01.2012
comment
Даже простой предварительно сгенерированный сценарий оболочки с тысячами строк wget будет работать лучше, чем использование реального браузера. Затем просто запустите столько сеансов терминала, сколько вам нужно. - person Uriah Carpenter; 26.01.2012
comment
Согласованный. Есть много НАМНОГО лучших способов сделать это, но по причинам, выходящим за рамки этого форума, мы вынуждены делать это в веб-браузере. Даже пробовали использовать elinks на веб-сервере (он запрашивает с локального хоста, почти устраняет задержку сети в процессе) и все еще не в восторге. - person The HT; 26.01.2012
comment
@duskwuff Нет, я бы хотел, чтобы это было. Мы застряли с параметрами, определенными выше. Тем не менее, я установил аддон firefox, это не помогло, но для проверки теории я открыл копию firefox, IE, chrome и safari, и эта чертова штука правильно масштабировалась. Вместо 1 запроса в секунду я получал 4. Если я открываю 4 вкладки в firefox, даже с аддоном (настроенным разными способами), он застревает на 1req/sec, загрузка страницы просто занимает больше времени. Есть идеи, что здесь происходит? ОС (Win7) как-то ограничивает соединения для каждой программы или что-то в этом роде? Я установил максимальное количество подключений в FF на 96. - person The HT; 26.01.2012