36
��������

Tracing a Memory-leak in a Long Running Eventmachine Application

  • Upload
    -

  • View
    141

  • Download
    2

Embed Size (px)

DESCRIPTION

Slide: In Huanteng Smart we manufacture smart household gadgets which all connect to a single long running eventmachine application to receive and send instructions with the server. This eventmachine application is a single Linux process holding all TCP connections never closes them. One day, we found that this process was leaking memory, and here is how we managed to trace its cause.

Citation preview

Page 1: Tracing a Memory-leak in a Long Running Eventmachine Application

����������������������������������������������������������������

����������������������������������������������������������������

�������

Page 2: Tracing a Memory-leak in a Long Running Eventmachine Application

����

��������������������������������������������������������

�������������������

���������

���������

Page 3: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

�������������������������������������������������������������������������������反�堆模式�

����������������������������������������������������������������������������������������������

���������������������������������������������������������

��������������������������������������������������������

Page 4: Tracing a Memory-leak in a Long Running Eventmachine Application

���������������������������

Page 5: Tracing a Memory-leak in a Long Running Eventmachine Application

��������������������������������������

��������������������������������������������������������������������������������������������������������������������������������������������������

Page 6: Tracing a Memory-leak in a Long Running Eventmachine Application

�����������������������

�������������������������������������������������������������

Page 7: Tracing a Memory-leak in a Long Running Eventmachine Application

��������������������������������

�������������������������������

���������������������������������������������������������

������������������������������������������

����������������������������������������������������

Page 8: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

������ �������������������������

������� ���

����� ���

�� ���

����� ����

����� ����

��� �����

Page 9: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

���������������

�������������������������������

����������������������������

Page 10: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

�������������������������������������������������

����������������������������������������������������������������������������

����������������������������������������������������

Page 11: Tracing a Memory-leak in a Long Running Eventmachine Application

�����������������������������������

���������������������������������������������

�������������������������������������������������������������������个开����������功能���������������������������������������������������������������������探��包���隔����没有数据通�后,�送第⼀个���������包,注意有些�⾔中�位是毫秒����������������������������������������������������������������������此后每����送⼀个���������包,注意有些�⾔中�位是毫秒�������������������������������������������������������������������当���个���������包没收到的�候,断开�接������

Page 12: Tracing a Memory-leak in a Long Running Eventmachine Application

����������������������������

�������������������������������������

Page 13: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

�������������������

����������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 14: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

������������������������������������������������������������

���

�������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 15: Tracing a Memory-leak in a Long Running Eventmachine Application

��������������������������������������

��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 16: Tracing a Memory-leak in a Long Running Eventmachine Application

���������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 17: Tracing a Memory-leak in a Long Running Eventmachine Application

���������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 18: Tracing a Memory-leak in a Long Running Eventmachine Application

������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 19: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������������������������

������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 20: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������������������������

�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

Page 21: Tracing a Memory-leak in a Long Running Eventmachine Application

����������������������������

�����������������������������������������������������

��������������������

�������������������������������������

Page 22: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

���������������������������������

������������������������������������������������������������������������������

���������������������������������������������������

Page 23: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

Page 24: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

Page 25: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

Page 26: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

Page 27: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

���������������������������������������������

�������������������������������������

Page 28: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

������������������

����������������������������������������������������������������������

����������������������������������������������������������������������

���������������������������������������������������������������������������������������������

Page 29: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

���������������������������������������������������������������

��������������������������

�����������������������������������

������������������������������������������

Page 30: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

�����������������

Page 31: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

�����������

����������������������������������������� ������������������������������������������������������������������������������������������������������������ ��������� ������������ ���������������

Page 32: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

������������������������

����������������������������������������

�����������������������������������������������������������

����������������������������������������������������������

Page 33: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

�����������������������������������������

�����������������������

�����������

����

���

Page 34: Tracing a Memory-leak in a Long Running Eventmachine Application

�������������������

������������������������������������������������

��������������������������������������������������������������

Page 35: Tracing a Memory-leak in a Long Running Eventmachine Application

���������

�����������������������������������������

Page 36: Tracing a Memory-leak in a Long Running Eventmachine Application

���������������������������

��������������������������

�����������������