tracing a memory-leak in a long running eventmachine application
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.TRANSCRIPT
![Page 1: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/1.jpg)
����������������������������������������������������������������
����������������������������������������������������������������
�������
![Page 2: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/2.jpg)
����
��������������������������������������������������������
�������������������
���������
���������
![Page 3: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/3.jpg)
�������������������
�������������������������������������������������������������������������������反�堆模式�
����������������������������������������������������������������������������������������������
���������������������������������������������������������
��������������������������������������������������������
![Page 4: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/4.jpg)
���������������������������
![Page 5: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/5.jpg)
��������������������������������������
��������������������������������������������������������������������������������������������������������������������������������������������������
![Page 6: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/6.jpg)
�����������������������
�������������������������������������������������������������
![Page 7: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/7.jpg)
��������������������������������
�������������������������������
���������������������������������������������������������
������������������������������������������
����������������������������������������������������
![Page 8: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/8.jpg)
�������������������
������ �������������������������
������� ���
����� ���
�� ���
����� ����
����� ����
��� �����
![Page 9: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/9.jpg)
�������������������
���������������
�������������������������������
����������������������������
![Page 10: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/10.jpg)
�������������������
�������������������������������������������������
����������������������������������������������������������������������������
����������������������������������������������������
![Page 11: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/11.jpg)
�����������������������������������
���������������������������������������������
�������������������������������������������������������������������个开����������功能���������������������������������������������������������������������探��包���隔����没有数据通�后,�送第⼀个���������包,注意有些�⾔中�位是毫秒����������������������������������������������������������������������此后每����送⼀个���������包,注意有些�⾔中�位是毫秒�������������������������������������������������������������������当���个���������包没收到的�候,断开�接������
![Page 12: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/12.jpg)
����������������������������
�������������������������������������
![Page 13: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/13.jpg)
�������������������
�������������������
����������������������������������������������������������������������������������������������������������������������������������������������������������������������
![Page 14: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/14.jpg)
�������������������
������������������������������������������������������������
���
�������������������������������������������������������������������������������������������������������������������������������������������������������������
![Page 15: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/15.jpg)
��������������������������������������
��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
![Page 16: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/16.jpg)
���������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
![Page 17: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/17.jpg)
���������������������������������������
�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
![Page 18: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/18.jpg)
������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
![Page 19: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/19.jpg)
�������������������������������������
������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
![Page 20: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/20.jpg)
�������������������������������������
�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
![Page 21: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/21.jpg)
����������������������������
�����������������������������������������������������
��������������������
�������������������������������������
![Page 22: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/22.jpg)
�������������������
���������������������������������
������������������������������������������������������������������������������
���������������������������������������������������
![Page 23: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/23.jpg)
�������������������
![Page 24: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/24.jpg)
�������������������
![Page 25: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/25.jpg)
�������������������
![Page 26: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/26.jpg)
�������������������
![Page 27: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/27.jpg)
�������������������
���������������������������������������������
�������������������������������������
![Page 28: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/28.jpg)
�������������������
������������������
����������������������������������������������������������������������
����������������������������������������������������������������������
���������������������������������������������������������������������������������������������
![Page 29: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/29.jpg)
�������������������
���������������������������������������������������������������
��������������������������
�����������������������������������
������������������������������������������
![Page 30: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/30.jpg)
�������������������
�����������������
![Page 31: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/31.jpg)
�������������������
�����������
����������������������������������������� ������������������������������������������������������������������������������������������������������������ ��������� ������������ ���������������
![Page 32: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/32.jpg)
�������������������
������������������������
����������������������������������������
�����������������������������������������������������������
����������������������������������������������������������
![Page 33: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/33.jpg)
�������������������
�����������������������������������������
�����������������������
�����������
����
���
![Page 34: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/34.jpg)
�������������������
������������������������������������������������
��������������������������������������������������������������
![Page 35: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/35.jpg)
���������
�����������������������������������������
![Page 36: Tracing a Memory-leak in a Long Running Eventmachine Application](https://reader033.vdocuments.site/reader033/viewer/2022052907/559223dc1a28abab068b4707/html5/thumbnails/36.jpg)
���������������������������
��������������������������
�����������������