Background Image
조회 수 25686 추천 수 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


  1. 리눅스에서 top 명령어를 통한 CPU 점유율 확인 및 측정하기

    Date2017.06.02 CategoryLinux By정훈 Views80796
    Read More
  2. 따라하면 쉬운 compactdb 사용법

    Date2017.07.01 Category기타 By허서진 Views2529
    Read More
  3. 동시 접속자에 따른 파라미터 설정

    Date2011.07.14 Category기타 Byadmin Views25686
    Read More
  4. 독자적 테이블 사용되는 복제 재구성

    Date2009.12.30 Category기타 By손승일 Views24173
    Read More
  5. 데이터베이스 생성하기

    Date2011.03.07 Category기타 By남재우 Views29110
    Read More
  6. 데이터 확인에 정규표현식을 사용 해 보자.

    Date2016.03.01 Category기타 By성진 Views12759
    Read More
  7. 데이터 저장 구조와 테이블 재구성

    Date2010.04.21 Category기타 By손승일 Views37492
    Read More
  8. 대량의 데이터 입력 방법

    Date2008.11.21 Category기타 Byadmin Views32655
    Read More
  9. 다중컬럼 조건에 대한 인라인뷰 처리방안

    Date2016.12.27 Category튜닝 By박동윤 Views6012
    Read More
  10. 가상머신 환경에서 리눅스 및 큐브리드 설치 가이드

    Date2015.07.14 CategoryLinux By이경오 Views13401
    Read More
  11. windows 환경에서 여러버젼의 CUBRID 설치하여 사용하기

    Date2009.09.16 CategoryWindows By남재우 Views26193
    Read More
  12. windows 상에서 PHP 설치하기

    Date2008.11.21 CategoryPHP Byadmin Views51804
    Read More
  13. tomcat8.0(DBCP2)과 CUBRID 연동하기

    Date2016.07.01 CategoryJava By손승일 Views15593
    Read More
  14. select .. for update 처리를 위한 Stored Procudure 등록 및 사용법

    Date2011.12.10 Category기타 By남재우 Views24872
    Read More
  15. python 에서 broker_log_top 사용

    Date2009.04.01 Category기타 Byadmin Views17831
    Read More
  16. phpize를 이용한 PHP 모듈 연동 방법(CUBRID2008 R4.3 버전)

    Date2013.05.16 CategoryPHP By이용미 Views20858
    Read More
  17. phpize 를 이용한 PHP 모듈 설치 - LINUX

    Date2011.03.08 CategoryPHP By남재우 Views23090
    Read More
  18. log4jdbc를 사용한 JDBC 로그 분석

    Date2009.07.02 CategoryJava By시난 Views36394
    Read More
  19. jsp용 jdbc 샘플입니다.

    Date2009.05.25 CategoryJava By시난 Views47609
    Read More
  20. iBATIS framework with CUBRID

    Date2009.05.19 CategoryJava By웁쓰 Views54548
    Read More
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