개발일지/C# 채팅 프로그램

20250603 개발일지. 소켓 서버 성능 테스트 진행.

박준희 2025. 6. 19. 13:59
728x90

대선. 점심쯤 옴

 

# 할일
서버 응답 속도 및 샌드버퍼 메모리 사용 개선 진행 예정
초당 처리 가능한 메시지 수
처리 지연 시간 평균/최대 응답 시간 확인
GC부하 GC 세대별 수집 횟수와 메모리 할당량 추적

# 성능 테스트 접근 사례
https://velog.io/@leehyeonmin34/dambae200-tuning-through-performance-test

# 성능 테스트 진행

더미 클라이언트 100개, 메세지 전송 주기 100ms, 소켓 연결 완료 후 30초 진행 결과

TestSession_n 은 하나의 테스트용 클라이언트이고 Total Packet Count는 해당 클라이언트가 받은 패킷 수

(20250619) 걸린 시간을 측정하기 위해 Environment.TickCount를 사용했으나 해당 속성은 15ms 이하의 시간은 측정하지 못해 최소와 평균 값이 0으로 표시됨

더보기

TestSession_1 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 714 ms, Avg RTT: 0
TestSession_2 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 772 ms, Avg RTT: 0
TestSession_3 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 732 ms, Avg RTT: 0
TestSession_4 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 754 ms, Avg RTT: 0
TestSession_5 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 712 ms, Avg RTT: 0
TestSession_6 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 763 ms, Avg RTT: 0
TestSession_7 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 758 ms, Avg RTT: 0
TestSession_8 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 771 ms, Avg RTT: 0
TestSession_9 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 771 ms, Avg RTT: 0
TestSession_10 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 772 ms, Avg RTT: 0
TestSession_11 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 771 ms, Avg RTT: 0
TestSession_12 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 772 ms, Avg RTT: 0
TestSession_13 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 773 ms, Avg RTT: 0
TestSession_14 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 773 ms, Avg RTT: 0
TestSession_15 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 773 ms, Avg RTT: 0
TestSession_16 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 776 ms, Avg RTT: 0
TestSession_17 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 731 ms, Avg RTT: 0
TestSession_18 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 775 ms, Avg RTT: 0
TestSession_19 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 777 ms, Avg RTT: 0
TestSession_20 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 774 ms, Avg RTT: 0
TestSession_21 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 726 ms, Avg RTT: 0
TestSession_22 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 777 ms, Avg RTT: 0
TestSession_23 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 774 ms, Avg RTT: 0
TestSession_24 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 775 ms, Avg RTT: 0
TestSession_25 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 776 ms, Avg RTT: 0
TestSession_26 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 777 ms, Avg RTT: 0
TestSession_27 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 777 ms, Avg RTT: 0
TestSession_28 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 778 ms, Avg RTT: 0
TestSession_29 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 777 ms, Avg RTT: 0
TestSession_30 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 729 ms, Avg RTT: 0
TestSession_31 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 730 ms, Avg RTT: 0
TestSession_32 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 801 ms, Avg RTT: 0
TestSession_33 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 790 ms, Avg RTT: 0
TestSession_34 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 801 ms, Avg RTT: 0
TestSession_35 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 780 ms, Avg RTT: 0
TestSession_36 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 795 ms, Avg RTT: 0
TestSession_37 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 779 ms, Avg RTT: 0
TestSession_38 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 801 ms, Avg RTT: 0
TestSession_39 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 813 ms, Avg RTT: 0
TestSession_40 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 793 ms, Avg RTT: 0
TestSession_41 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 801 ms, Avg RTT: 0
TestSession_42 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 802 ms, Avg RTT: 0
TestSession_43 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 801 ms, Avg RTT: 0
TestSession_44 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 812 ms, Avg RTT: 0
TestSession_45 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 812 ms, Avg RTT: 0
TestSession_46 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 812 ms, Avg RTT: 0
TestSession_47 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 803 ms, Avg RTT: 0
TestSession_48 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 812 ms, Avg RTT: 0
TestSession_49 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 812 ms, Avg RTT: 0
TestSession_50 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 825 ms, Avg RTT: 0
TestSession_51 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 825 ms, Avg RTT: 0
TestSession_52 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 815 ms, Avg RTT: 0
TestSession_53 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 825 ms, Avg RTT: 0
TestSession_54 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 815 ms, Avg RTT: 0
TestSession_55 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 825 ms, Avg RTT: 0
TestSession_56 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 825 ms, Avg RTT: 0
TestSession_57 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 824 ms, Avg RTT: 0
TestSession_58 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 632 ms, Avg RTT: 0
TestSession_59 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 824 ms, Avg RTT: 0
TestSession_60 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 635 ms, Avg RTT: 0
TestSession_61 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 827 ms, Avg RTT: 0
TestSession_62 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 829 ms, Avg RTT: 0
TestSession_63 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 827 ms, Avg RTT: 0
TestSession_64 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 827 ms, Avg RTT: 0
TestSession_65 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 829 ms, Avg RTT: 0
TestSession_66 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 829 ms, Avg RTT: 0
TestSession_67 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 829 ms, Avg RTT: 0
TestSession_68 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 828 ms, Avg RTT: 0
TestSession_69 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 829 ms, Avg RTT: 0
TestSession_70 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 829 ms, Avg RTT: 0
TestSession_71 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 833 ms, Avg RTT: 0
TestSession_72 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 832 ms, Avg RTT: 0
TestSession_73 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 835 ms, Avg RTT: 0
TestSession_74 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 832 ms, Avg RTT: 0
TestSession_75 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 832 ms, Avg RTT: 0
TestSession_76 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 730 ms, Avg RTT: 0
TestSession_77 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 731 ms, Avg RTT: 0
TestSession_78 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 833 ms, Avg RTT: 0
TestSession_79 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 833 ms, Avg RTT: 0
TestSession_80 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 835 ms, Avg RTT: 0
TestSession_81 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 835 ms, Avg RTT: 0
TestSession_82 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 836 ms, Avg RTT: 0
TestSession_83 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 836 ms, Avg RTT: 0
TestSession_84 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 729 ms, Avg RTT: 0
TestSession_85 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 837 ms, Avg RTT: 0
TestSession_86 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 836 ms, Avg RTT: 0
TestSession_87 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 515 ms, Avg RTT: 0
TestSession_88 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 636 ms, Avg RTT: 0
TestSession_89 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 837 ms, Avg RTT: 0
TestSession_90 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 544 ms, Avg RTT: 0
TestSession_91 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 839 ms, Avg RTT: 0
TestSession_92 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 645 ms, Avg RTT: 0
TestSession_93 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 670 ms, Avg RTT: 0
TestSession_94 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 677 ms, Avg RTT: 0
TestSession_95 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 716 ms, Avg RTT: 0
TestSession_96 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 747 ms, Avg RTT: 0
TestSession_97 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 810 ms, Avg RTT: 0
TestSession_98 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 811 ms, Avg RTT: 0
TestSession_99 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 811 ms, Avg RTT: 0
TestSession_100 - Total Packet Count: 26900, Min RTT: 0 ms, Max RTT: 813 ms, Avg RTT: 0


테스트 서버 세션 패킷 일부

더보기

TestSession_1 - RTT 1: 151 ms
TestSession_1 - RTT 2: 0 ms
TestSession_1 - RTT 3: 0 ms
TestSession_1 - RTT 4: 0 ms
TestSession_1 - RTT 5: 0 ms
TestSession_1 - RTT 6: 0 ms
TestSession_1 - RTT 7: 0 ms
TestSession_1 - RTT 8: 0 ms
TestSession_1 - RTT 9: 0 ms
TestSession_1 - RTT 10: 0 ms
TestSession_1 - RTT 11: 0 ms
TestSession_1 - RTT 12: 0 ms
TestSession_1 - RTT 13: 0 ms
TestSession_1 - RTT 14: 0 ms
TestSession_1 - RTT 15: 0 ms
TestSession_1 - RTT 16: 0 ms
TestSession_1 - RTT 17: 0 ms
TestSession_1 - RTT 18: 0 ms
TestSession_1 - RTT 19: 0 ms
TestSession_1 - RTT 20: 0 ms
TestSession_1 - RTT 21: 0 ms
TestSession_1 - RTT 22: 0 ms
TestSession_1 - RTT 23: 0 ms
TestSession_1 - RTT 24: 0 ms
TestSession_1 - RTT 25: 0 ms
TestSession_1 - RTT 26: 0 ms
TestSession_1 - RTT 27: 0 ms
TestSession_1 - RTT 28: 0 ms
TestSession_1 - RTT 29: 0 ms
TestSession_1 - RTT 30: 0 ms
TestSession_1 - RTT 31: 0 ms
TestSession_1 - RTT 32: 0 ms
TestSession_1 - RTT 33: 0 ms
TestSession_1 - RTT 34: 0 ms
TestSession_1 - RTT 35: 0 ms
TestSession_1 - RTT 36: 0 ms
TestSession_1 - RTT 37: 0 ms
TestSession_1 - RTT 38: 0 ms
TestSession_1 - RTT 39: 0 ms
TestSession_1 - RTT 40: 0 ms
TestSession_1 - RTT 41: 0 ms
TestSession_1 - RTT 42: 0 ms
TestSession_1 - RTT 43: 0 ms
TestSession_1 - RTT 44: 0 ms
TestSession_1 - RTT 45: 0 ms
TestSession_1 - RTT 46: 0 ms
TestSession_1 - RTT 47: 0 ms
TestSession_1 - RTT 48: 0 ms
TestSession_1 - RTT 49: 0 ms
TestSession_1 - RTT 50: 0 ms
TestSession_1 - RTT 51: 0 ms
TestSession_1 - RTT 52: 0 ms
TestSession_1 - RTT 53: 0 ms
TestSession_1 - RTT 54: 0 ms
TestSession_1 - RTT 55: 0 ms
TestSession_1 - RTT 56: 0 ms
TestSession_1 - RTT 57: 0 ms
TestSession_1 - RTT 58: 0 ms
TestSession_1 - RTT 59: 0 ms
TestSession_1 - RTT 60: 0 ms
TestSession_1 - RTT 61: 0 ms
TestSession_1 - RTT 62: 0 ms
TestSession_1 - RTT 63: 0 ms
TestSession_1 - RTT 64: 0 ms
TestSession_1 - RTT 65: 0 ms
TestSession_1 - RTT 66: 0 ms
TestSession_1 - RTT 67: 0 ms
TestSession_1 - RTT 68: 0 ms
TestSession_1 - RTT 69: 0 ms
TestSession_1 - RTT 70: 0 ms
TestSession_1 - RTT 71: 0 ms
TestSession_1 - RTT 72: 0 ms
TestSession_1 - RTT 73: 0 ms
TestSession_1 - RTT 74: 0 ms
TestSession_1 - RTT 75: 0 ms
TestSession_1 - RTT 76: 0 ms
TestSession_1 - RTT 77: 0 ms
TestSession_1 - RTT 78: 0 ms
TestSession_1 - RTT 79: 0 ms
TestSession_1 - RTT 80: 0 ms
TestSession_1 - RTT 81: 0 ms
TestSession_1 - RTT 82: 0 ms
TestSession_1 - RTT 83: 0 ms
TestSession_1 - RTT 84: 0 ms
TestSession_1 - RTT 85: 0 ms
TestSession_1 - RTT 86: 0 ms
TestSession_1 - RTT 87: 0 ms
TestSession_1 - RTT 88: 0 ms
TestSession_1 - RTT 89: 0 ms
TestSession_1 - RTT 90: 0 ms
TestSession_1 - RTT 91: 0 ms
TestSession_1 - RTT 92: 0 ms
TestSession_1 - RTT 93: 0 ms
TestSession_1 - RTT 94: 0 ms
TestSession_1 - RTT 95: 0 ms
TestSession_1 - RTT 96: 0 ms
TestSession_1 - RTT 97: 0 ms
TestSession_1 - RTT 98: 0 ms
TestSession_1 - RTT 99: 0 ms
TestSession_1 - RTT 100: 0 ms
TestSession_1 - RTT 101: 0 ms
TestSession_1 - RTT 102: 0 ms
TestSession_1 - RTT 103: 0 ms
TestSession_1 - RTT 104: 0 ms
TestSession_1 - RTT 105: 0 ms
TestSession_1 - RTT 106: 0 ms
TestSession_1 - RTT 107: 0 ms
TestSession_1 - RTT 108: 0 ms
TestSession_1 - RTT 109: 0 ms
TestSession_1 - RTT 110: 0 ms
TestSession_1 - RTT 111: 0 ms
TestSession_1 - RTT 112: 0 ms
TestSession_1 - RTT 113: 0 ms
TestSession_1 - RTT 114: 0 ms
TestSession_1 - RTT 115: 0 ms
TestSession_1 - RTT 116: 0 ms
TestSession_1 - RTT 117: 0 ms
TestSession_1 - RTT 118: 0 ms
TestSession_1 - RTT 119: 0 ms
TestSession_1 - RTT 120: 0 ms
TestSession_1 - RTT 121: 0 ms
TestSession_1 - RTT 122: 0 ms
TestSession_1 - RTT 123: 0 ms
TestSession_1 - RTT 124: 0 ms
TestSession_1 - RTT 125: 0 ms
TestSession_1 - RTT 126: 0 ms
TestSession_1 - RTT 127: 0 ms
TestSession_1 - RTT 128: 0 ms
TestSession_1 - RTT 129: 0 ms
TestSession_1 - RTT 130: 0 ms
TestSession_1 - RTT 131: 0 ms
TestSession_1 - RTT 132: 0 ms
TestSession_1 - RTT 133: 0 ms
TestSession_1 - RTT 134: 0 ms
TestSession_1 - RTT 135: 0 ms
TestSession_1 - RTT 136: 0 ms
TestSession_1 - RTT 137: 0 ms
TestSession_1 - RTT 138: 0 ms
TestSession_1 - RTT 139: 0 ms
TestSession_1 - RTT 140: 0 ms
TestSession_1 - RTT 141: 0 ms
TestSession_1 - RTT 142: 0 ms
TestSession_1 - RTT 143: 0 ms
TestSession_1 - RTT 144: 0 ms
TestSession_1 - RTT 145: 0 ms
TestSession_1 - RTT 146: 0 ms
TestSession_1 - RTT 147: 0 ms
TestSession_1 - RTT 148: 0 ms
TestSession_1 - RTT 149: 0 ms
TestSession_1 - RTT 150: 0 ms
TestSession_1 - RTT 151: 0 ms
TestSession_1 - RTT 152: 0 ms
TestSession_1 - RTT 153: 0 ms
TestSession_1 - RTT 154: 0 ms
TestSession_1 - RTT 155: 492 ms
TestSession_1 - RTT 156: 0 ms
TestSession_1 - RTT 157: 0 ms
TestSession_1 - RTT 158: 0 ms
TestSession_1 - RTT 159: 0 ms
TestSession_1 - RTT 160: 0 ms


# 결과

일부 패킷 전송만 갑자기 결과 시간이 튀고 나머지는 전부 0ms가 걸린다. 아무리 로컬에서 돌아가는 클라이언트 서버 통신이라지만 걸리는 시간이 이상하다.
자동 실행되는 OnRecv 와 OnSend 함수에 Stopwatch 클래스를 사용해서 측정했는데 OnSend 메소드와 OnRecv 메소드가 같은 메세지에 의해 실행된 것인지 확실하지가 않다.

728x90