PHP 버전 7.0.33

안녕하세요! ccdm.or.kr/xe 홈페이지를 관리하고 있는 내부 근무자입니다.

저희 홈페이지의 속도가 심각하게 느려서 관련 질의 드리게 되었습니다!

 

불필요한 모듈 제거에 대한 것도 홈페이지 로딩에 영향을 끼칠 수 있다.는 내용으로 이해를 했는데

( https://xetown.com/questions/1350292 )

위의 게시글의 이해입니다. 저희 홈페이지를 확인해 보셨으면 아실 수 있지만 무언가를 구매 판매하는 사이트가 아닌 글 게시가 주된 용도여서

 

누리고에서 제공되는 결제관련 모듈들을 제거하고자 합니다.(통화관리, 결제방식 등등)

 

유지보수관리를 외주를 주고 있는데요. 모듈을 지운다고 크게 사이트 개선이 될 거라고 생각지는 않는다고 해서 

확인 차 이렇게 질문 드리고요.

슬로우 쿼리 확인을 호스팅 업체에 의뢰를 해 놓은 상태긴 합니다.

 

홈페이지 속도 향상을 위해 조언을 주실 수 있는 부분이 있으면 해주시면 너무나 감사하겠습니다. 

  • profile

    불필요한 모듈이나 애드온 등을 지우면 당연히 빨라집니다. 얼마나 빨라지느냐의 차이일 뿐, 지운다고 손해볼 것은 없습니다. 못해야 본전이고, 운이 좋으면 굉장히 느린 녀석을 지우게 될지도 모르지요.

     

    메인화면에 각 카테고리별 최근글 등의 위젯이 많은데, 각 위젯에 몇 분씩이라도 캐시를 설정하시면 로딩속도에 도움이 될 수 있습니다. 위젯이 많아서 느린 것은 슬로우 쿼리에 잘 잡히지도 않습니다. 각각의 쿼리가 느린 것이 아니라 그냥 쿼리를 많이 하는 것뿐이니까요. 아무리 빠른 쿼리라도 수백 번 반복하면 오래 걸릴 수밖에 없습니다. 이런 경우에는 XE 자체의 디버그 기능을 활용하여 쿼리 목록과 각각의 소요시간을 찍어보는 것이 훨씬 정확합니다.

     

    만약 웹호스팅을 사용하신다면 가상서버나 단독서버로 옮겨서 서버 사양을 대폭 늘리는 것이 가장 간단한 방법이긴 합니다. 웹호스팅은 제공되는 자원도 적고, XE처럼 파일 수가 많은 솔루션 사용시 I/O 성능 같은 면에서 상당히 손해를 보는 구조입니다. 최종 버전이 아니라 살짝 어정쩡한 버전의 XE라면 opcache_invalidate 문제 때문에 더 심할 수도 있습니다. 성능도 빠르고 기능도 훨씬 강력한 라이믹스로 업그레이드하는 것도 고려해 보세요.^^

  • profile
    호스팅이나 서버 사양 정보가 없는 질문이라 적절한 답변을 받지 못하실 수도 있겠네요.
    사양이 심각학게 저사양이거나 호스팅서버가 느린 처리밖에 못해준다면 한 화면에 많은 정보를 담으려고 조회량이 많아지면 어쩔수 없이 느려집니다.

    가장 빠른 해결은 해당 쿼리를 소화할 수 있는 사양으로 서버를 변경하는 것입니다.
  • profile profile
    호스팅은 NHNhosting(전 고도몰)의 리눅스 골드 서비스로 현재 40G중 25G를 사용하고 있으며 (용량)
    60G트래픽을 가지고 있습니다. 서버 내에서는 실시간 모니터링 과부하 접속이용자 생길 시 차단 관리 등의 기본 사후 관리 서비스가 포함되어 있어 호스팅 쪽 문제는 적을 것으로 판단 중에 있어 별도로 올리지 않았었습니다.
  • profile profile

    느려질만한 서버는 아닌것 같습니다.

    7.0이 상당히 오래되었지만 그만큼 느리진 않거든요.

    라이믹스라면 프로파일링을 어느정도 해볼수 잇겠지만 그게 아니라면 XE프로파일러 모듈을 이용해서 느린 트리거나 애드온이 무엇인지 정도는 찾아보시는게 좋을 것 같습니다.

    https://github.com/xpressengine/xe-module-profiler

    정확하게 진단하여 특정한 느린 모듈이 있는지 한번 찾아보시는 것도 나쁘지는 않습니다.

    만약 디비쿼리속도에서 문제가 있다면 해당 특정쿼리만 느린것인지 아니면 전체적으로 다 느린것인지 등등 찾아보셔요.

     

    이것부터 한걸음씩 찾아가야 잡을 수 있겠지요 :)

  • profile profile
    좋은 답변 감사합니다! 가진곰님 말씀처럼 라이믹스로 수정해볼까도 지금 검토 중에 있는데요. 해당 주신 정보로 현재 진단하고 개선할 수 있는 게 가장 좋은 방향인 건 확실한 것 같습니다!
  • profile profile

    글쎄요. 일단 제가 보기엔 현재 사이트에 동접이 얼마나 되는지 모르겠지만 동접이 수천명 정도 이상의 많은 곳이 아니라고 가정한다면 아래 예시 페이지를 띄우는데도 오랜시간이 걸리는 것으로 보아 서버에 문제가 있어 보입니다. 물론 디버깅을 통한 정확한 원인을 찾아보는건 당연히 해야겠죠.

     

    올려주신 정보가 웹호스팅의 상품 같은데요. 웹호스팅은 언제라도 다른 사이트의 과부하로 내 사이트가 느려지는게 당연한 구조의 서비스입니다. 해당 회사에서 얼마나 찾아내서 쫒아내느냐는 그건 회사마다 역량과 노력의 정도가 다를 뿐이죠.

  • profile profile
    저희 사이트 하루 최대 방문자가 1000명을 넘은 날이 11월 중 하루이고 페이지뷰는 최소 일일 2000을 넘고 많은 날은 5000을 넘긴 수준인데 상관없이 지속적으로 느려왔었던 부분이 있습니다.

    여러가지 요인이 복합되다 보니 해당 문제인지를 확인하기 위해서는 내부 작업을 좀 더 거치고 나서 확인이 가능할 것 같네요. 그래도 좋은 의견 감사합니다!
  • profile profile

    네. 그 정도라면 사이트가 왠만큼 잘못된 자료를 사용하지 않고서는 그렇게 느려지지 않아요. 서버문제일 확율이 높습니다.

    하루에 그정도 방문이라면 동접이 몇명 안됩니다. 10명 이내...  아니 한두명...

     

    *이런 왠만큼이 아닌 왕창 잘못된 자료를 쓰고 계셨네요. 첫 접속시 국가정보를 받아와야 하는 자료를 쓰실 줄은......

  • profile
    http://www.ccdm.or.kr/xe/ccdm_about

    이런 페이지는 서버에 많은 데이터를 요청해서 결과를 보여주는 곳이 아닌데도 굉장히 많은 시간의 응답시간이 필요한 상황이네요. 서버 자체에 문제가 있거나 하는 문제가 있을 수도 있을겁니다. 대단히 많은 사람이 지금 홈페이지에 상주하고 있어서 생기는 문제가 아니라면요....

    웹호스팅이시라면 서버상태가 안좋을 수 있습니다. 운영하시는 사이트에 방문자가 많지 않아도 다른 입주한 많은 사이트들 중에서 지금 굉장히 많은 리소스를 사용중일수 있습니다.
  • profile
    혹시 리퍼러 통계, 접속 위치 추적 등 다수의 이용자에 대한 정보를 수집, 분석하는 기능을 수행하는 모듈이나 애드온이 설치되어 있다면 1순위로 삭제해 보시기 바랍니다. 기본 카운터 기능도 끄시고요. 이런 자료들은 데이터가 많이 쌓일수록 느려지기 때문에, 호스팅에서 성능 잡아먹는 주범입니다. 접속자 통계는 구글 애널리틱스 등 외부 서비스를 이용하셔야 합니다.
  • profile profile
    + 인증세션db 사용 은 무조건 해제
  • profile profile
    확인해보도록 하겠습니다! 감사합니다!
  • profile profile
    일단 진짜 있네요...막 ip랑 접속국가 그런 거 있는데 당장 없애고 싶지만 구글애널리틱스 이용법도 제대로 몰라서 확인하고! 진행할 수 있도록 하겠습니다. 정말 감사합니다! 홈페이지 날아가면 진짜 1순위로 절 드립니다.
  • profile profile
    !!네!!
  • profile profile

    ip 접속국가 있는 버전이라면 그게 범인입니다. 왜냐면 국가 정보 얻어오는 api 서버에 요청해서 국가를 받아와야 하는데  처음 접속시 무조건 거기에서 데이터 받아올겁니다. 근데 거기 api의 응답이 느릴겁니다. 범인 잡았네요. 중단하세요.

    리퍼러모듈은 무조건 쓰지 마세요.

     

    한번 접속 후 다시 새로 접속하기 전까지 느리지 않은 이유를 찾았네요.

  • profile profile
    눈물...실행하도록 하겠습니다. 진짜...홈페이와의 씨름...ㅎ 이겨내겠습니다! 답변자분들 모두모두 감사합니다!!!
  • profile profile
    우선적으로! 다 끄지는 않고 14일 데이터 정도는 가지고 있을까라는 쓸데없는 생각으로 설정은 그렇게 바꿔놓았는데요.

    홈페이지 다이렉트 링크는 개선이 된 것 같습니다! 그런데

    기타 포탈에서 검색을 통해 들어가는 (키워드:민언련) 루트를 이용하면 여전히 느린 문제가 발생하네요. 해당 부분은 어떤 부분들로 진단될지 궁금하네요. 일단 나머지 부분들도 좀 더 지우고 확인해야 겠습니다.

    14일 데이터는 저희가 현재 구글 애널리틱스 이용법을 몰라서 궁여지책으로 해놓았네요 ㅎㅎ

    감사합니다
  • profile profile

    14일 데이터가 문제가 아니고 중단해야 합니다. 계속 사용하시면 데이터 양과 관계없이 느려요.
    처음 접속시 무조건 느려요.

    지금 한번 접속후 안느린 이유는 처음에만 국가정보를 확인하기 때문입니다.
    절대적으로 사용 중단하세요. 라잇 나우!

     

    지금 리퍼러모듈 사용중지 하신거 아닌가요? 이제 느리지 않은데요?

  • profile profile
    그냥 지우시고 애널리틱스 적용방법을 타운에서 검색하셔서 직접 적용하시는편이 훨 낫습니다.

    seo pro모듈과 같은 특정 유료모듈을 활용하신다면 쉽게 애널리틱스를 적용할 수 있기도 합니다.
  • profile profile
    아닐리틱스야 그냥 스크립트만 넣으면 되는데요......
  • profile profile
    저희야 그냥 스크립트를 잘 넣으면 돌아가니 편하게 스크립트를 넣죠.

    처음 접하시거나 스크립트를 넣지 못하는 사람들 기준에서는 또 다르죠.ㅎㅎ

    처음 웹지기님도 그런시절 다 겪으셨을테고 저 또한 그 시절을 거쳤으니 질문기여자분께서도 당연히 그럴수 있다는 생각에 답변 드렸습니다 ㅎㅎ
  • profile profile

    네. 그렇지만 스크립트 전체를 넣는거랑 , id만 넣는거랑의 차이가 사실 거의 없는 상황이라 이런 것에 유료로 유도하는건 좀 아니라고 생각합니다.

    저도 그런 시절 겪었지만 스크립트를 사이트 설정의 헤더에 넣고 하는 것이 유료에 의존할 것에 적합한지는 의문입니다.

     

    *그리고 질문자분 구글 아날리틱스 사용하고 싶다면 제 기억으로는 XE의 SEO 모듈은 모듈 설정에서 구글 아날리틱스의 스크립트 전체가 아닌 id만 넣게 입력 하게 되어있을 겁니다. 거기에 id만 넣으시던지 아니면 사이트 설정의 상단 스크립트 입력에 스크립트 전체를 넣으시면 됩니다.

  • profile profile
    ㅠㅠ 다 지웠습니다. 그냥 초기화 했는데요. 너무 빨라져서 저 아드레날린이 너무 많이 나와서 뭐라 설명을 ...더 못하고 있습니다. 여러분들 절 받으세요 ㅠㅠ
  • profile
    제가 재밌는 걸 찾았는데요. 구글 에널리틱스 서비스도 이용하고 있었다는 겁니다... 모듈이 에드온이랑 같이 묶여 있어서 관리자 페이지 삭제가 안 되어서 나중에 db나 ftp삭제 조치를 해야 할 거 같습니다. 필요없는 것이여 안녕.(현재는 에드온 기능을 꺼서 데이터 수집을 중지해 놓은 상태! 입니다.)
  • profile profile
    그냥 ftp 에서 모듈,애드온 만 삭제하셔도 됩니다.
  • profile

    지금은 (위에서 개선한 이후겠네요) 첫 페이지 다운로드에 2.4초 정도 걸리는데, 서버 성능(CPU, DB, 모듈, php 등)과 관련된 것은 0.4초 정도이고, 나머지 2초 정도는 최적화의 영역으로 보여집니다. 생각나는 것을 적어보면,

    - keep alive 가 적용이 안되어 첫페이지만해도 100개 넘는 아이템을 다운받을때마다 매번 새로운 socket을 만들고 있네요. keepalive timeout을 60s, keepalive requests를 200 정도로 하면 어떨까 합니다 (첫 페이지 아이템이 100개가 넘어가니까요).
    - gzip 적용이 안되어 있습니다. gzip을 쓰면 html, css, js 다운로드에 시간을 많이 절약할수 있는데요. 
    - css와 js 합침 기능을 사용하면 역시 시간을 크게 절약할 수 있습니다. (관리자 페이지에 옵션이 있음. 적용후 에러없이 잘 되는지 테스트 필요합니다).
    - 섬네일을 많이 쓰는데 이미지 압축이 안되어 있네요. 예를들면 현재 370x200 pixel jpg가 83KB인데 압축이 전혀 안되었을때의 사이즈입니다. 이 파일을 50% 퀄리티로 압축하면 25KB가 되는데 썸네일 크기 정도 이미지는 화질차이가 거의 없죠. 
    - 외부 폰트를 40개나 각각 로딩하고 있는데, 필요한 것인지 모르겠네요. (필요할수도...)
    - ssl 적용을 하면 좋을 것 같습니다. 홈페이지 신뢰도가 높아 보이게 할수 있으니까요. 검색 순위에도 영향을 주죠. (지금은 아니지만 추후 SSL 적용하게되면, ssl session cache, ssl session timeout, stapling on, stapling verify on 도 설정해야 합니다).
    - doubleclick script가 필요한가요?
    - 홈페이지가 /xe/ 없이 보이도록 하면 좋을것 같네요. 
     

    추가설명: xe에는 thumbnail 생성시 압축률 지정 기능이 없는 것 같은데 /classes/file/FileHandler.class.php에서 imagejpeg($thumb, $target_file, 100); 라는 부분을 찾아서 100을 70 (혹은 75, 60, 80 등)으로 바꾸면 됩니다. thumbnail에는 50도 좋지만 xe에서는 이 부분이 thumbnail 생성시 뿐만 아니라 image resize 에도 같이 작용하므로 70 정도가 적당할수 있습니다. 수치 변경후 /files/thumbnails/ 폴더 내용을 모두 삭제해야 새로 썸네일이 만들어지겠죠.

  • profile profile
    감사합니다! 꼭 적용하고 또 후기 남기도록 하겠습니다!
  • ?

    다른건 다른 분들이 많이 답변해주셔서..

    도메인 뒤에 /xe 붙은거 부터 수정하시는게 ㅠㅠ.

     

    더 빠릿 빠릿한 홈페이지를 원하신다면 기진곰님이 만들어놓으신

     

    슈퍼캐시 모듈도 추천드려요..

    게시글이나 DB용량이 많으면 강추

     

    https://xe1.xpressengine.com/index.php?mid=download&package_id=22753865

     

    그리고 바로 위에서 말씀해주신 외부폰트 절대 쓰지마세요.. 해외 사이트나 외부폰트 사이트들이 버벅거리면

    사이트도 같이 버벅거려집니다:) 

     

    https://developers.google.com/speed/pagespeed/insights/?url=http%3A%2F%2Fwww.ccdm.or.kr%2Fxe%2F%3F

  • ? profile
    아직 xe 공홈 다운로드 페이지가 막혀 있네요... 다운이 저만 안 되는 거려나요 해외 공격 받아서 닫아 뒀고 다시 열거랬는데 감감무소식이네요 ㅠ
  • profile ?
    https://github.com/poesis/xe-supercache 여기서 받으세요
  • ?
    같은 경험담 공유합니다. 슈퍼캐시를 사용하세요 효과 놀랍습니다.
  • profile
    https://pagespeed.web.dev/report?url=http%3A%2F%2Fccdm.or.kr%2Fxe%2F&hl=ko
    늦은답이지만 조오금은 도움될거에요