Grade Server Team14. Attention Seeker 2015. 5. 21.
목표 구현 현황 성능 테스트 코드 분석 및 리팩토링 시연 및 항후계획
목표 동시 접속 2천명 가능한 채점 서버 구현 제출 코드에 대한 다양한 정보 제공 사용자 편의를 위한 기능 개선 및 추가 코드 길이, 사용 시간, 사용 메모리 사용자 편의를 위한 기능 개선 및 추가 랭킹 시스템, 학생관리 시스템 등 개선 통계 시스템, 코드 다운로드 등 기능 추가
기존 채점서버와 비교 각각의 독립된 컨테이너 환경에서 채점 Request에 따른 채점 요청을 동기적 수행 폴더 계층의 세분화 시스템에 문제가 되는 코드를 입력 받아도 컨테이너의 종료, 재생성으로 간단히 처리 가능 Request에 따른 채점 요청을 동기적 수행 폴더 계층의 세분화 제출 코드 다운로드 기능 제공 편의
구현 현황 데이터베이스 설계/구현 웹 서버 UI 및 기능 구현 문제 제출 기능 구현 Docker 이미지 파일 생성 채점 프로그램 완료
구현 현황-개요 . . . Web Server Judging Server Flask (Tornado) Celery Docker Request/ Response Web Server Judging Server Flask (Tornado) Celery . . . Judge Queuing Docker Docker Web Surfing Docker Request Judge Docker Judging Docker Maria DB Redis Judged Result
기존 채점서버와 비교 각각의 독립된 컨테이너 환경에서 채점 Request에 따른 채점 요청을 동기적 수행 폴더 계층의 세분화 시스템에 문제가 되는 코드를 입력 받아도 컨테이너의 종료, 재생성으로 간단히 처리 가능 Request에 따른 채점 요청을 동기적 수행 폴더 계층의 세분화 제출 코드 다운로드 기능 제공 편의
성능 테스트 Jmeter를 이용한 웹 서버 부하테스트 : 500(1000)명의 유저생성 후 동시 접속 테스트
성능 테스트
성능 테스트 과제 제출을 위한 100개의 큐를 넣은 뒤 처리된 속도 측정 과제 제출을 위한 100개의 큐를 넣은 뒤 처리된 속도 측정 ‘Hello, World!’ 기준 100개 : 평균 4초 소요 테스트 환경 : 연구실 데스크 탑 안의 가상환경
코드 분석 및 리팩토링 SonaQube를 이용한 코드 분석 리팩토링 전 분석 결과
코드 분석 및 리팩토링 코드 리팩토링 구조 변경 중복 코드 제거 및 함수 처리 채점 프로그램 내 DB init을 Celery로 이동. 중복 코드 제거 및 함수 처리
코드 분석 및 리팩토링 SonaQube를 이용한 코드 분석 리팩토링 후 분석 결과
코드 분석 및 리팩토링 리팩토링 전/후 성능 비교 ‘Hello, World!’ 1,000 채점의 평균 시간 리팩토링 전 리팩토링 후
UI URL을 통한 접근 처리 엔터
UI 한글/영어 지원 기본언어:한글
시연 Browser : Chrome 기능 : 1. 각 메뉴별 페이지 2. 문제 제출 및 채점 3. 채점 결과 / 제출 기록 확인
향후 계획 각 항목별 성능 테스트 재시도 Cross Browsing Issue 처리 사용자 Log 관리 Container/Celery monitoring 사용 가능 프로그래밍/실제 언어 추가 문제집 생성기능 추가 알림 기능 추가
감사합니다