Я использую apache и puma для развертывания приложения. Я использую PostgreSQL. Code on github. Мои приложения работают медленно. когда я генерирую несколько тысяч строк в одной таблице, производительность начинает ухудшаться, но все же приемлема. Я все еще могу обрабатывать 5 запросов в секунду. Когда я добавил миллион строк в одну таблицу, один запрос выполняется за 8 секунд, и представления, похоже, генерируются навсегда. Я добавил индексы и написал необработанные SQL-запросы несколько раз, но производительность все еще очень медленная.Как масштабировать приложения Rails
Где я могу начать оптимизацию применения рельсов? Как я могу получить не менее 50 запросов в секунду?
Прежде всего, необходимо определить корень причина. Являются ли запросы базы данных медленными - что делать, если вы запускаете эти запросы непосредственно в базе данных без Rails? Слишком много запросов (N + 1 запросов)? Вы загружаете слишком много объектов в память? – spickermann
Я спрашиваю об этом, так как вы упоминаете, что это проекты курса: вы измеряете в производственной среде? Потому что среда разработки по умолчанию не предназначена для масштабирования, а для облегчения разработки. – Martijn
все, перед тем как оставить комментарий, я также могу добавить его, вы можете использовать bullet для n + 1 http://railscasts.com/episodes/372-bullet?view=asciicast прочитать это также для кеша-счетчика и для увеличения размера буфера maxclient для одновременной работы pg –