Background Image
조회 수 25680 추천 수 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
번호 분류 제목 글쓴이 날짜 조회 수
126 기타 CUBRID 2008 R4.0 GA 버전의 주요 기능만 요약한 PPT 문서 file admin 2011.07.14 15460
125 기타 CUBRID 2008 R4.0 파라미터 변경 사항 (일부) file admin 2011.07.14 13154
124 기타 CUBRID 볼륨 공간 재사용률 비교 - 2008 R3.1 vs. 2008 R4.0 file admin 2011.07.14 16554
123 튜닝 SNS 유형 서비스에서 CUBRID와 MySQL 조회 성능 비교 file admin 2011.07.14 21187
122 튜닝 CUBRID 2008 R4.0의 커버링 인덱스(covering index)는 무엇인가? file admin 2011.07.14 29880
121 튜닝 [질의튜닝]order by desc가 인덱스 타게 하려면 admin 2011.07.14 28455
120 튜닝 CUBRID 세미나 자료(개요 및 SQL 활용) file admin 2011.07.14 22768
119 PHP apache, php rpm package 생성 시 필요한 rpm 스펙 file admin 2011.07.14 25230
118 Install CUBRID Windows버전 삭제 및 재설치 실패시 강제 삭제하는 방법입니다. admin 2011.07.14 29547
117 PHP MySQL,PHP 기반에서 CUBRID,PHP 기반으로 포팅하기(CUBRID 2008 R3.1) 손승일 2011.03.30 24446
116 PHP phpize 를 이용한 PHP 모듈 설치 - LINUX file 남재우 2011.03.08 23080
115 PHP apache, PHP 설치하기 - LINUX file 남재우 2011.03.08 31301
114 기타 CUBRID에서의 BLOB/CLOB 타입 사용법 cubebridge 2011.03.08 30436
113 Install CUBRID 설치 안내 - LINUX 남재우 2011.03.08 30412
112 기타 데이터베이스 생성하기 file 남재우 2011.03.07 29058
111 기타 CUBRID 활용 - 질의 튜닝 사례 중심 file cubrid 2010.12.02 45960
110 기타 CUBRID Migration Toolkit 튜토리얼 file cubrid 2010.10.22 30471
109 기타 CUBRID 2008 R3.0 추가기능 file janus 2010.09.03 15455
108 기타 트랜잭션과 LOCK 초급과정 정만영 2010.07.01 20760
107 PHP IIS에서 PHP, CUBRID 사용하기 file 남재우 2010.04.19 30311
Board Pagination Prev 1 2 3 4 5 6 7 8 9 Next
/ 9

Contact Cubrid

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