묻고답하기
인증 세션 DB 활성화만 했을 경우에 사이트 느려질수있나요?
2014.08.02 00:34
로그인 할때 "로그인유지" 체크박스에 체크를 하고 로그인유지 기능을 사용하기 위하여
인증세션 DB를 활성화 하였습니다.
동시접속자를 구한다던가 그런거는 하지 않구요.
오로지 "로그인유지" 기능때문에 인증세션 DB를 쓰는것인데 사이트에 무리가 올수 있을가요?
사이트에 방문자가 많아진다던가 그러면 db접속이 월활하지 않는다던가 사이트 속도가 저하된다던가 그럴수 있나요?
댓글 12
-
Gunmania
2014.08.02 01:50
-
졸라맨
2014.08.02 13:25
네, 그렇네요.
세션db체크하고 db 테이블 확인해 보니,,
저 혼자서만 페이지 와따가따 거려도 제 ip에 대해서 세션키만 수십개에서 수백개 짧은시간에 db에 저장되어있네요..
짧은시간동안에 수백개의 db가 쌓이네요..
한달만 켜놓으면 진짜 장난아니겠어요.
일일이 db에서 세션하고 쿠키 비교하고 저장하고 db쿼리 난리나겠는데요..
무서워서 후덜덜해서 그냥 바로 db세션 껐습니다.ㅎㅎ
-
몽실아빠
2014.08.02 13:41
서버에 따라 다른데요. 호스팅을 사용하신다면 db커넥션 리미트 때문에 문제가 생겨버릴겁니다. 커넥션을 동시에 유지할수 있는게 제가 예전에 사용하던 호스팅의 경우 30커넥션 정도이더라구요. 그래서 db인증세션 사용하면서 동접자가 조금 생겨버리면 db연결이 리밋초과로 접속이 안되는 사태가 벌어지죠...
-
졸라맨
2014.08.02 14:13
서버에 따라 다르나요? 음.. 제가 볼때는 서버환경에도 물론 차이가 있을지 모르겠지만..
기본적으로 xe_session 테이블에 세션값과 사용자 정보를 어마어마하게 저장한다는거 ..
이 저장된 db를 사용자 쿠키값하고 비교해서 맞으면 인증이 되는방식이니까..
결국엔 db에 쌓이는 데이터양은 무시못하는거라고 생각이 드네요.. 진짜 건마니아님이 말씀하신대로 몇기가가 우스워질정도로 데이터가 쌓이면 그거 비교하고 세션인증해주는것만으로도 엄청나게 버벅일거 같네요..ㄷㄷ
-
몽실아빠
2014.08.02 14:29
db에 쌓이는 문제를 말씀드리는게 아니고 서버자체가 느려지고 접속이 안되는 상황을 말씀하셔서 db접속이 끊어지는 케이스를 말씀 드린겁니다. 호스팅이 아니라면 db커넥션 리밋이 없어서 먼저 말씀 드린 30명 정도에서 db가 끊어지거나 하지 않습니다. 하지만 서버의 능력에 따라 무한정 커버가 되지 않아 말씀 드린거구요. 300명 정도의 동접의 경우 인증세션을 사용할 경우 일반적인 서버에서는 연결을 하지 못하는 것으로 확인한 바도 있습니다.
-
졸라맨
2014.08.02 17:02
음.. 그러한 문제에 대해서는 잘 모르겠네요..
db커넥션 리밋이라는 단어도 생소하여 뭔지 모르겟습니다.ㅎㅎ;
호스팅을 사용하면 db커넥션 리밋이라는 거에 대한 한계가 30명정도에서 끊어지고 하나봐요?
제가 아는 상식은 서버하고는 상관없이 db에 저장된 세션값하고 이용자 컴퓨터에 저장된 쿠키값을 단순 비교하여 db에 저장된
세션만료기간을 따져서 만료이면 세션이 끊어지는 방식으로 알고 있는데..
-
몽실아빠
2014.08.02 17:08
동시에 db를 접속을 물고 있는 숫자를 제한합니다. 호스팅의 경우에서는 제한하지 않으면 서버가 못버티겠죠. 어는 사이트에서 XE와 같은 구조로 db인증을 사용할지 모르니까요. 다만 db인증세션을 사용하지 않으셨기 때문에 경험하지 못하셨던 것 뿐입니다. 접속자를 확인하기 위한 모듈이 db인증세션을 요구할 경우 해당 모듈을 사용해보세요. 여러명이 동시에 접속하고 이런저런 방문이 겹치게 되면 db를 물고 있는 숫자가 30을 넘어가게 됩니다. 물론 db인증세션을 사용할 경우입니다.
그렇게 되면 그 이후 접속자들은 can not db connection.... 이란 문구를 자주 만나게 됩니다. 이럴경우 해결법은 호스팅사에 커넥션리밋을 좀 늘려달라고 요구하거나 db인증세션을 사용하지 않는 것 입니다. 하지만 호스팅사에서 많이 늘려주지는 않기 때문에 결국 db인증세션을 요구하는 프로그램은 사용을 중지하게 되죠. 제 경험입니다.
-
몽실아빠
2014.08.02 17:20
db인증세션을 사용하지 않으면 db에 저장하고 하지 않을 겁니다. 반대로 db인증세션을 사용하면 방문당 db커넥션이 1개씩 유지가 되기 때문에 문제가 되는 것이라고 알고 있고 실제로 피드백을 호스팅사에서 받았고 해결도 했었습니다.
-
졸라맨
2014.08.03 15:15
그런 문제가 있었군요.. 역시 호스팅사는 이런저런 제한을 많이 두니까 문제가 좀 많네요..
단독 웹호스팅정도로 바꿔타면 어느정도 완화가 되겠지요?
어찌됐든, db인증세션은 되도록이면 사용안하는것이 좋을것 같네요.ㅎㅎ
-
졸라맨
2014.08.02 14:15
건마니아님이 깃허브에 올려놓으신 자료중에서
"Parse를 이용하여 푸시 알림을 지원하는 XE 안드로이드 하이브리드 앱"
다운로드 받아서 설치하려고 하는데,
안드로이드 이클립스에서 workspace import 하고 불러왔는데 타이틀앞에 빨간색으로 ! 이렇게 나와요..
그래서 f5도 눌러보고 clean 도 해봤지만 안없어지네요.. sdk 라이브러리도 다 설치되어있는데
모가 문제인걸까요?
xe 로 안드로이드 푸시 한번 해볼려고 하는데.. 안드로이드는 완전초짜라서 ㅠ.ㅠ
-
銀童
2014.08.02 16:29
XE 는 은근히 세션에 많은 데이터를 저장하는데 DB 세션을 사용하면 엄청나게 많은 양을 DB 와 소통하게 됩니다.
DB 세션기능은 절대 키시지 않기를 추천드려요.
-
몽실아빠
2014.08.02 17:25
안녕하십니까? (주)가비아입니다.
문의주신 내용 확인결과 해당 사이트에서 DB서버로
웹호스팅에서 제공하는 DB연결 커넥션 수치를 초과하여 발생되는 내용으로 확인됩니다.
현재 웹호스팅 환경은 안정적인 세션 수 유지를 위하여 max_user_connections 30으로 제공되고 있습니다.
고객님 사이트의 제로보드의 특정 모듈이나 설정에서 해당 수치를 상회하는 부분이 있는 것으로 사료되오며
해당 수치에 대하여 임의적으로 40으로 증설하여 현재 관련 증상이 확인되지 않고 있습니다.
사이트 설정 내 DB 연결 커넥션에 대한 부분에 대한 확인이 필요할 것으로 판단됩니다.
감사합니다.
확실한건 오래된 세션도 남아있다보니 세션 테이블 크기가 계속 커지긴 합니다. 한동안 신경 안쓰고 있으면 몇기가 정도는 우습게 찍더군요.