From f3a70ddc5e727f14527bf576489b65fb23dc4bda Mon Sep 17 00:00:00 2001 From: gordon chung Date: Fri, 12 Sep 2014 14:03:42 -0400 Subject: minimise ceilometer memory usage according to memory_profiler, ceilometer collector and api uses ~40-45mb and ~66mb of memory respectively. importing the migration module from oslo.db is ~5mb memory (8-15% of total memory usage). this patch moves import so it imports the module only for migration as it isn't needed for normal collector/api use. Closes-Bug: #1369602 Change-Id: Ic5b116c88c40ea0b3a66694369cf6d76b9635c54 --- ceilometer/alarm/storage/impl_sqlalchemy.py | 3 ++- ceilometer/storage/impl_sqlalchemy.py | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/ceilometer/alarm/storage/impl_sqlalchemy.py b/ceilometer/alarm/storage/impl_sqlalchemy.py index e0cc6c9c..059b41d5 100644 --- a/ceilometer/alarm/storage/impl_sqlalchemy.py +++ b/ceilometer/alarm/storage/impl_sqlalchemy.py @@ -20,7 +20,6 @@ from __future__ import absolute_import import os from oslo.config import cfg -from oslo.db.sqlalchemy import migration from oslo.db.sqlalchemy import session as db_session from sqlalchemy import desc @@ -87,6 +86,8 @@ class Connection(base.Connection): ) def upgrade(self): + # NOTE(gordc): to minimise memory, only import migration when needed + from oslo.db.sqlalchemy import migration path = os.path.join(os.path.abspath(os.path.dirname(__file__)), '..', '..', 'storage', 'sqlalchemy', 'migrate_repo') diff --git a/ceilometer/storage/impl_sqlalchemy.py b/ceilometer/storage/impl_sqlalchemy.py index f4d7de02..d1f7671e 100644 --- a/ceilometer/storage/impl_sqlalchemy.py +++ b/ceilometer/storage/impl_sqlalchemy.py @@ -24,7 +24,6 @@ import os from oslo.config import cfg from oslo.db import exception as dbexc -from oslo.db.sqlalchemy import migration from oslo.db.sqlalchemy import session as db_session from oslo.utils import timeutils import six @@ -227,6 +226,8 @@ class Connection(base.Connection): ) def upgrade(self): + # NOTE(gordc): to minimise memory, only import migration when needed + from oslo.db.sqlalchemy import migration path = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'sqlalchemy', 'migrate_repo') migration.db_sync(self._engine_facade.get_engine(), path) -- cgit v1.2.1