Q&A

임베드파싱모듈 속도 및 멈춤 질문 드립니다.

2022.06.30 06:26
1,476
1
CMS/프레임워크 Rhymix 2.0
개발 언어 PHP 7.4
문제 페이지 주소 비공개 (작성 후 5일 경과)

 

안녕하세요.

 

윤삼님/람보님께서 개발해주신 임베드파싱모듈을 사이트에 설치해서 사용중인데 아래와같은 이슈가 있는듯해서 질문드립니다.https://xetown.com/download/729179

 

아마 본문/댓글에 링크가 많은경우에 링크를 파싱하는 과정에서  서버와 오래 통신하면서 댓글도 안달리고 페이지 이동도 안되는 문제가 있습니다.

 

임베드 파싱모듈의 속도를 빠르게하는방법이나 사용자에게 영향(댓글을 달려고하면 페이지가 멈춤..)이 안가게하는방법이있을까요??

현재 오브젝트캐시/DB저장 모두 사용하고있는데도 그렇습니다..ㅠㅠ

상항 발생하는건 아니고 파싱이 빨리될때도있고,, 늦게될때도있고,, 늦게될때 발생합니다

 

 

20220630_152219.png

 

 

현재 해당이슈로 모듈을 정지시켜놓은 상태로 테스트페이지에서만 재현가능합니다.

 

https://svrforum.com/test/336135

 

오래걸리면 이렇게 타임아웃도 나옵니다 ㅠ

20220630_153036.png

karius Lv. 4

댓글 8

  • 2022.06.30 07:00 #1694843
    임베디드 파싱 모듈의 큰 문제는 이미지를 db에 저장한다는 것이죠...
    중간 처리 과정을 보면 진짜 무겁습니다.
    이미지 크기에 따라서 최소 수십KB에서 수백KB짜리 텍스트가 DB에 저장됩니다. base64로 인코딩하는 과정에서 원래의 이미지 파일 크기보다 50% 이상 커지죠. 그리고 그걸 또 다시 serialize로 인코딩하죠..
    딴건 가만 놔두고 이미지를 db에서 저장하는 부분만 덜어내면 확 가벼워질겁니다.
  • 2022.06.30 07:53 #1694863

    그렇군요.... ㅠㅠ
    궁금한점은 캐시로 이미 해당 url이 저장되면 불러오는데 속도차이는 없어야할것같은데
    그때그때 불러오는 속도가 다릅니다.(서버에 요청중입니다... // 파싱이 됐다/안됐다 하는부분..)

    +파싱이 안되서 무한로딩이 걸리는경우...
    이건 왜그럴까요??

  • 2022.06.30 09:39 #1694896

    그 캐시라는게.. 말씀드린 이유로 차라리 없는 것만 못한 수준이라고 보시면 될겁니다...

    음.. 그렇게 파싱이 느린 경우에는 화면에 표시된 사이트 설명에서 이미지 파일 크기가 얼마나 되는지 한번 체크해보세요. 아마 이미지 파일 크기가 상당히 클겁니다. 최소 수백KB 수준? 

    https://melonicedlatte.com/web/2020/01/27/000100.html

    이 글을 한번 읽어보세요. 이미지를 base64로 인코딩해서 디비에 넣는게 얼마나 무거운 동작인지 설명하고 있습니다. 이 글을 쓴 사람도 비슷한 식으로 만들었다가 2~5초씩 걸려서 힘들었다고 하고 있지요?

    https://velog.io/@windsekirun/Android-Base64-Performance-Benchmark

    이건 base64 인코딩 테스트를 갤럭시 S8에서 한건데... 1.2MB짜리 이미지 파일을 Base64로 바꾸는데 6초가 걸립니다. x86에서 테스트한걸 못찾긴 했는데.. 서버가 훨 빠르긴 할테지만 어쨌든 파일 크기에 따라서 초단위로 걸리는 작업인걸 알 수 있습니다. 아까도 설명드렸다시피 이걸 다시 serialize/unserialize 하는 과정도 있어서 더욱 느려지구요... 뭐 그렇다고해서 ajax가 실패까지 날 정도로 느릴 것 같지는 않지만... 서버 상태에 따라선 충분히 실패도 가능할 것 같습니다.

  • 2022.06.30 12:35 #1694935
    상세한 설명 감사드립니다. 스노우볼이 굴러가서 모듈 패치까지 완벽해졌습니다!
  • 2022.06.30 09:56 #1694904
    이 모듈을 쓰시려면 base64로 저장하는 부분을 걷어내고 이미지를 url만 저장하게 해야합니다. 사실 이미 url은 같이 저장하고 있거든요. base64로 저장하는 부분만 그냥 걷어내면 됩니다.
  • 2022.06.30 10:03 #1694913
    아 테스트 링크가 있길래 보니까 역시 이미지가 크군요.. 919KB.. 365KB... 149KB...
  • 2022.06.30 10:01 #1694910
    이미지 처리 부분을 사진을 따로 저장하도록 하였고 base64데이터를 더이상 저장하지 않도록 고쳤습니다.

    업데이트 소식게시판에 업로드 해드렸으니 확인해보세요
  • 2022.06.30 10:38 #1694921
    빠른피드백 정말 감사드립니다! 적용 후 바로 테스트해보도록하겠습니다