Background Image
조회 수 25698 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

1. 소    개

CUBRID에서기본 설정으로 제공되는 동시 접속자 수는 약 50이내이다. 동시접속자 수가 더많은 환경에서는 MAX_NUM_APPL_SERVER라는브로커 파라미터와 max_clients라는서버 파라미터를 수정하여야 한다.


max_clients : DB서버가 허용하는 동시접속 개수를 설정하며, 디폴트 값은 50이다.

MAX_NUM_APPL_SERVER: 해당 브로커가 허용하는 CAS 프로세스의 동시접속 개수를 설정하며, 디폴트 값은 40이다.

CAS 프로세스 1개는 여러개의 connection을처리할 수 있기때문에 MAX_NUM_APPL_SERVER 값이 40이더라도 실제처리 가능한 동시 connection 수는 이보다 훨씬 많다.


2. 동시접속자의 수가 200 명인경우 파라미터 설정하기

2.1 cubrid_broker.conf 파일에서 [%BROKER1]의 MAX_NUM_APPL_SERVER 값을변경한다.

서버 리소스가 충분하다면 안전하게 MAX_NUM_APPL_SERVER=200으로설정한다.(실제처리 가능한 동시 connection 수는 이보다 훨씬 많을것이다)

서버 리소스를 효율적으로 사용하려면 운영환경을 모니터링하면서 MAX_NUM_APPL_SERVER=50이상~200이하인 값으로 설정한다.


2.2 cubrid.conf 파일에서 max_client 파라미터를 MAX_NUM_APPL_SERVER 값의 1.2배 수준으로 설정하기.


2.3파라미터가 적용을 위해브로커와 DB를재구동한다.


3. 관련매뉴얼 및 튜토리얼 링크

 

http://www.cubrid.com/zbxe/57153

http://www.cubrid.com/zbxe/65384#comment_65399

http://www.cubrid.com/online_manual/cubrid_830/pm/pm_db_classify_connect.htm

http://www.cubrid.com/online_manual/cubrid_830/admin/admin_service_server_start.htm

http://www.cubrid.com/online_manual/cubrid_830/admin/admin_service_broker_all.htm

------------------------------------------------------------------------------------------------------------------------------------------------------------


CUBRID에서 동시 접속자와 관련 있는 파라미터는

MAX_NUM_APPL_SERVER 라는 브로커 파라미터와 max_clients라는 서버 파라미터이다.

기본적으로 MAX_NUM_APPL_SERVER 파라미터를 조정하여 CAS 개수를 응용 클라이언트 갯수(연결 요청 수)보다 많게 설정하는 것이 중요하다.


응용 클라이언트와 브로커의 CAS가 연결을 맺고 트랜잭션 처리 후 종료되면 해당 CAS가 유휴상태가 되고

브로커는 다음 응용 요청에 대해 유휴상태의 CAS들과 연결을 맺어준다.

문제는 파일 다운로드와 같이 트랜잭션 시간이 상당히 긴 경우, 한개 트랜잭션 내에 복수개의 쿼리라 실행되도록 응용 로직이 구현되어 있는 경우, 이러한 긴 트랜잭션들이 동시 수행되는 경우 모든 CAS들이 클라이언트에 묶여 있게 되어 브로커가 새로운 연결 요청을 처리하지 못하고 무한 대기에 빠질 수 있다는 점이다.


이러한 문제를 근본적으로 해결하는 방법은 응용 프로그램에서 트랜잭션 단위를 작게 만들어야 한다.

그러나 응용 프로그램 코드 변경이 쉽지 않을 경우 CUBRID에서 브로커 파라미터로 제공하는 SELECT_AUTO_COMMIT를 설정하여 응용에서 수행하는 SELECT문에 대해 오토 커밋되도록 설정할 수 있다. 이 경우 CAS가 내부적으로 SELECT 문 실행 후 트랜잭션을 커밋하게 되므로 동시에 연결 요청이 집중되는 상황에서도 유휴 CAS를 더 많이 확보할 수 있게 된다.

이러한 SELECT_AUTO_COMMIT 파라미터는 브로커 실행 중에도 변경 가능하다.


-----------------------------------------------------------------------------
1) broker 가 현재 실행 중일 때 변경 방법
- cubrid broker status -b 로 현재 적용하고자 하는 broker 이름을 확인합니다.
- 대상 브로커에 대해 broker_changer 를 실행하여 파라미터를 추가합니다.

    
 [cubrid@mdb.002 ~]$ cubrid broker status -b
@ cubrid broker status
  NAME           PID  PORT  AS  JQ      REQ  TPS  QPS  LONG-T  LONG-Q ERR-Q
===========================================================================
* query_editor 26832 30000   1   0        0    0    0    0/60.0    0/60.0    0
* broker1      26866 33000  29   0  1854013 1500655 8387645  127/60.0  139/60.0  208


[cubrid@mdb.002 ~]$ broker_changer broker1 SELECT_AUTO_COMMIT ON
OK


2) broker 가 현재 정지 중일 때 변경 방법
- $CUBRID/conf/cubrid_broker.conf 내 해당 브로커(broker1)에 SELECT_AUTO_COMMIT 파라미터를 추가한 후 저장합니다.
- cubrid broker restart broker1을 수행하면 새로 저장한 cubrid_broker.conf 파일이 적용됩니다.
 
[%BROKER1]
SERVICE                 =ON
BROKER_PORT             =33000
MIN_NUM_APPL_SERVER     =10
MAX_NUM_APPL_SERVER     =100
APPL_SERVER_SHM_ID      =33000
#LOG_DIR                 =log/broker/sql_log
LOG_DIR                 =/home1/cubrid/sql_log
ERROR_LOG_DIR           =log/broker/error_log
SQL_LOG                 =ON
TIME_TO_KILL            =120
SESSION_TIMEOUT         =300
KEEP_CONNECTION         =AUTO
SELECT_AUTO_COMMIT      =ON                    
 
[cubrid@mdb.002 ~]$ cubrid broker restart broker1

관련 매뉴얼:

http://www.cubrid.com/online_manual/cubrid_830/pm/pm_broker_one.htm

http://www.cubrid.com/online_manual/cubrid_830/api/api_cci_endtran.htm


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
77 기타 [10.2 path] - 생성된 view구문을 'show create view' 수행 시 정상적으로 출력되지 않던 이슈 patch 큐브리드_김주현 2020.11.09 904
76 기타 ERwin을 이용한 CUBRID 포워드 엔지니어링 file 민순 2020.07.14 2348
75 기타 ERwin을 이용한 CUBRID 리버스 엔지니어링 file 민순 2020.07.13 3496
74 기타 큐브리드10.1 에서 윤초 지원 옵션 사용하기 최광일 2017.09.13 1433
73 기타 따라하면 쉬운 compactdb 사용법 file 허서진 2017.07.01 2547
72 기타 PyCharm을 이용한 CUBRID, Django 연동 가이드 file 진우진 2016.04.11 8161
71 기타 CSQL 인터프리터 사용방법 정만영 2016.03.03 16698
70 기타 데이터 확인에 정규표현식을 사용 해 보자. 성진 2016.03.01 12792
69 기타 CUBRID Migration Toolkit을 이용한 단계별 마이그레이션 진행 방법 file 진우진 2015.12.15 9568
68 기타 알고 보면 쉬운 cubrid lockdb 유틸리티 file 김승훈 2015.12.08 12120
67 기타 CUBRID Migration방법(by unloaddb & loaddb) 주현 2015.07.01 21932
66 기타 콘솔에서 마이그레이션 하기. file 권호일 2015.06.19 13435
65 기타 CUBRID isolation level & Dirty Read 정만영 2015.05.29 11322
64 기타 HA 환경 구성 시 데이터 복제 지연이 발생하는 경우 ECHO(7) port를 확인하자. 손승일 2012.11.29 26465
63 기타 select .. for update 처리를 위한 Stored Procudure 등록 및 사용법 남재우 2011.12.10 24873
62 기타 자주 발생하는 큐브리드(cubrid) 에러 메시지 정리 admin 2011.07.14 81485
61 기타 [주의사항] CUBRID에서의 BLOB/CLOB 사용시 백업 및 복구에 대한 주의 점 admin 2011.07.14 52824
60 기타 CUBRID 매니저 R3.1에서 웹호스팅 서버의 CUBRID R2.1 접속하는 방법 (큐브리드 매니저에서 다른 버전의 큐브리드 서버 접속 방법) file admin 2011.07.14 31511
» 기타 동시 접속자에 따른 파라미터 설정 admin 2011.07.14 25698
58 기타 CUBRID 2008 R4.0 GA 버전의 주요 기능만 요약한 PPT 문서 file admin 2011.07.14 15462
Board Pagination Prev 1 2 3 4 Next
/ 4

Contact Cubrid

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