У меня проблемы с одним из наших приложений Rails 3. Когда на сервер отправляется много запросов (10 / секунду), весь сервер останавливается. Я перепробовал множество различных настроек для пассажиров и иногда замечал небольшое улучшение, но ни одна из них не оказалась решением проблемы.
Моя настройка:
- Intel i7 (8 ядер)
- 8 ГБ оперативной памяти
- Сервер Ubuntu 10.04
- Рубин 1.9.2
- Рельсы 3
- Apache 2.2.14
- Пассажир 2.2.15
- MySQL 5.1.41
Мой текущий пассажир.конф:
PassengerMaxPoolSize 12
PassengerUseGlobalQueue на
PassengerHighPerformance на
RailsSpawnMethod smart
PassengerMaxRequests 5000
PassengerStatThrottleRate 5
RailsAppSpawnerIdleTime 0
PassengerPoolIdleTime 600
Этот сервер предназначен для одного приложения. Ну, одно приложение в режиме постановки и производства.
Я попытался поиграть с PassengerMaxPoolSize, установив его на 4, 12, 20, 40, 80, ... останавливаются остатки. Странно, что Passenger порождает больше приложений, чем определенный MaxPoolSize. В настоящее время он установлен на 12, но в htop я могу найти по крайней мере 34 из них:
1234 имя пользователя 20 0 260M 97572 3892 S 0.0 1.2 0: 00.13 Стойка: /var/www/domains/domain.com/current
Я легко могу воспроизвести эту проблему, просто открыв 30 вкладок с корневой страницей нашего приложения. Первые 10 или около того загружаются мгновенно, остальным требуется не менее минуты, чтобы что-то представить.
У меня нет идей. У кого-нибудь есть идея, как это исправить?