300 likes | 1.71k Views
삼성전자 DS 부문 소프트웨어연구소 과제 제안서. 2013 . 9 . 12. 프로젝트 과제 제안. 1. Python 기반 성능 Metric Monitor Tool 개발. 내용 및 목적 trace 결과나 CPU Utilization, Disk I/O Throughput 등의 Data 를 읽어들여 사용자가 수동으로 분석하기 위한 Tool 을 개발 Test 용 Metric Data 는 제공됨
E N D
삼성전자 DS부문소프트웨어연구소과제 제안서 2013. 9. 12
Python 기반 성능 Metric Monitor Tool 개발 • 내용 및 목적 • trace 결과나 CPU Utilization, Disk I/O Throughput 등의 Data 를 읽어들여 사용자가 수동으로 분석하기 위한 Tool 을 개발 • Test 용 Metric Data 는 제공됨 • PyQtGraph 에 대부분의 참고 로직이 제공되므로, Python 및 GUI Programming 에 경험이 있다면 어렵지 않게 수행 가능한 프로젝트
Python 기반 성능 Metric Monitor Tool 개발 • GUI 전체 Overview • 좌측에는 GUI Control Panel, 우측에는 Graph 창이 존재한다. • 윈도우 상단에는 Menu Bar, ToolBar 등이 존재한다. • 좌측 Control Panel 에는 Section 별로 Sub Menu 및 Control 등이 존재한다. • 우측에는 복수개의 그래프 패널들이 존재한다. • 하위 GUI 는 모두 PyQtGraph 에서 제공함
Python 기반 성능 Metric Monitor Tool 개발 • 그래프 패널 모드 • 1개부터 4개까지의 확대, 축소 창을 가질 수 있으며, 사용자가 선택 가능하다. • 프로그램 종료시에 각 창의 레이아웃이 저장되며, 재실행시 동일한 위치 및 레이아웃을 가져야 한다. • 각 창 사이의 크기는 조절 가능하다.
Python 기반 성능 Metric Monitor Tool 개발 • ROI(Region of Interest) • 관심 영역을 사용자가 직접 표기할 수 있도록 기호를 삽입 – 직선, 박스, 화살표 기호 형태 • 그래프 위도우 내에 ROI 삽입이 가능하여야 한다. • 한 그래프내의 ROI 는 연결된 다른 그래프에서도 확대, 축소되어 동일한 자리에 보여야 한다. • 별도의 ROI 윈도우가 존재하여, 삽입된 ROI 의 종류가 정렬되어 보여야 한다. • ROI 윈도우의 한 ROI 항목을 클릭하면, 해당 ROI 위치로 그래프 윈도우가 Scroll 하여야 한다. • 삽입된 ROI 목록들은 Load/Save 가 가능하여야 한다.
Python 기반 성능 Metric Monitor Tool 개발 • Custom Grid & XY Axis • 그래프의 확장, 축소시 x, y 축의 단위는 적절하게 변환하여 표기되어야 한다.
Python 기반 성능 Metric Monitor Tool 개발 • 자동 Scrolling 기능 • 사용자가 직접 그래프 윈도우를 스크롤 할 필요 없이, 일정 시간 간격으로 자동으로 스크롤할 수 있는 기능을 삽입한다. • 특정 키보드 입력에 따라 스크롤 시작, 잠시 멈춤, 재개, 종료 가 가능하다. • 스크롤링 여부와 관계 없이 사용자의 ROI 및 화살표 기호, 키보드입력이 가능하여야 한다. • 입력된 화살표 기호 및 키보드는 별개의 창에 선별되어 쉽게 보여줄 수 있어야 하며, 윈도우 내의 항목을 클릭하면 해당 항목을 그래프 윈도우가 보여주어야 한다. • custom plotting 기능 • plotting 시에 graph 는 사용자 정의된 도형으로 그릴 수 있어야 한다. • e.g.) call flow depth 가 10을 넘어가는 점에 대해서는(y-axis 가 10 이상인 경우 ) 해당 지점의 point 를 굵은 사각형 모양으로 plotting 할 수 있어야 한다. • backgound filling 기능 • 그래프 윈도우의 특정 background region 에는 지정된 색상으로 filling 할 수 있어야 한다. • e.g) 특정 시간이나 날짜등의 데이터에 대해서는 background 를 검은색으로 채우는 기능. • 코딩시 유의점 • 모든 로직들은 클래스로 추상화하여야 한다. • 추상화된 데이터들은 확장성 있게 설계 되어야 한다. • 클래스의 메서드들은 최대 20라인을 넘지 않도록 작성하여야 하며, 공백과 주석을 적절히 활용하여 이해하기 쉽도록 작성하여야 한다. • Qt Designer 를 이용하여 GUI 와 Logic 을 분리하여야 한다.
기계학습을 이용한 성능 Metric 패턴 인식기 개발 • 내용 및 목적 • Hadoop 등에서 다양한 benchmark tool 을 수행하면 이에 따른 성능 metric 은 benchmark 결과에 따라 모두 달리 보여짐 • 각 benchmark solution 의 resource utilization pattern 을 이용하여 어떠한 benchmark 수행 결과인지를 판단한다. • benchmark 의 종류를 판단한 후, 어떤 지점에서 utilization 이 극대화되기 시작하는지를 판단한다. • 판단 및 예측에 사용되는 머신 러닝 알고리즘은 추후 공지
기계학습을 이용한 성능 Metric 패턴 인식기 개발 • 구현 내용 • DB화된 Test Data 의 분류 • Test Data 의 판별 • DB화된 Test Data 의 분류 • Test Data 로 제공되는 Data 를 Category 에 맞춰 category 로 나눈다. • Test Data 의 판별 • 새로 입력되는 Test Data 의 Scrolling 시간이 지남에 따라 각 Category 별 확률 및 예상 경로를 GUI 로 보여준다. • 해당 category 에서 어떤 시점에 utilization 이 극대화되는지를 판별하여 예측한다.