자유 게시판

2024.07.23 18:43

ajax채팅 부하테스트!

떡밥입니다~ ^^;

부하테스트 중입니다 ㅎ

쪽지와는 별개로 새 테이블을 사용합니다.

실시간처리를 위해 인터벌을돌리는데 부하를 최소화 하는중입니다..


이미지 첨부시 이미지를 서버로 저장할 수 밖에 없는데

데이터용량이 걱정입니다..


채팅사용유무는 관리자가 설정하게하고

최대 업로드 가능한 용량, 인터벌(갱신주기)을 관리자가 설정하게 합니다.

이미지는 당연히 드래그 앤 드랍을 지원합니다.


일전에 SIR에 배포했을때 생기던 오류들은 모두 해결이되었고
PHP5~PHP8 테스트는 마쳤습니다.



-----------

부하 테스트 / 오늘 처리할 항목 입니다.


1. 폴링 간격 줄이기

폴링 간격을 줄여 서버에 전송되는 요청 수를 줄입니다. 

사용자의 평균 활동 수준에 따라 간격을 조정할 수 있습니다. 

예를 들어, 활동이 낮은 경우 간격을 5-10초로 늘릴 수 있습니다. 


2. 조건부 폴링 

사용자가 채팅 창에 적극적으로 참여하고 있을 때만 

서버에 폴링하는 조건부 폴링을 구현합니다. 

이를 위해 타이핑이나 포커스 이벤트와 같은 사용자 활동을 감지할 수 있습니다.


3. 효율적인 데이터 가져오기 

서버에서 전체 채팅 기록을 다시 가져오지 않고 

새 데이터만 가져오도록 합니다. 

이미 max_id 매개변수를 사용하고 있지만, 이를 완전히 최적화되었는지 확인합니다.


4. 압축 및 캐싱

서버 응답이 압축되었는지(예: gzip 사용) 확인하고 정적 리소스에 대한 캐싱 헤더를 활용합니다.


5. 사용자 행동 디바운싱

타이핑과 같은 빈번한 사용자 행동에 대한 디바운싱을 구현하여

불필요한 서버 요청을 줄입니다. 


6. 서버 사이드 최적화

서버 측에서 SQL 쿼리 최적화, 캐시 사용, 비동기 처리 등을 통해 서버 부하를 줄일 수 있습니다.



오.. 오늘?!


d6ee911b0c3897bbc90128ab23f65a33_1721727797_6713.png
 

  • 공유링크 복사
    미니홈 쪽지 구독하기
    구독하고 알림받기

    댓글목록

    profile_image
    Leegun미니홈 1:1 대화하기  오래 전

    오!!!! 기대 됩니다 ㅎㅎ

    2024-07-23 19:17

    profile_image
    profile_image
    no_profile rainbow미니홈 1:1 대화하기  오래 전

    리빌드톡이네요 ^^ 리톡, 리톡 ㅎㅎ
    웹호스팅에서 소켓방식으로 사용할 수 있는 획기적인 방식이 있음 넘 좋을텐데...
    아직까진 펄스나인님의 방식이 최선일 듯..

    sir에 공개해 주신 것도 잘 사용하고 있습니다^^~

    2024-07-23 20:47

    profile_image
    펄스나인미니홈 1:1 대화하기  오래 전

    아 사용하고계셨군요 ㅎㅎ
    예전에 공개한것은 부하나 오류가 좀 있을거에요..

    이미지나 파일첨부를 가능하게 했고,
    메세지 전체를 불러오는 방식에서 하나씩 불러오는 방식으로 바꾸고
    매 초당 요청하던 부분을 이벤트가있을대만 요청하는걸로 바꿔서 부하를 줄였습니다~

    저도 웹소켓이 아쉽습니다 ㅠ
    Ajax로 할 수 있는 최대한을 해보고 있습니다 ㅎ

    나중에 기회가 된다면 노드로 해보고싶네요~

    2024-07-23 21:50

    profile_image
    no_profile rainbow미니홈 1:1 대화하기  오래 전

    역시 대단하시네요.
    나중에 리빌드 더 활성화 되었을 땐, 리빌드 전용 api방식 채팅(노드)의 유료화로 확장해 보세요^^

    펄스나인님 테스트 끝나고 빨리 공개되면 좋겠습니다. 적용해 보고 싶네요^^

    2024-07-23 22:17

    profile_image
    펄스나인미니홈 1:1 대화하기  오래 전

    네 ㅎㅎ 오늘 업로드될 예정입니다~

    2024-07-23 22:20