Сколько одновременной загрузки может обработать приложение Rails - PullRequest
2 голосов
/ 06 октября 2010

Ожидается, что мы отправим несколько тысяч загрузок в течение 2 или 3 минут. Большинство загрузок будет около 20 -> 200 Мб. Технически, я думаю, что загрузка не имеет ничего общего с Rails, а скорее с WebServer (Apache / Nginx), поэтому, пока сервер может обрабатывать параллельные запросы, приложение Rails не должно выполнять большую часть работы (кроме перемещения файла). для правильного хранения и создания записи базы данных для отслеживания файла).

Правильно ли мое предположение? Как правило, сколько одновременных загрузок может обрабатывать один процесс приложения Rails? (Учитывая, что приложение Rails может занять 20 мс со всеми вычислениями, перемещением файла и созданием записи базы данных, но соединение должно поддерживаться в течение 1 минуты, чтобы файл мог быть успешно передан)

1 Ответ

5 голосов
/ 06 октября 2010

Не совсем, но близко. Один экземпляр приложения rails может обрабатывать только один запрос за раз, но легко использовать сервер с пулом этих экземпляров, используя nginx и passenger или mongrels и балансировщик нагрузки.

Вы должны создать нагрузочный тест, чтобы подтвердить любые ваши предположения.

Я бы использовал curl для симуляции 10/100/1000 пользователей, загружающих несколько мегабайт, используя несколько процессов, и настраивал скорость загрузки для симуляции медленных клиентов, чтобы увидеть, как это влияет на вашу производительность. Измерьте время ответа для 10 одновременных запросов, запишите и просмотрите результаты.

Вы можете использовать модуль загрузки nginx и обходные рельсы, если можете, и если это поможет. Всегда проверяйте свои предположения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...