Example #1
0
    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))