Низкая производительность тонкого сервера / Как работают событийные веб-серверы?

У меня было приложение rails 3 на Nginx/Passenger, которое я только что перенес на Nginx/Thin (1.3.1). Однако теперь мое приложение работает явно медленнее, чем на Passenger. Время ожидания многих запросов тоже истекает.

Thin — это событийный веб-сервер. Из того, что я читал о событийных веб-серверах, у них нет понятия рабочих. Один «рабочий» со всем справляется. Поэтому, если один запрос ожидает ввода-вывода, тонкий просто переходит к следующему запросу и так далее. В одном из объяснений, которые я читал о событийных серверах, говорилось, что событийные серверы должны работать так же или даже лучше, чем рабочие серверы, потому что они ограничены только системными ресурсами.

Однако у меня очень мало ресурсов ЦП. Мое использование памяти тоже очень мало, и операций ввода-вывода тоже немного. Мое приложение просто делает несколько запросов MySQL.

В чем здесь узкое место? Разве мой тонкий сервер не должен обрабатывать запросы, пока ЦП не будет загружен на 100%? Должен ли я делать что-то другое в своем приложении, чтобы оно работало лучше с событийным сервером?

9
задан Coffee Bite 9 May 2012 в 01:02
поделиться