def run(self): # TODO: stop after 3 fatal errors current_thread().name = 'bridge' context.setup_thread_id() try: while True: m_size_b, m_rss_b = memusage.report() self.wait() context.inc_action_id() self.flush_meta() if not self.first_run: self.flush_metrics() self.flush_events() self.flush_configs() else: self.first_run = False gc.collect() m_size_a, m_rss_a = memusage.report() context.log.debug('mem before: (%s %s), after (%s, %s)' % (m_size_b, m_rss_b, m_size_a, m_rss_a)) if m_rss_a >= m_rss_b: context.log.debug('RSS MEMORY same or increased, diff %s' % (m_rss_a-m_rss_b)) elif m_size_a >= m_size_b: context.log.debug('VSIZE MEMORY same or increased, diff %s' % (m_size_a-m_size_b)) except: context.default_log.error('failed', exc_info=True) raise
def _collect(self): m_size_b, m_rss_b = memusage.report() start_time = time.time() try: self.collect() except: raise finally: m_size_a, m_rss_a = memusage.report() end_time = time.time() context.log.debug('%s collect in %.3f' % (self.object.id, end_time - start_time)) context.log.debug('%s mem before: (%s %s), after (%s, %s)' % ( self.object.id, m_size_b, m_rss_b, m_size_a, m_rss_a) ) if m_rss_a > m_rss_b: context.log.debug('%s RSS MEMORY INCREASE! diff %s' % (self.object.id, m_rss_a - m_rss_b)) elif m_size_a > m_size_b: context.log.debug('%s VSIZE MEMORY INCREASE! diff %s' % (self.object.id, m_size_a - m_size_b))