- Slide1 - http://grigg.chungnam. ac .kr/-pckim • • 0 0 • • • .::::: '- -Sli de2- 75 - KRNET ‘ 97 KRNET ’ 97
데이타베이스 통로 구조의 성능 평가
- Slide1 -
김평철
http://grigg.chungnam. ac. kr/-pckim
충남대학교정보통신컴퓨터공학부
목 차
• 웹과데이타베이스의 연동개념
• 더 I 0 I 타버I 0 I 스통로의 구조분류
• UniWeb의 구현 • 데이타베이스 통로 구조의 성능 평가 • "7킹료르
.::::: '-
-Slide2-
75 -
KRNET ‘ 97
KRNET ’ 97
웹과데이타베이스의 연동개녕
톨라이언트
URUHTfPIHTML
톨휠(톨로)
셔버
-S l ide3 -
데01타빼01스 ;(1스탬
데이타배이스 를용셔버
데이타베이스통로의 구조분
• 구조분류체계 데이타베이스 쩔근
서버혹 롤라이언트혹
KRNET '97
CGI 확장 API) 헌용서버 외부뷰어 브라무저 확장
걷판뺀폰흩)c효덴혼혼선번
* 각 구호에 CI tf XlAltf M PJ혼 htψ:llgrigg.chungnam.ac.krltech-reports/1997.πRlTR97U01.z,φ 홈죠
-Slide4- KRNET’ 97
- 76 -
•
UniWeb의 개요
- UniSQLlX 지 원 ( 타 DBMS 확장 중) - CGI/API 응용서 버 구조
-상태관리
-ACID 트랜잭션 지원
- 확장 TcI 스크립 트(UniTcl)를 HTML어| 포함
-분산응용서버 지원
- 충남대와 한국컴퓨터통신(주) 공동 개 발
- UniWeb 3.0
-Sl ide5-
UniWeb의 실행구조
뭘셔버
HTML
스크링트
CGI 요구 IIH.매L 파의영
- Sl ide6-
HTML
Bulletin Board
- 77 -
•
UniTcl Server
UniTcl+HTML
KRNET '97
혜이타베이스
KRNET '97
UniWeb의 실행구조 (계속)
.디스패처
- CGI 실행화일
• 웹서버와 프로세스 파이프로 연결
• 각 요구마다 프로세스 생성/종료
- 사용자의 CGI 요구를 UniTcI 서 버 로 전 달 - URL 형식:
<CGI 경 로>1<디 스패처 >1<스크립 트화일영 >[/<상태 식 볕 자>] ?QUERY_STRING
- GET, POST METHOD 지 원
- Bulletin Board를 참조하여 해 당 UniTcl 서 버 찾음 - API 응용서 버 구조에 서 는 API 프로그램 으로 웹 서버와동적으로 연결되어 수행
-Sli de 7- KR매ET ’ 97
UniWeb의 실행구조 (계속)
• UniTcl Server - 요구된 스크립트 화일으I UniTcl 명령 수행 - 디스패처와 socket으로 연결
- 시스템 부하에 따라 서버 갯수 조절
- 상태 및 트랜잭션 관리
- 여러 호스트에 분산 배치 가능
• Bulletin Board - 각 UniTcl Server의 정 보를 shared memory에 기 록
• 프로세서 정보 (크기, 우선순위 등)
• 상태 식멸자
• 통신 채널 정보 (호스트, port 번호 등)
• 기타 통계 정보 (시작시각, 처리건수 등)
-Sl ide8- KRNET’ 97
- 78 -
UniWeb의 개발언어: UniTcl
• 왜 TcI인 7~? • Resuable scripting language:
- C-library 형 태 의 interpreter - 필수의 프로그래밍 기능 포함(변수, 제어, 합수 등)
- 새로운기능추가용이
• Sun에서 공급하는 소스수준 공용 소프트웨어
• cross-platform: Unix, Win{3.1 ,NT,95}, Mac, etc.
• 많은사용자규모
• 웹 환경 개발언어로 부상: - TclπK plug-in 출시 - Tcl-JDBC 개 발중 - “Sun Lab. believes TcνTk could be as pop미'ar as Java."
- Slide9- KRNET ' 97
•
UniWeb으| 개 발언 어 : UniTcl (겨| 속)
• UniTcl으| 소프트웨 어 구조
init load
-Slide10-
- 79-
UniSQLIX Engine
KRNET ’ 97
UniWeb의 개발언어: UniTcl (계속)
• UniTcI 명령어 요약
I-우 -과 -앓
한 -.따
마 -빼
키 -a. 스
-뻐-
뭘외쳐리 전답메시지
uw_msg(sqlcode) uw_msg(sqlmsg) uw_msg(sqlres) uw_msg(sqlnu’1)
uw dalabase env uw_open_sql uw_close_sql uw_exec_sql uw fetch uw fetch oid
uw class attributes uw methods uw class methods uw method files uw_query _spec uw subclasses uw_superclasses uw all classes
uw colnames uw_get uw_put uw_output uw whenever
기타
uw session id uw_find_entry
uw all vclasses
•
-Sl ide11- KRNET ‘ 97
UniWeb의 개 발언 어 : UniTcl (계 속)
• UniTcI+HTML 여| 저| <BODY> [ uw_database_env testdb
set class [uw_f1nd_entry class); set sql ‘ select • from $class" set handle [uw_open_sql $sql) uw_ouφut $handle; # use default TABlE format output
<P><TABlE BORDER=1> [ uw_cursor first $handle; # TABlE output using iteration
while ($uw_msg(sqlcode) == O} ( set tuple [uw_fetch $handle) puts ‘ <TR>" foreach ∞I $tuple {
puts ‘ <TD>$col" } uw_cursor next $handle
} uw_close_sql $handle
〈πABlE>
-Sl ide12- KRNET ’ 97
- 80 -
• UniWeb의 상태 관리
- 서 버 쪽 관리 (UniTcI server dedication)
- 상태 식 별 자를 암호화하여 Cookie로 전 송
-시간제한을이용한상태 해제
a.html I [U,^ιGONTROL keep-session=yes timeout=60 ... ) set sid [uw_sessionjd) set name ’pckim’ <A HREF=" .. .IdisDatcherlb.html/$sid"> .... </A>
[UW_CONTROL keep-session=no ... ) set sql ‘ select • from person where name = $name"
- Sl ide13 - KRNET '97
UniWeb의 트랜잭션 지원
- 기존으I ACID 트랜잭션 지원
- 하나의 상태(세션)에 복수의 트랜잭션 지원
- 하나의 페이지에 복수의 트랜잭션 포함 가능
- 하나의 트랜잭션이 복수의 페이지에 걸쳐 생성될 즈느 。| 즈느
1 M 0:그
• long-duration wait 미 해 결 (연 구중)
- 시간제한으로 인한 세션종료시 해당 트랜잭션 복귀
- UniSQUX으| 트랜잭선 관련 모든 기능 지원: • commitlrollback/savepoint
• isolation level
- Slide14- KRNET ’ 97
- 81 -
웹 서버의 성능평가도구
• Webpest - 웹 환경을 큐잉 네트워크로 모델링
• 모든 웹 요구는 서로 독립적으로 요구된다는 가정
• 하나의 클라이언트 시스템에서 웹 요구를 지수분포 간격으로발생시킴
- GET, HEAO, POST 방법 제 공 - 장점: 실험 환경 구축 용이
- 단점: 클라이언트 시스템의 자원 부족 문제
• 71 타: WebSTONE , SPECweb96 , etc .
•
- Sl ide15- KRNET ’ 97
평가 대상 데이타베이스 통로 구조
-CGI 실행 화일
-CGI 응용서버
-API 응용서버
* 클라이언트 쪽 확장은 통신 비용으로 성능 저하
* 전용서버 .방식은 API확장 방식과성능 특성이 같음
-Slide16- KRNET '97
- 82 -
클라이언트
-Slide17-
성능평가구조
서버
CGI 십뺑화일구조
CGI 용용서버구조
성능평가인자
r 4
• 성능 평가에 사용된 시스템 사앙
공간
운영 셰껴
속도
Sol.ris 2 “
3000
2
성능 평가에 사용된 서버의 프로세스 인자
생 서버 최대 요구 갯수
CGl 웅용서벼 갯수 데이타에이스용로
APl 용용서버 갯수
동시 요구 갯수
각요구의 시간 갱랑 DBMS
데이타베이스 크기
버퍼 크기
-Slide18-
- 83-
32 개
Z 개
2 개
100 개
3아lms
8어이B
2MB
데이타빼
KRNET '97
10
KRNET ’ 97
데이타베이스 및 질의
•
•
;<;:101 즈~ ... 2-1 ζ, -rr
질외 총4 연산 총휴
QI 잉 71
Ql 잉 71
Ql 입 71
Q‘ i171
“앙도 경역 에이타 크기
단순 하나의 ”훌
연순 여러 '.의 ~.
단순 Ii용 '. 수의 류g
“앙 여러 7. 외 휴흩
Q’ 임기 앙순 하냐왜 B LO B tl 이타
q ‘ ’ i~ '\ 1쓰 71 약간 ‘상
데이타베이스스키마 CREATE 10.1_띠ass {
안연 앙
i1 integer unlque n이 nuR; α integer; 13 이·끼100) ;
b x11 b1tIT‘ P‘
CREATE INDEX ON tost_dlss(ll); CREATE INDEX ON tes,-da5.(i2)‘
CREATE ’ NDEXC에 tesCdass(녀) ;
-Slide19-
SQUX 질의 01 ; SElECT 11 . 딩. 13 .•
FROM test class w-tERE 11 • : random(100α10);
。2 : SElECT 11. 12‘ 13 •• FRC써 test 이1 .. 'll\ttiERE i2. :random(4000);
03: SELECT 11. 12. 13 .• FROM test class
싸iERE 13' ;nondom(loo0)‘ - 04: SElECTil . 12. 13 .•
FROM test claS5
'MiERE 11 < 1000 AND 12 > AVG(i2) AND 13> AVG(13)
。RDER BY 13; (딩 , 커서. 이 8ðl0l 처 8 25개민 검색잉)
。5 : SElECT b FROM t.5t 띠1 .. W써ERE 11 • :random(100). 1α10 :
- Q6: UPOA TE lest class SETs. 'mnvn WHERE 11. πndom(loo아}이, (25개 빈를 g 톨앤잊션 윈료)
KRNET ' 97
최소부하평균응답시간
질의 (명균도착간시간) CGI 실행 화일 CGI 웅용 서버 API 웅용 서버
Ql 6400 2909 13 .3 320 1.5 219 (1.0
02 6400 3330 5.6 714 1.2 590 1.0
Q3 6400 4620 4.4 1062 1.0 1048 1.0
Q4 51200 30626 (1.1 26874 (1.0) 28190 (1.0)
5 6400 5612 6.0 1064 1.1 940 1.0
Q6 (6400) 4368 (5.6 866 1.1 774 1.0
-Slide20- KRNET ’ 97
- 84 -
답시깐 평균 따
부하증가에 ’ i
g S
O
""'" m m
I m‘~
-액 짧 "'''' §
.a.!i6.':간에V (nw)
g § g
-• CXHXE ’ .OO .,JPFIL! -.,.--
§ § §
@
@
@
@
@
@
빼 빼 。。-。
’""'" ‘""'" g
@
뼈 @
'''''''' 3 s § s g ~ ~ ~ ~
... ‘긴Al U 1_ ’ ... ‘t‘1긴“‘)
03의 용답시간 02의 용답시간 01의 용답시간
1-,-,며..,. ~OO ..... ‘ ~ ..... 암f:L
‘""’
때
E
액 행 없@ 뺑 §
""'"
’m∞
혈훨:
a @ ~ ~ 8i1'!i. atι.lA1U’ ‘"'
"'" ’‘"""
。。, •
o
뼈
e @;
뻗 빼 ‘
@
,=
___.pl  -‘-W-ÐC‘ , --‘←。,___ 즈-""흐E
)I)))X'
쩍 ;뺑
킹 뺑 ·爛
•
50000
o
""" R 응 § 32CO """ '"‘" .‘’。•• 도“8시ll(ml ‘ •• ‘Ð'ol긴써1
06의 용답시간 05의 용답시간 04의 용답시간
KRNET ‘ 97
부하증가에
j 7
‘
요구실패 따
「
21 SI ide
•
g g § § .... ι,,,,",,강”’’
i←。]-ÐCE
→~W_‘ 『←’A___
-
§
’ 。.
。l
0.7 "0.8 i 0.5 ,, 0‘
。 s
。2
。 1
0 ‘ §
• g §
τ -~→, - --
g § § §
•• 도‘ζ씩긴’”’l
§
-W-EXE
→~W’”‘ -.,.‘R
。 .
。.
0.7 .0.8
i 。‘,, 0 ‘
0.3 0.2 0.'
o
§ g g ~ ~ ~ ~ •• ‘’깅셔긴" ’)
’ 。.
。 .
" ." : OS
I 。 ‘" " " o
§
03의 실(때를 심때를 02의 01의i때를
。,
0.' 0.7
"0.8 i O.5
,, 0‘ 0.3 。 2
0.' 。
§ •
’ 0.' 。.。,
.0.8
i O.5 11 0.4
。 3
。 a
o’ 0
§
1
。‘。.
。 7
.0.8
i 0.5 (t 0.4
。 3
0.2 0 .1 。
"""
-‘ , ‘ ‘ ‘ ‘
---
---
5짧훌5
g g § § lilí'‘αR!'에
§ § § g g § § .공도‘&-llt (1ft)
§ § ".. "... ,,... “”。
•• 도‘강에" ,.’l
06의 싱때를 05의 십때를 04의 실때를
‘ ’ t ιr • ν l -• 22 - KRNET ‘ 97
- 85.-
-SI ide
성능평가결론
- 단순한 질으I : • CGI 실행화일 구조는 최악의 성능 및 확장성
• CGI 응용서버는 API 응용서버와유사한성능
- 복잡한 질으I : • 연동구조로인한성능차이적음
-검색결과의 크기: • 모든 연동구조에서 응답시간, 확장성 떨어짐
‘
• CGI 응용서버 구조의 프로세스간 자료 목사 비용이 문제 되지않음
- 트랜잭션 처리 응용: • 연동구조의성능특성에영향없슴
-Sl ide23 - KRNET ’ 97
‘ 향후연구방향
-관계형 DBMS 포함
- 내 장절 차(stored procedure 이용한연동 구조포함
-검색 후개별 객체 항해하는질의포함
-브라우저 확장방식 고려
-Sl ide24- KRNET ‘ 97
- 86 -
•