asp에 mssql을 사용합니다.
사이트 접속을 하면 첨에는 잘 되다가
어느순간 먹통이 됩니다.
그러다가 창을 닫고 다시 사이트 접속을 하면 잘 됩니다.
디비 메모리가 768이고
웹서버가 256인데
디비는 max 720 메가바이트 (보통은 512정도) 를사용하고
웹서버는 180 메가 정도 사용하는군요..메모리를..
확인해 보니까 기존 소스중에
asp에서 레코드 셋을 가지고 온후
레코드 셋을 닫아 주질 않은것이 많습니다.
그래서 몇가지 찾아서 레코드셋을 닫아 주고
열린 디비 커넷션도 닫아 주었습니다.
문제는 그렇게 처리를 해준 페이지도 몇번을 보면
먹통이 된다는 겁니다.
인증은 세션값으로 처리를 하는데
웹서버의 메모리가 스왑이 일어 나는것도 아니고...
익스플로어를 닫았다가 새로 띄우면 되는걸로 봐선
세션이 너무 많은 메모리를 잡고 있는게 아닌가 하는 생각도
해봤습니다만..
웹서버의 메모리를 512로 업해봐도 마찬가지 였습니다.
웹페이지가 열리지 않을때
그때 사용되는 sql를 직접 (sql분석기등) 날려 보면
바로 바로 디비 결과가 들어 옵니다.
레코드셋을 닫지 않고 종료 하는 경우는 찾아서
하나씩 닫아 가겠지만
그렇다고 하더라도 그것과 상관 없는 레코드 셋이 닫혀진
페이지들이 왜 먹통이 되는지 혹...경험있으신분 있으신지요.
좁은 소견으로는
어차피 레코드 셋은 서버에 남으므로 서버측 메모리가 낭비되고
닫혀지지 않은 레코드 셋 때문에 웹서버측 메모리 스와핑이 일어나야
되는게 아닌가 하는데...
휴...
혹여 비슷한 문제를 해결하신분 계시면 답변 부탁 드립니다...
|