목차 회사소개 회사현황 시스템 구성도 SQL Server 사용 로드맵 프로젝트 개요 DB 마이그레이션 차후 계획
회사 소개 회사명 : ㈜인터파크지마켓 대표이사 : 구영배 주소 : 서울특별시 서초구 서초동 1304-3 남서울빌딩 6층 설립일 : 2000년 4월 7일 자본금 : 36억 직원수 : 120명 URL : www.gmarket.co.kr
회사 연혁 1999.12 인터파크 사내벤처(구스닥 팀)로 시작 2000.04 주식회사 구스닥 법인설립 1999.12 인터파크 사내벤처(구스닥 팀)로 시작 2000.04 주식회사 구스닥 법인설립 2000.05 구스닥 상품거래소 오픈(www.goodsdaq.com) 2001.01 구스닥 쇼비즈펀드 오픈 2001.11 일본 현지법인설립(인터파크 재팬) 2002.04 인터파크 재팬 사이트 오픈(www.interpark.co.jp) 2002.04 해외상품 구매대행 서비스 ‘OmniverMart’ 오픈 2002.06 국내 최초 B2M 서비스 개시(www.ilovehyundai.com) 2002.07 구스닥 연구소 설립 2003.01 회원제 원가판매 ‘제로마진클럽’ 오픈 2003.06 쇼핑 블로그 ‘미니샵’ 개설 2004.03 주식회사 인터파크지마켓으로 사명 변경(www.gmarket.co.kr) 2004.12 미국 최대 벤처캐피탈(Oak Investment Partners) 760만불 투자 유치
회사 CI Goods e-market (회사의 내용) Good e-market (회사의 성격) Green e-market (회사의 역할) Global e-market (회사의 비전)
회사 현황 The Fastest Growing Online Marketplace in Korea 전자상거래 Top 5 업체 가운데 최소의 자본금으로 시작 2003년과 2004년 순위상승률, 전자상거래 업계 최고 분기별 거래액 매 50% 이상 성장 매월 1% 분야점유율 상승, 분기별 200% 거래건수 성장 주요 Metrics ( 2005년 3월 기준) 일 평균 거래액 : 약 30억 가입 회원 수 : 340만명 일 평균 방문객 수 : 75만명 거래되고 있는 상품 수 : 90만개 일 거래건수 : 10만건
Monthly GMV 2004 단위 : 억원 ※ 월평균 증가율 : 15%
네트워크 사용량
Performance Index (Rankey.com) 국내 인터넷 순위 20위 (2005년 3월 3째주) Online Marketplace 부문 2위 (cf. 1위 – 옥션) 전자상거래 부문 3위 (cf. 1위 – 옥션, 2위 – 인터파크, 4위 – 디앤샵) Online Marketplace 부문 시장 점유율 약 29%
DB 시스템 구성도 Public Network Private Network HP Supserdome UNISYS ES7000 FC FC Private Network FC HP DL740 HP DL740 HP Supserdome UNISYS ES7000 IBM X440 Storage Network (FC) SAN 스위치 NIC 히다찌 TagmaStore USP HP XP128 스토리지 HBA
DB 용도별 구성도 Log-shipping 이용 HTML 페이지 생성 조회용DB1 Main DB 조회용DB2 상품리스트 데이터 생성 제휴데이터 생성 검색 색인용 데이터 생성 각종 조회 업무에 활용 조회용DB1 Main DB 조회용DB2 JOB, SP 이용 선택 접속 정산용DB 메일발송용DB 이벤트용DB
SQL Server 사용 로드맵 2000.4 2002.2 2004.8 2006년 초(?) SQL Server 7.0 SQL Server 2000(32bit) SQL Server 2000(64bit) SQL Server 2005(64bit) 4Way 서버 사용 8Way 서버 사용 장애조치 클러스터 로그전달 64bit 서버 도입 64GB 이상의 Memory 사용 고가용성 DB 시스템 가용성 중심 보안 개발자 생산성
프로젝트 개요 64비트 플랫폼에서 SQL Server 구축 대상 : G마켓 메인 DBMS 기간 : 2004.6 ~ 2004.8 (약 3개월) 구축단계 64비트 플랫폼 구축 From 32-bit to 64-bit DB 마이그레이션 Configuration 조정 및 튜닝 기존 장비를 활용한 DB분산
목적 기존 DB 장비의 CPU, Memory, Disk Resource 부족으로 인한 서비스 처리 지연 문제 해결 지속적인 사업 확장을 고려한 충분한 하드웨어 확장성 고려 고 가용성 장비로 교체하여 플랫폼의 안정성 확보 튜닝과 구조개선을 통한 성능향상 이전에 충분한 하드웨어 Redundancy 확보
성능 What 64-bit means to Windows 더 많은 Physical Memory 지원 다수의 Application Instance 탑재 가능 (=consolidation 효과) 향상된 Scale-up 지원(8CPUs 64 or 128 CPUs) 어플리케이션에서 사용할 수 있는 더 많은 Virtual memory Memory 문제로 인한 어플리케이션 성능 Issue 없어짐.(예, SQL 서버) PAE/AWE 필요없음 향상된 Computing Power 새로운 아키텍처(EPIC) Integer 및 floating register 수 증가(8개 128개) EPIC 아키텍처를 지원하는 최적화된 Compiler 지원 OLTP performance 약 2배의 성능
성능 Windows 2003 32bit vs. 64bit 32 bit 64 bit Virtual address space 4GB 16TB OS별 최대 지원 RAM 32GB(Ent.) 64GB(Datacenter) 64GB(Ent.) 512GB(Datacenter) 메모리 관련 비교 Physical 512GB Virtual 3GB 16,000GB With PAE/AWE 64GB 필요없음
SQL Server 2000 64bit vs. 32bit 설치 기타 추가 정보 Windows Installer 기반 Windows Server 2003 64bit components에 영향을 받는다 원격설치를 지원하지 않음 기타 기능 변화 도구 및 유틸리티 차이 새로운 기능 추가 정보 http://www.microsoft.com/korea/sql/64bit
하드웨어 구성 서버 (HP Superdome) 스토리지(HP XP128) 스위치 운영체제 데이터베이스 서버 24개의 Intel Itanium II 1.5GHz 프로세서 64GB RAM Emulex LightPulse 호스트 버스 어댑터 4개 두 개의 파티션으로 분할, 각 파티션에는 12CPU, 32GB RAM 할당 스토리지(HP XP128) 15k RPM 72GB 디스크(RAID 10), 10k RPM 143GB 디스크(RAID 5) Usable 1.8T, 12 GB 캐시 MPIO 기술을 기반으로 한 다중경로 소프트웨어 솔루션인 HP SecurePath 4.0C를 사용하여 2 개의 호스트 버스 어댑터에 대한 I/O 트래픽 균형 조정 스위치 HP StorageWorks SAN 스위치를 이용한 SAN 구성 운영체제 64비트 Microsoft Windows Server 2003, Datacenter Edition 데이터베이스 서버 Microsoft SQL Server 2000(64 bit)
Integrity Superdome-32w 장애 조치 클러스터 구성 User LAN / Standby LAN / Server LAN DB서버 #1 (nPar) 12CPU/32GB hp StorageWorks SAN Switch 2/8 Heart Bit LAN 2 MSCS DB서버#2 (nPar) 12CPU/32GB 8 2 XP128 Usable 2TB (1TB=R10, 1TB=R5)) Business Copy 1TB Integrity Superdome-32w (Itanium2 1.5GHz*32ea) Windows 2003 64bit Data Center Edition
스토리지 구성
DB 마이그레이션 손쉬운 SQL Server 2000 Enterprise Edition(64bit)으로 마이그레이션 32bit와 64bit 플랫폼 모두 디스크 상에서 동일한 형식 유지 작업에 의한 다운타임 최소화 ( Log shipping 이용 ) 온라인 상태에서 미리 Backup 및 restore를 통한 데이터 일치 Transaction log backup을 복원하여 데이터 차이를 좁힘 최종 변경 부분을 반영할 시에만 서비스를 중지함 데이터 복원이 완전히 이뤄지면 어플리케이션 접속을 신규 서버로 변경하고 서비스 재 개시 프론트 엔드 어플리케이션은 성능이 좋아졌다는 것 이외의 다른 차이를 못 느낌
대용량 SQL Server 성능 최적화 디스크 시스템 외부 디스크에 데이터베이스 설치 RAID 10 : 가장 많이 사용하는 RAID 수준 SQL Server 파일을 분산 트랜잭션 로그 파일 Tempdb 파일 데이터 파일 인덱스 파일 빠른 쓰기 입/출력 속도로 성능저하가 있을 수 있으므로 특히 트랜잭션 로그, TempDB인 경우는 RAID 0가 좋다. 디스크 오류 대응까지 고려하면 RAID 10 쓰기작업이 많지 않은 경우는 Raid 5도 무난
대용량 SQL Server 성능 최적화 TempDB Contention TempDB 파일을 분리하여 여러 저장소 집합에 분산 TempDB 파일이 존재하는 디스크는 RAID 0 디스크의 활용성과 안정성을 고려할 때 RAID 10 SP작성시 임시 테이블보다는 테이블 변수를 사용하는 것이 좋고 빈번히 사용되는 SP일 수록 가능하면 테이블 변수를 사용하지 않고 Query를 작성하는 것이 좋다
대용량 SQL Server 성능 최적화 SMP 조정 affinity mask - 프로세서와 스레드 간의 연결 max worker threads - SQL Server에 사용할 수 있는 작업자 스레드 수 max degree of parallelism - 병렬 계획 실행에서 사용할 프로세서 수 cost of threshold for parallelism - 병렬 계획을 만들고 실행하기 위한 임계값
대용량 SQL Server 성능 최적화 Max Degree of Parallelism 병렬 계획 실행에 사용할 프로세서 수 제한 (최대 32개) 디폴트 값 = 0 사용 가능한 모든 프로세서 사용 특정 단일 쿼리가 CPU의 대부분을 사용할 때 문제 발생 Max DOP = 1 인 경우 병렬 계획 생성 억제 Max DOP > 1인 경우 단일 쿼리 실행에 사용되는 프로세서 수 제한 G마켓 사례 Max DOP = 4 Max DOP = 8에서 4로 변경 후 일부 쿼리 실행이 지연되어 governor cost limit 제한에 걸려 실패가 발생하였으나 전체적으로 최선의 성능을 발휘 OLTP위주로 사용되는 DBMS인 경우 Max DOP = 1 설정을 권하는 경우도 있지만 G마켓인 경우는 OLTP와 대량조회 작업이 혼재 되어 있어 G마켓에 맞는 설정이 중요
대용량 SQL Server 성능 최적화 메모리 기본적으로 사용할 수 있는 만큼 실제 메모리 할당 SQL Server 메모리 풀 과도한 페이징을 방지하기 위해 충분한 리소스를 운영 체제 몫으로 할당 SQL Server 메모리 풀 시스템 수준 데이터 구조 로그 캐시 프로시저 캐시 연결 컨텍스트 버퍼 캐시 수동 조정 가능 매개 변수 max server memory (mb) min server memory (mb) min memory per query (KB) index create memory (KB)
대용량 SQL Server 성능 최적화 실행 계획 관리 프로시저 캐시 불필요SP Compilation 제거 잘못된 실행 계획 재사용으로 인한 성능 저하 이슈 최선의 실행계획이 캐싱이 될 수 있도록 좋은 표본을 실행함 DBCC FREEPROCCACHE 불필요SP Compilation 제거 AD-HOC 쿼리 제거(SP화) 소유자 명시
대용량 SQL Server 성능 최적화 주기적인 인덱스 관리 Partitioned View 활용 DBCC SHOWCONTIG DBCC INDEXDEFRAG DBCC DBREINDEX Partitioned View 활용 OLTP에서는 성능 이슈가 있을 수 있으므로 사용DB에 따라 활용 여부 결정 G마켓에서는 정산용 DB에 활용 파티션별로 인덱스 관리 시일이 경과된 데이터 삭제 시 유리
차후계획 SQL Server 연합을 사용한 수평확장 서비스별 DB 분산 DR 구축 SQL Server 2005 (64bit) 전환 감 사 합 니 다