повышение производительности web2py - база данных и apache

Может ли кто-нибудь дать несколько советов о том, как улучшить производительность web2py (WSGI apache + MySQL)? У меня есть приложение, которое каждые несколько секунд получает запросы Ajax от клиента для доступа к базе данных и возврата результатов. Сервер представляет собой машину Ubuntu с 640 МБ ОЗУ (виртуальный сервер на Amazon EC2, без X-сервера).

В конфиге апача есть 4 WSGI-процесса. Недавно запущенный экземпляр apache2 оставляет около 300 Мб свободного места, но после сотни запросов система начинает тормозить и возникают длительные задержки. Перезапуск сервера помогает освободить память (я настроил cron на это каждые 30 минут, но, думаю, это плохая практика).

Будем благодарны любому авансу! Более мощный сервер пока не вариант из-за бюджета.

Заранее спасибо!


person Andrei    schedule 17.01.2011    source источник


Ответы (3)


Убедитесь, что вы используете пулы соединений. Имеет большое значение.

Также не используйте cron. Используйте фоновый процесс. Cron может потреблять больше памяти, чем необходимо.

person Massimo    schedule 17.01.2011

Прочтите 11 рецептов развертывания из книги Web2Py! Есть много способов улучшить производительность web2py.

person Unitech    schedule 28.04.2011

Если вы используете фоновые скрипты, не забудьте выполнить commit() или rollback() ваших транзакций. Это не требуется в среде web2py. Но если вы запускаете внешние скрипты, это понадобится.

person Bruno Rocha - rochacbruno    schedule 15.10.2011