Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Tracing a Memory-leak in a Long Running Eventmachine Application

505 views

Published on

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.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Tracing a Memory-leak in a Long Running Eventmachine Application

  1. 1. ���������������������� ������������������ ������������� ����������� ���������������������� ������������������ ������������� ����������� �������
  2. 2. ���� ������������������������������������������� ������������� ������������������� ��������� ���������
  3. 3. ������������������� ���������������������������������������������������� ���������������������������反�堆模式� ������������������������������������������������ ��������������������������������� ������������� ������������������������������������������������ ��������� ���������������������������������������������� ����������
  4. 4. �������������������� �������
  5. 5. �������������������� ������������������ ����������������������������������������������������������������������������������������� ���������������������������������������������������������
  6. 6. ����������������������� ���������������� ��������������������������������� ������������
  7. 7. ������������������� ������������� ������������������������������� ������������������������������������������������� �������� ������������������������������������������ ����������������������������������������������� �����
  8. 8. ������������������� ������ ������������������������� ������� ��� ����� ��� �� ��� ����� ���� ����� ���� ��� �����
  9. 9. ������������������� ��������������� ������������������������������� ����������������������������
  10. 10. ������������������� ������������������������������������������������� �������������������������������������������������� �������������������������� ����������������������������������������������������
  11. 11. ��������������������� �������������� ��������������������������������������������� �������������������������������������������������������������� �����个开����������功能 ���� ������������������������������������������������������������� ����探��包���隔����没有数据通�后,�送第⼀个���������包,注意有些�⾔中�位是毫秒 ���� �������������������������������������������������������������� ����此后每����送⼀个���������包,注意有些�⾔中�位是毫秒 ���� ����������������������������������������������������������� ����当���个���������包没收到的�候,断开�接������
  12. 12. ��������������������� ������� �������������������������������������
  13. 13. ������������������� ������������������� �������������������������������������������� ��������������������������������������������������� ������������������������������������������������������ �����������������
  14. 14. ������������������� ������������������ ������������������������������������������ ��� ��������������������������� �������������������������������������������������������������������� ��������������������������� �������������������������������� ���
  15. 15. �������������������������� ������������ ����������������������������������������� ����������������������������������������� ����������������������������������������� ����������������������������������������� ����������������������������������������� ����������������������������������������� �������������������������������������� ������������������
  16. 16. ��������������������� ������������������ ����������������������������������������� ����������������������������������������� ����������������������������������������� ����������������������������������������� ��������������������������������������� ����������������������������������������� �������������������������������������� ������������������
  17. 17. ��������������������� ������������������ ����������������������������������������� ����������������������������������������� ����������������������������������������� ����������������������������������������� �������������������������������������� ����������������������������������������� �������������������������������������� ������������������
  18. 18. ������������������������ ������������ ���������������������������������� ������������������������������������� ���������������������������������������� ���������������������������������������� ����������������������������������������� �������������������� ����������������������������������������� ��������������������������� ������������������������������������� ���������������������� ����������������������������������������� ���������������������������������� ��������������������������� ����������������������������������� ���������������������������������������
  19. 19. ������������������������� ������������ ����������������������������������������� �������������������������������������� ����������������������������������������� ��������������������������������������� ����������������������������������� �������������������� �������������������������������� ������������������������������������� ������������������������������������ ����������������������������������������� ���������������������������������� ���������������������� ��������������������������� ����������������������������������� ����������������������������
  20. 20. ������������������������� ������������ ����������������������������������������� �������������������������������������� ����������������������������������� ����������������������������������������� ��������������������������������������� �������������������������������������� ������ �������������������������������������� ������ ������������������������������������� ������ ���������������������������������������� ������������������������������������� ����������������������������������������� ������������������������������������
  21. 21. ��������������������� ������� ����������������������������������������������������� �������������������� �������������������������������������
  22. 22. ������������������� ��������������������������������� �������������������������������������������� ���������������������������������� �������������������������������������������� �������
  23. 23. �������������������
  24. 24. �������������������
  25. 25. �������������������
  26. 26. �������������������
  27. 27. ������������������� ��������������������������������������������� �������������������������������������
  28. 28. ������������������� ������������������ ��������������������������������������������������� ������������������� ������������������������������������������������� ��������������������� ������������������������������������������� ��������������������������������������������������
  29. 29. ������������������� ������������������������������������������������� �������������� �������������������������� ����������������������������������� ������������������������������������������
  30. 30. ������������������� �����������������
  31. 31. ������������������� ����������� ������������������������������������ ��� �� �������������������������������������������������� �������������������������������������������������������� �� ������� �� ���������� �� ������������ ���
  32. 32. ������������������� ������������������������ ���������������������������������������� ������������������������������� ���������������������������� ������������������������������������� ���������������������
  33. 33. ������������������� ����������� ������������������������������ ����������������������� ����������� ���� ���
  34. 34. ������������������� ������������������������������������������ ������ �������������������������������������������� ������������������
  35. 35. ��������� �����������������������������������������
  36. 36. �������������������� ������� �������������������������� �����������������

×