https://gall.dcinside.com/board/view/?id=rlike&no=458055

웹죽 딜레이에 대해서 - 로그라이크 갤러리

몇달 째 이게 문제되서 나도 가끔 돌죽 한판씩 하려다가 끊기는게 느껴지면아 호주죽할까? 아 호주죽 할바엔 안해~ 약간 이렇게 되서 안하게 되는데--이 문제가 해결이 안되는 이유는 간헐적이어서 그런 것 같음원래 이쪽 분

gall.dcinside.com


https://gall.dcinside.com/board/view/?id=rlike&no=459000

DWEM 프로젝트 시작 - 로그라이크 갤러리

https://youtu.be/vChoTN2JkfUDWEM(dcss-webtiles-extension-module)이 뭐나면 웹죽 확장 모듈의 후속 버전임2017년 쯤에 확장 모듈을 개발할 때는 사실 본인이 웹 환경에

gall.dcinside.com


최근에 만든 확장 모듈 프레임워크 위에서, 지연시간 측정기 만들어서 한번 돌려봤음

측정 방법은 h또는 l키 누르고 서버에서 무언가 데이터가 올 때까지 속도 측정함 (가로 축은 시도 횟수, 세로 축은 측정 지연 시간)

measurementInterval은 각 측정 사이 간격(MS)임, 처음에 100으로 시작했는데

중간에 채팅창에 50, 30으로 조절했다고 보여주고 수치 바꿔서 실험하는 부분 있음


50MS: https://www.youtube.com/live/3haLIX9W7zY?si=RQj7EBIL6Jqiks06&t=398

30MS: https://www.youtube.com/live/3haLIX9W7zY?si=B0x1lSYDBFdYdmzu&t=513


영상 쭉 보면 알겠지만


기본적으로 역시 물리적으로 가까운 한섭이 제일 빠르긴 함

평소 응답 시간은 대충 한: 20~50MS, 일: 50~80MS, 호: 60~100MS 정도 되는 듯


근데 측정 간격 100MS에서는 그냥 저냥이었는데, 측정 간격을 더 빠르게(부하를 많이 줄수록)

한섭만 크게 튀는 현상이 관찰되었음


24b0d121e09c28a8699fe8b115ef0469933df0b9f1

https://www.youtube.com/live/3haLIX9W7zY?si=UmWQGrW6kykDOZwJ&t=668

이게 측정 간격 30MS로 실험했을 때, 2초씩 튀어버린거고, 이거 외에도 30MS 실험 중에 300~600MS로 튄게 몇번 관찰 되었음

근데 다른 서버는 튀는게 측정이 되진 않음

(이 부분은 물론 한섭에는 단위시간당 명령을 더 많이 때려박을 수 있는데, 다른 서버는 그렇지 못한 부분이 있긴 하다, 실제로 그래프 갱신 속도도 한섭이 제일 빠름)


그건 그렇다고 쳐도 크게 튀는 현상은 문제가 맞긴 한 듯


[결론]

1. 측정 간격을 길게하면 튀는 빈도가 덜하고, 짧게 하면 튀는 빈도가 커짐

2. 평소 응답 시간은 한섭이 가장 낮게 나옴


추측이지만 내 생각에는, 네트워크나 회선 문제가 아니라 서버에 I/O나 CPU 성능을 갉아먹고 있는 프로그램이 뭔가 돌고 있는게 아닌가 싶음

그 프로그램이 자원을 점유하고 있는 시간동안 돌죽 클라이언트 연산이 뒤로 밀리니까 시간이 튀는건데

측정 간격을 길게 줘서 측정해보면 덜 튀는거보면 측정 간격이 길면 그 갉아먹는 애까지 처리할 시간과 유휴 자원이 충분하니까 덜 튀는거고


측정 모듈은 확장 모듈 개발 어느정도 되면 (지금은 모듈 매니저 작업 중), 쓸 수 있게 언젠가는 공개 모듈로 올라갈 것 같음

++ 당장 써보고 싶은 사람들은 웹축 하단 채팅창에서 "Toggle DWEM (Disabled)" 눌러서 DWEM 켠 다음, 주소창에

javascript:var D=JSON.parse(localStorage.DWEM);D.Modules.push('../modules/latency-indicator.js');localStorage.DWEM=JSON.stringify(D);alert('Module added');location.reload();

입력하고 새로고침하면 사용해볼 수 있음 ("javascript:" 부분은 수동으로 쓸 것, 이 방법은 임시적인 것으로, 향후 또는 조만간 사용 불가할 수도 있음)