Background Image

FORUM

조회 수 28561 추천 수 0 댓글 22
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

회원수가 약 20만이고 문서 수십만개, 댓글 수백만개 정도 되는 규모의 커뮤니티입니다.

지난 번에 새 MIT의 도움을 받아서 마이그레이션도 무사히 마쳤는데요 XE를 이전하고나니 로그인 단계부터 속도가 너무 느립니다.

처음에는 노후된 서버의 탓일까 싶어 비교적 사양이 높은 다른 서버에도 이전을 시도해 봤는데 속도가 느린 현상은 여전하더군요.

무엇이 원인인지 정확하게는 몰라서 어떻게 도움을 받아야 할지 막막합니다. 제가 체크해 볼 수 있는 것들과 이런 현상이 일어날 수 있는 원인에는 어떤 것들이 있을까요?


구체적인 현상으로

  • 처음 이전 후 로그인 시 2~3분 이상 걸림
  • 게시물을 읽을 때도 수십초에서 수분이 걸림


운영체제는 sulinux(32bit)이고 DB는 xml로 덤프한 후 파일을 이용해서 마이그레이션 했습니다.

apache 2.2, php 5.3.6, xe1.4.4.1 이고 서버들은 다른 목적으로는 사용되는 않는 테스트/개발 서버이기 때문에 큐브리드 이외에 부하를 받는 것은 없고 cubrid broker status -s1 broker1 -b 로 TPS와 QPS를 확인해 봐도 게시물을 확인하는 초기에 순간 올랐다가 계속 0/0 으로 반응이 없습니다.


참고로 같은 서버에 cubrid+xe를 새로 설치해서 로그인하거나 게시물을 작성할 때는 전혀 문제가 없습니다.


도움 말씀 부탁드립니다~

  • ?
    샤롱스판 2011.08.08 19:19

    흠.. 여러 XE사이트를 cubrid로 전환한 사례를 보았는데, 말씀하신 사항(처음 이전 후 로그인 시 2~3분 이상 걸림, 게시물을 읽을 때도 수십초에서 수분이 걸림)은 처음인 것 같습니다. 그렇다고 해서 DB성능이 문제가 될 수준의 서비스 규모도 아닌 것 같은데요. 혹시 저희가 현상을 직접 볼 수 있도록 테스트 서버의 접속 정보를 주실 수 있으신가요? 비밀글로 부탁 드리겠습니다.

  • ?
    엔하늘 2011.08.08 21:48 SECRET

    "비밀글입니다."

  • ?
    이성룡 2011.08.08 19:29

    compactdb 명령을 이용하여 DB를 한번 정리해보세요.

    저도 다른 응용에서 쿼리실행이 30초 걸리는 현상이 발생한적이 있는데

    compatdb명령을 실행하고 나서 0.2초 이내로 줄어들었습니다.

     

    명령:

    cubrid compactdb <dbname>

     

     

  • ?
    엔하늘 2011.08.08 21:38

    답변 감사합니다. 말씀하신대로 해 보았는데요 여전히 속도가 느립니다. 아마 또다른 문제가 있는 것 같습니다.

  • ?
    cgkang 2011.08.08 23:04 SECRET

    "비밀글입니다."

  • ?
    엔하늘 2011.08.09 00:18 SECRET

    "비밀글입니다."

  • ?
    샤롱스판 2011.08.09 00:42

     

     

  • ?
    엔하늘 2011.08.09 00:50 SECRET

    "비밀글입니다."

  • ?
    cgkang 2011.08.09 01:53 SECRET

    "비밀글입니다."

  • ?
    엔하늘 2011.08.09 03:06

    아 그렇군요.그럼 컬럼 네임을 적는 자리에 indi_comments에 있는 모든 컬럼을 다 적어주면 되는 것인지요?


  • ?
    seongjoon 2011.08.09 03:13

    일반적으로 xe 설치시에 생성되는 index는 아래와 같습니다.

    INDEX indi_comments_idx_module_srl ON indi_comments (module_srl);
    INDEX indi_comments_idx_document_srl ON indi_comments (document_srl);
    INDEX indi_comments_idx_voted_count ON indi_comments (voted_count);
    INDEX indi_comments_idx_blamed_count ON indi_comments (blamed_count);
    INDEX indi_comments_idx_member_srl ON indi_comments (member_srl);
    INDEX indi_comments_idx_uploaded_count ON indi_comments (uploaded_count);
    INDEX indi_comments_idx_regdate ON indi_comments (regdate);
    INDEX indi_comments_idx_last_update ON indi_comments (last_update);
    INDEX indi_comments_idx_ipaddress ON indi_comments (ipaddress);
    INDEX indi_comments_idx_list_order ON indi_comments (list_order);
    PRIMARY KEY pkey_indi_comments ON indi_comments (comment_srl);
    INDEX indi_comments_list_idx_list ON indi_comments_list (document_srl, head, arrange);
    INDEX indi_comments_list_idx_date ON indi_comments_list (module_srl, regdate);
    PRIMARY KEY pkey_indi_comments_list ON indi_comments_list (comment_srl);

  • ?
    엔하늘 2011.08.09 04:10

    PRIMARY KEY의 경우에는 인덱스를 따로 생성하지 않아도 되는 것이 맞는지요?

    나머지 인덱스를 다 생성했음에도 불구하고 여전히 현상이 고쳐지지 않습니다.

    디비 마이그레이션을 처음부터 다시 시작하면 혹시 이 문제가 해결될 수 있을까요? 왜 comments 테이블이 인덱스 생성 과정에서 누락되었는지 모르겠습니다.

  • ?
    샤롱스판 2011.08.09 19:51

    마이그레이션을 수행하면서 comments 뿐 아니라 상당수 테이블에서 인덱스가 누락된 것으로 확인됩니다. 혹시 mysql 에서 내린 XML 파일이 있으시면 비밀글로 첨부 부탁 드리겠습니다. CMT를 사용하여 마이그레이션을 하셨을 것 같은데, 어떤 방식으로 진행하셨는지 알 수 있을까요? 어디서 인덱스 누락이 되었는지 현재 알수 없는 관계로 mysql dump file을 주시면 저희가 재현해보고 연락을 드리도록 하겠습니다.

  • ?
    엔하늘 2011.08.09 19:57 SECRET

    "비밀글입니다."

  • ?
    cgkang 2011.08.09 22:53

    indi_comments와 indi_comments_list 테이블에 인덱스는 만들어 졌는데,

    primary key가 만들어져 있지 않아서 PK를 참조해야 하는 질의의 성능이 나오지 않고 있습니다.

    두 테이블에 PK는 다음 쿼리로 생성할 수 있습니다.

    alter class indi_comments add constraint pkey_indi_comments PRIMARY KEY (comment_srl);
    alter class indi_comments_list add constraint pkey_indi_comments_list PRIMARY KEY (comment_srl);
    테스트 장비에는 두 테이블에 PK를 생성해 둔 상태이고, 관련된 질의는 빠른 응답을 보이는것으로 보입니다.

     

    다음 테이블들 역시 인덱스가 만들어져 있지 않으므로 어떤 인덱스가 필요한지 확인후 추가해야 합니다.

    indi_action_forward
    indi_addons
    indi_addons_site
    indi_ai_installed_packages
    indi_ai_remote_categories
    indi_autoinstall_installed_packages
    indi_autoinstall_packages
    indi_autoinstall_remote_categories
    indi_comment_declared
    indi_comment_declared_log
    indi_comment_voted_log
    indi_coupon
    indi_coupon_used_log
    indi_document_aliases
    indi_document_categories
    indi_document_declared
    indi_document_declared_log
    indi_document_extra_keys
    indi_document_extra_vars
    indi_document_histories
    indi_document_readed_log
    indi_document_trash
    indi_document_voted_log
    indi_editor_autosave
    indi_editor_components
    indi_editor_components_site
    indi_join_extend_notify
    indi_member_openid_association
    indi_module_extend

  • ?
    엔하늘 2011.08.09 22:57

    이렇게 하나씩 추가로 인덱스를 설정하는 것보다는 차라리 마이그레이션을 다시 하는 것이 훨씬 낫겠네요. 어차피 마이그레이션을 다시 하기도 해야 하고요.

    혹시 xml파일 이용해서 마이그레이션 진행해 보셨는지요? 문제는 다음에 마이그레이션을 했는데도 또 이런 현상이 발생하느냐인데 그렇지 않았으면 좋겠네요^^;

  • ?
    엔하늘 2011.08.09 23:11

    네 확실히 게시물 읽는 시간은 빨라졌네요.

    그런데 게시물에 댓글을 달면 댓글이 맨 아래가 아니라 맨 위에 출력이 됩니다. 이건 원래 이런 것인지요?

  • ?
    샤롱스판 2011.08.09 23:24

    http://nlucene.xpressengine.net/19224740 

    여기를 참고하시면 됩니다. XE에서 DB마다 serial 처리를 다른 방식으로 하다보니 DB를 전환하는 경우 이 문제가 꼭 발생하는군요.

    현재 글 순서가 엎어진 것은 xe_sequence가 1부터 시작하기 때문입니다. 이를 mysql에서의 최종 번호+1 값으로 바꿔 주셔야 합니다.

    # su - cubrid
    $ csql -u dba cubriddb

    alter table rename xe_sequence as xe_sequence_tmp;
    ;x
    csql> select max(document_srl) + 1 from xe_sequence_tmp;
    csql> ;x
    66
    csql> create serial xe_sequence start with 66;
    csql> ;x
    csql> drop table xe_sequence_tmp;
    csql> ;x

     

  • ?

    방금 주신 XML파일로 CMT를 이용하여 마이그레이션을 수행하였고, Win7에서 오프라인 마이그레이션을 수행하여 3시간 정도 소요되었습니다. 결과는 모두 정상적으로 인덱스를 생성하였습니다. 단, 아래 테이블만 인덱스가 없는데 이것은 누락이 아니라 원래 XE스키마 확인 결과 인덱스가 없는 것입니다. 

    indi_join_extend_notify
    indi_member_openid_association
    indi_module_extend

    따라서 CMT로 다시한번 디폴트 옵션 그대로 사용하시어 마이그레이션을 수행하시거나 제가 첨부한 파일(인덱스 생성 파일)을 실행하시면 정상적으로 사용할 수 있을 것입니다.  명령어: csql -i test2_indexes.txt DB이름  또는 파일 내용 긁어서 csql 내에서 실행

    ftp://ftp.cubrid.org/CUBRID_Tools/CUBRID_Migration_Toolkit/

     

  • ?
    엔하늘 2011.08.10 00:39

    답변 감사합니다. 혹시 CMT에서 마이그레이션 할 때 xe 스키마 적용인가? 하는 체크 옵션을 반드시 체크해야만 하는 것인지요? 그때 체크 하면 다음으로 진행이 안 되어서 그냥 체크를 없애고 진행했습니다. 장시간 동안 자세하고 친절해 대답해 주셔서 대단히 감사합니다.

  • ?
    엔하늘 2011.08.10 05:57 SECRET

    "비밀글입니다."

  • ?
    CUBRID_DEV 2011.08.11 18:51

    네. 염려마십시오. 이미 삭제하였습니다~


List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 SQLGate for CUBRID 영구 무료 라이선스 제공 file admin 2020.04.09 4258
3936 php게시판에 있는 php설치 글에서.<? phpinfo.php ?>사용이 가능한 구문인가요? 1 뚱기 2010.01.26 34581
3935 php - cubird 연결 부분 오류 문제 문의 드립니다. 3 file 김우람 2011.05.19 34350
3934 프로세스 정상동작 문의 드립니다. 2 file 윤희서 2009.01.23 33632
3933 DWMAPI.dll 관련 오류 2 file GGG특별대원 2009.02.04 33281
3932 전자정부 프레임워크 트랜잭션 관련 질문드립니다. 1 상초 2013.08.23 32721
3931 ole provider 사용 하고 있는데요, code=80004005, 지정되지 않은 오류라고 나옵니다. 1 decoder 2012.10.18 32393
3930 설치시 오류 :cubrid: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory 2 victory 2009.01.22 32142
3929 C#에서 ODBC연결시 에러 1 용이 2009.11.15 31848
3928 안녕하세요 김범준님.. 3 GoFly 2008.12.01 30834
3927 DB 서버 자동 실행 문의. 1 우페 2008.12.04 30519
3926 시간표현 문제 2 asteroid 2008.12.02 30262
3925 libncurses.so.5 관련 질문입니다. (cubrid service start 시) 1 exnis 2009.04.29 30185
3924 페이징과 전체 카운트 쿼리 가져올 수 있도록 해주세요.ㅠㅠ 1 마산이프로 2011.10.29 30072
3923 UPDATE/INSERT를 한번에 하는 쿼리 질문드립니다. 2 kkckc 2009.02.17 28825
3922 DLL WS2_32.dll에서 찾을 수 없습니다. 2 karay2k 2011.12.17 28598
» XE를 mysql에서 cubrid로 이전한 후 속도가 너무 느립니다. 22 엔하늘 2011.08.07 28561
3920 html 특수문자 깨지지 않게 가져오는 법 1 씨유소박 2013.11.12 28358
3919 csql 유틸리티에서 쿼리플랜 확인 1 asteroid 2008.12.05 28254
3918 Your transaction (index 4, dba@LoveME|3952) has been unilaterally aborted by the system.큐브리드 로그파일도 같이 넣었어요.. 1 지니 2009.09.08 28006
3917 MySQL 의 GROUP_CONCAT 함수에 대응하는 CUBRID 함수가 있는지요? 2 차오이 2009.04.29 27880
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 199 Next
/ 199

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales