사이트가 워낙 느려서 메인페이지 반응을 조금이나 빠르게 해보려 했던게 얼마전에 일인데요. 그때도 가장 효과를 볼 수 있는게 바로 캐시의 활용이었습니다.
단, 저와 같은 단순 사용자의 경우 XE에서 제공하는 캐시를 사용하는 수준이죠. 그래서 메인페이지의 모든 위젯의 캐시를 설정하고 또 각 게시판의 상단에 배치된 인기글위젯도 모두 캐시가 적용될 수 있도록 코드도 전부 새로 작성했었습니다.
메인페이지의 경우 쿼리가 많기에 캐시를 지정한 것과 아닌것의 차이가 분명이 있고 또한 캐시만료를 모두 같은 시간에 되지 않게 시간차를 두고 설정도 하려고 했습니다.
그런데 최근 슈퍼캐시의 풀페이지 캐시는 정말 놀라울 정도의 속도를 보여줍니다. (물론 비로그인시입니다.) 슈퍼캐시가 나오기전에 저희 사이트에 로그인시 굉장히 느려짐을 제가 확인하고 굉장히 당황해 있었습니다. 불과 얼마전 일입니다.
그때 @기진곰님의 도움을 받아 분석을 해보니 저희 사이트에서 사용중인 알림센터 개인알림들이 너무 많이 싸여 있다보니 페이지 이동시마다 이 쿼리때문에 굉장히 ???(2-3초 지연) 느려지는 사태가 발생했습니다.
기진곰님께서 긴급조치를 해주시고 다시 정상적인 속도로 사용이 가능했습니다.
이후 알림센터는 계획된 패치로 캐시를 사용해 매번 쿼리하지 않는 형식과 DB구조가 개선되었습니다.
요즘 슈퍼캐시와 알림센터 개선 만으로도 이전에 체감하지 못했던 반응속도에 굉장히 만족스러운 사이트가 되었습니다. 물론 로그인시의 속도를 말씀 드리는 겁니다. 비로그인시는 광속이구요...
ssh 접속이 가능하신 분들은 아마 db쿼리가 발생할때 cpu 점유율 확인해보시면 상당한 부하가 발생한다는 것을 확인하실 수 있을겁니다.
저희 사이트에 알림센터 알림이 너무 많아 쿼리시 부하가 발생할때 CPU 점유가 순간적으로 90% 까지 올라가는 것을 확인했었는데요. 이렇게 캐시기술로 DB의 일을 줄여주면 서버가 굉장히 쾌적하게 운영이 될 수 있습니다.
캐시만세!