포럼
한 게시판에 게시물이 10만개면 XE는 사망.
2011.11.22 11:22
테스트 결과가 아래와 같습니다,
서버사양:XEON X3440 4G
테스트 1
한 게시판에만 한해 게시물을 등록.
1만개=별 큰 문제 없음
2만개=약간 버벅임
3만개=리스트1페이지는 문제 없지만 뒤로 페이지를 넘길경우 버벅임 심각
5만개=게시판내 검색기능을 사용시 오랜 로딩이 걸리고 심지어 찾을수 없는 페이지라고도 뜸,게시물 열람은 아주 느림
10만개=누가 방문하거나 검색엔진이 게시물을 긁어갈때 찾을수 없는 페지이로 뜸, 완전 사망.
결과:찾을수 없는 페이지로 뜨는 주요원인은 서버에서 찾았습니다,mysql CPU가 60-100프로까지 뛰더군요,그래도 요청한 내용을 가져오지 못하고 결국은 맥스타임을 넘겨 찾을수 없는 페이지라고 뜹니다.
그럼 특정 내용을 한 게시판에 수십만개의 자료를 올려야할땐 XE를 포기해야 하는건가요?
타 사이트보니 한 게시판에 수십만개의 게시글이 올라와있어도 꿋꿋이 잘 돌던데........(XE아니고 제로보드나 그누보드)
테스트 2
총 18만개의 게시물을 103개의 게시판에 등록,
게시판당 게시물 만개이하로 제한.
결과:버벅임이 없이 잘 돌아갑니다, 새로 설치한 XE와 속도가 별 차이도 없더군요.
댓글 19
-
하늘종
2011.11.22 12:26
-
tobor
2011.11.22 13:44
일베같은경우 게시판 위주네요. 그러니.. 좀 빠르겠죠.. 위젯 등.. 기타 잡다한것 붙이면 느려질듯..;
-
해커다
2011.11.22 13:54
그럼 mysql가 아닌 다른 db를 사용하면 좋아지는건가요?
-
tobor
2011.11.22 13:46
XE는 로봇이 긁어갈때 조심하세요.. 서버 로드 장난아닙니다.. openbase라도 걸려있으면.. 뻗음..
-
레이딘
2011.11.22 17:57
MySQL이 MyIsam 모드인가요 아니면 Innodb 모드인가요? MyIsam일 경우에는 게시물 수가 많아지면 속도가 크게 느려지는 걸로 알고 있습니다.
-
해커다
2011.11.22 19:27
현재 단독으로 다른 서버에 Innodb를 사용한 홈피 만들고 있지만 게시물이 8만개까지 등록하니 같은 문제가 생기더라구요,,
이 다른 서버가 사양은 쪼금 약하지만 현재 상황으로 봐선 Innodb도 않되는듯합니다.
-
ㅠ도라에몽ㅠ
2011.11.23 00:44
저는 아직 만개 다되가는지라......
-
thisend
2011.11.23 01:51
이런게 진정한 테스트군요.
-
해커다
2011.11.23 12:36
오늘 현재 두번째 서버 게시물 11만기 넘겼습니다,
Innodb를 사용했지만 지금 한 게시판에 11만개의 게시물을 올린 결과로는
리스트 첫페이지:첫페이지 약간 느림
리스트 뒷페이지:아주 느림
본문 페이지:아주 느림
제목검색:찾을수 없는 페이지 뜸
본문검색:찾을수 없는 페이지 뜸
다른 해결 방법 구해봅니다,, 현재로 보면 apache나 nginx 모두 같은 상황이고 주요문제는 mysql에 있는듯합니다,
mysql 셋팅 파일도 여러가지로 바꿔봤지만 상황은 비슷.
하늘종 님이 말씀하신 일배라는 사이트 관리자에게도 메일로 문의 해봤지만 확실한 방법은 서버보안문제때문에 알려주지 못한다네요,
-
리순알팟
2011.11.23 13:52
InnoDB 보단 mylsam 이 처리속도는 더 빠릅니다.
그리고 알려주신 게시물보다는 현재 동시접속자수가 몇명정도가 되는지도 알려주시면 좋을듯합니다,
제가 봤을떄는 일단 사양부분도 걸리구요.. 일베 같은경우에는 IDC 에 입주해서 사용하는게 아니고
집에서 직접 구축해서 사용하는걸로 알고있습니다.
일다 사양을 업그레이드 해보시는걸 추천드립니다....
-
레이딘
2011.11.23 16:36
사용자가 적을 때의 처리속도는 빠르지만, myisam의 태생적인 문제로 인하여 사용자가 많아지면 속도가 급격히 떨어지는 문제가 있습니다.
DB 특성상 한 사용자가 사용중일 경우에는 다른 사용자가 접근하지 못하게 하고(lock), 다른 사용자가 접근하려고 하면 대기를 시킨 뒤 사용이 끝나면 접근시킵니다. 근데 myisam은 한 테이블 전체를 한 사용자만 접근할 수 있게 되어 있습니다. 그 사용자 작업이 끝날 때까지 다른 사용자는 대기타야 된다는 말이죠. 사용자가 많아지면 대기 시간이 늘어나고, 특히 XE같이 테이블 하나를 전 게시판이 공유하는 구조에서는 대기 시간이 기하급수적으로 늘어나게 됩니다.
반면 innodb는 한 테이블의 한 줄(row)만 딴 사용자가 접근할 수 없게 합니다. 같은 테이블의 다른 줄은 상관 없죠. 이 때문에 규모있는 사이트에는 innodb가 빠르다는 말이 나오는 겁니다. 사용 환경의 차이에 따라 myisam이나 innodb의 속도 차이가 오는 거죠.
-
코뿔소2020
2011.11.23 17:26
간략하면서도 정확히 mysql db 구조를 말씀하셨네요.^^^^
-
tobor
2011.11.23 18:37
먼가 잘못알고 계신듯..
단순 읽기에서는 myisam 빠릅니다..
innodb가 빠른경우에는 INSERT , UPDATE, DELETE 등을 처리할때 입니다.. 동시 다발적으로 많은량의 INSERT , UPDATE, DELETE 등이 이루어 진다면 당연히 innodb를 사용해야되겠죠.. 반면 읽기위주라면 myisam를 사용해야 빠릅니다..
-
코뿔소2020
2011.11.23 20:32
정말 모르시네요. mysql 사이트에가서 myisam과 innodb의 차이점과 사용용도에 대한 정의를 한번 살펴보세요. 뭐 자꾸 블로그 떠도는 이론적인 이야기는 접어두고, 다중접속과 온라인 대형 사이트에서 최적화는 innodb라고 정의를 내립니다.
-
tobor
2011.11.23 21:50
자세히 읽어보세요.. 대형 사이트라면 업데이트가 많을테니.. 당연히 innodb가 좋겠죠...
-
코뿔소2020
2011.11.23 21:59
해커님이 운영하시는 사이트가 소형입니까? 대형입니까?
해커님의 질문과 사이트의 성격이 개인 홈페이지는 아닌 것 같네요.
-
Hide_D
2011.11.23 23:44
그것까지 포함해서 XE나 다른 게시판들도 마찬가지만
게시판에서 '읽기'를 한다고 해서 읽기만 하는게 아니라
게시판 조회수를 +1를 한다는게 문젭니다.
정말로 조회만 할거라면 MyISAM을 써야겠지만, 실제로는 읽기 작업이라도 update를 하니까
규모가 크다면 글쓰기는 별로 없더라도 innodb를 써야죠
-
tobor
2011.11.24 00:38
조회수 쿼리 부분을 수정하시면되겠죠..^^ 해결 방법이 없는것도 아니니까요..
-
레이딘
2011.11.24 12:38
그건 정 방법이 없을 때 쓰는 방법이죠. innodb 쓰면 해결되는데 뭣하러 소스를 고쳐서 있는 기능을 없애나요?
http://www.ilbe.com/free
여기는 기본 게시판 1만 8천 페이지에 등록된 게시글이 41만개입니다.
http://www.ilbe.com/?_filter=search&mid=free&category=&search_target=title_content&search_keyword=XE
제목+내용 검색도 잘 돌아가네요.