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 4256
516 cubrid ebuild && 문제점 보고. 1 송효진 2009.04.05 13700
515 jruby에서 jdbc 사용시 driver를 찾지못합니다 1 이니야 2011.05.17 13715
514 cubrid manager 에서 8001포트 서버 접속이 안됩니다. 6 misoboy 2014.06.18 13727
513 cubird-php 연동이 안됩니다. (php-4.4.9) 1 sihal7 2011.06.09 13730
512 큐브리드에서 함수와 프로시저의 차이?? 2 루피 2013.11.13 13749
511 풀스캔 1 벌래잡이 2016.11.18 13752
510 mysql 에서 sum 함수를 큐브리드에서 동일하게 사용하려면....? 2 눈꽃 2009.10.21 13778
509 MS-SQL 2008 R2에서 연결된 서버로 등록하는 방법이 있나요? 1 file idonot 2013.01.16 13784
508 numeric과 bigint 1 하나엘 2009.12.04 13787
507 JEUS 사용시 JDBC 에서 캐릭터셋 설정 방법 문의 2 식이77 2014.10.13 13795
506 내부 아이피 연결시 접속이 안되는 현상 5 초보 2010.02.10 13799
505 호스트 추가 질문입니다. 7 몽유객 2010.12.21 13804
504 큐브릐드 함수/프로시져 java class 만들기 1 태태리 2016.09.08 13808
503 큐브리드매니저에서 값을 바로 수정하기는 어려운가요? 2 file 고영진 2009.09.24 13813
502 MSSQL의 파티션테이블과 유사한 기능이 있나요? 1 하늘나무 2013.07.23 13819
501 테이블명을 한글로 할 수는 없나요? 3 유니콘 2010.02.22 13819
500 초기설치후 초기화면 에러 문의입니다 추가 1 오명일 2016.08.10 13820
499 쿼리 오류 질문 입니다. 1 초보 2010.03.24 13825
498 demodb 암호를 모르겠네요-ㅅ-;; 2 세이브 2010.07.16 13856
497 연결(Connection)을 얻을 수 없습니다. 브로커와 서버의 구동 상태를 점검하십시오. 이 에러가 납니다 3 블루토토 2011.06.22 13867
Board Pagination Prev 1 ... 169 170 171 172 173 174 175 176 177 178 ... 199 Next
/ 199

Contact Cubrid

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