KR100503776B1 - 웹 어플리케이션 성능 분석 및 튜닝 방법 - Google Patents

웹 어플리케이션 성능 분석 및 튜닝 방법 Download PDF

Info

Publication number
KR100503776B1
KR100503776B1 KR1020050020765A KR20050020765A KR100503776B1 KR 100503776 B1 KR100503776 B1 KR 100503776B1 KR 1020050020765 A KR1020050020765 A KR 1020050020765A KR 20050020765 A KR20050020765 A KR 20050020765A KR 100503776 B1 KR100503776 B1 KR 100503776B1
Authority
KR
South Korea
Prior art keywords
web
tuning
performance
server
application
Prior art date
Application number
KR1020050020765A
Other languages
English (en)
Inventor
권순범
Original Assignee
(주)위즈베이스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by (주)위즈베이스 filed Critical (주)위즈베이스
Priority to KR1020050020765A priority Critical patent/KR100503776B1/ko
Application granted granted Critical
Publication of KR100503776B1 publication Critical patent/KR100503776B1/ko

Links

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B19/00Hoop exercising apparatus
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B71/00Games or sports accessories not covered in groups A63B1/00 - A63B69/00
    • A63B71/06Indicating or scoring devices for games or players, or for other sports activities
    • A63B71/0619Displays, user interfaces and indicating devices, specially adapted for sport equipment, e.g. display mounted on treadmills
    • A63B71/0669Score-keepers or score display devices
    • A63B71/0672Score-keepers or score display devices using non-electronic means
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2220/00Measuring of physical parameters relating to sporting activity
    • A63B2220/17Counting, e.g. counting periodical movements, revolutions or cycles, or including further data processing to determine distances or speed
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B2225/00Miscellaneous features of sport apparatus, devices or equipment
    • A63B2225/68Miscellaneous features of sport apparatus, devices or equipment with article holders
    • A63B2225/685Miscellaneous features of sport apparatus, devices or equipment with article holders for electronic devices, e.g. phone, PDA, GPS device, notebook

Landscapes

  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 웹 어플리케이션 성능 분석 및 튜닝 방법에 관한 것으로서, 더욱 상세하게는 웹 서버, DB 서버 단독의 튜닝 기술이 아닌 웹 서버로부터 DB 서버까지 하나의 웹 어플리케이션을 이루고 있는 구성요소별, 구성요소간의 성능저하의 원인을 찾아 분석함으로써 효율적인 웹 시스템 운영이 가능한 웹 어플리케이션 성능 분석 및 튜닝 방법에 관한 것으로서, 크게는 4단계로 구분할 수 있다. 즉, 웹 어플리케이션 성능 분석 단계와, 어플리케이션 서버 및 어플리케이션 로직 성능 분석단계, 데이터베이스 및 SQL 분석 단계, 웹 어플리케이션 튜닝 단계로 이루어짐으로써, 본 발명은 웹 사이트를 구성하는 웹 어플리케이션 중에서 성능에 저하가 발생될 소지가 있거나 발생되고 있는 페이지의 성능을 효율적으로 측정하는 효과가 있고, 사용자가 방문한 웹 어플리케이션 출발점에서 중간에 수행된 로직 시퀀스 및 최종적인 SQL까지의 연결을 한눈에 파악할 수 있는 효과가 있으며, 종래의 웹 서버 단독, SQL 튜닝의 단점을 보완하여 하나의 웹 페이지의 컨텐츠를 사용자에게 전달하기 위해 처리되는 모든 부분을 검토함으로써 성능을 향상시키는 효과가 있다.

Description

웹 어플리케이션 성능 분석 및 튜닝 방법 {Method for analyzing and tuning web application performance}
본 발명은 웹 어플리케이션 성능 분석 및 튜닝 방법에 관한 것으로서, 더욱 상세하게는 웹 서버, DB 서버 단독의 튜닝 기술이 아닌 웹 서버로부터 DB 서버까지 하나의 웹 어플리케이션을 이루고 있는 구성요소별, 구성요소간의 성능저하의 원인을 찾아 분석함으로써 효율적인 웹 시스템 운영이 가능한 웹 어플리케이션 성능 분석 및 튜닝 방법에 관한 것이다.
도 1은 종래의 다양한 형태의 객체를 표현한 사이트 예시도로서, 웹 페이지(5)는 그림(3), 링크(2), 클릭버튼(6), HTML TEXT(4) 등의 다양한 형태의 객체들로 구성되고, 상기 웹 페이지(5)가 구성하는 객체마다 사용자가 브라우저를 이용하여 데이터를 요청하였을 경우에 그 결과를 표현하는 응답속도는 다양하게 나타나며, 또한, 동일한 웹 서버 동일한 웹 환경에서 운영되는 웹 어플리케이션의 응답속도는 사용자 방문 시간별, 페이지별, 웹 서버 하드웨어 성능별, 웹 서버 파라미터 설정별, 구성된 Tier 유형별, 사용된 기술별(자바, C#, CGI 등) 해당 기술을 이용해 구현한 로직의 효율별, 구사된 SQL 및 데이터베이스의 성능별로 응답속도는 현저히 다르게 나타나고 있었다.
상기 응답속도를 결정하는 요소에 의한 웹 어플리케이션 성능은 웹 서버 자체의 성능정보(CPU 사용률, 메모리 사용률 등) 및 데이터베이스 차원의 성능정보(DB 사용률, SQL)만을 측정하여 튜닝하고 있었다.
또한, 종래의 기술은 대부분 웹 사이트들은 수많은 양의 정보와 데이터를 관리하고 이러한 방대한 양의 데이터를 관리하기 위해 모든 시스템이 하나 이상의 데이터베이스와 연결되어 있으며, 경우에 따라서 여러대의 웹 서버 및 어플리케이션 서버를 묶어 하나의 웹 사이트를 구성하고 있었다.
도 2는 종래의 웹 사이트 Tier 블록도로서, 상기 웹 사이트 Tier(100)는 웹 서버 Tier(30)와, 어플리케이션 서버 Tier(20)와, 데이터베이스 Tier(10)로 구성되며, 상기 웹 서버 Tier(30)는 텍스트 기반의 HTML 데이터와, JPEG, GIR, TIFF 등과 같은 이미지 데이터와, 자바 및 비주얼베이직의 스크립트와, 매크로 미디어 플래시 코드 등이 있다.
상기 어플리케이션 서버 Tier(20)는 Java Server Page 및 Servelt, EJB로 구성되고 JDBC를 이용하여 데이터베이스와 연동된다.
상기 데이터베이스 서버 Tier(10)는 오라클 데이터베이스와 같은 사용 RDBMS(Relation Database Management System)가 있다.
이러한 구성요소로 구성된 웹 사이트(1)는 여러 가지 기술을 이용하여 다이나믹한 컨텐츠를 사용자에게 전달하고 있으며, 하나의 컨텐츠를 사용자에게 전달하기까지 다양한 시스템과 다양한 형태의 억세스 경로를 가지게 됨으로써 웹 페이지 또는 하나의 웹 페이지안에 존재하는 링크별로 응답시간이 크게 차이가 나고 있었다.
한편, 종래의 튜닝은 웹 서버 튜닝과 데이터베이스 SQL 튜닝이 있으며, 상기 웹 서버 튜닝은 데이터베이스와 연동하여 다이나믹한 데이터를 서비스함으로 웹서버 단독으로 튜닝하는 웹 서버 튜닝이 있고 상기 웹 서버 튜닝 요소는 시스템 메모리 튜닝, 웹서버 파라미터 튜닝, OS 커널 파라미터 튜닝 및 네트워크 파라미터 튜닝이 있고, 상기 데이터베이스 SQL 튜닝은 SQL 질의문이 결과를 도출할 때 많은 시간이 소비되는 것을 데이터 조율하여 최적화시키는 것으로 상기 SQL 튜닝 요소는 조인방식 변경, 필터링 조건 변경, 및 인덱스 변경 등이 있었다.
이와 같이 종래의 기술은 방대하고 복잡하게 구성되어 있는 웹 사이트에 대한 종합적인 성능 진단 및 사용자에게 특정 데이터가 전달되기까지의 구간별(사용자-웹서버, 웹서버-어플리케이션 서버, 어플리케이션 서버-DB서버) 성능측정 및 성능저하의 원인을 분석하고 측정하기에 현실적으로 곤란한 문제점이 있었다.
다른 문제점으로 웹 서버 단독 튜닝은 웹 서버 자체의 성능은 개선할 수 있으나, 데이터베이스와 연결 또는 웹 어플리케이션에 복작한 로직이 구사될 경우에 웹 서버 튜닝으로만 성능 개선의 효과가 없는 문제점이 있었다.
또 다른 문제점으로 SQL 튜닝은 성능 향상은 기대할 수 있는 반면, SQL과 관련되지 않은 부분 즉, 어플리케이션 전체에 대한 튜닝이 불가능한 문제점이 있었다.
따라서, 본 발명은 상기 문제점을 해결하기 위하여 안출된 것으로 본 발명의 목적은 웹서버로부터 DB서버까지 하나의 웹 어플리케이션을 이루고 있는 구성요소별, 구성요소간의 성능저하의 원인을 찾아 분석함으로써 보다 효과적인 웹 시스템 운영을 제공하는데 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명은 웹 어플리케이션 성능을 측정하고 성능저하 발생 및 발생될 수 있는 웹 페이지와, 네비게이션 팬턴을 분석하고 분석한 제1분석값을 생성하는 제1단계와; 상기 제1분석값이 웹 환경 문제인가 판단하고 웹 환경문제를 개선하는 제2단계와; 상기 제2단계의 웹 환경문제가 아닌 경우에 웹페이지와, 네이게이션 패턴에 대한 어플리케이션 서버 및 어플리케이션 로직의 성능 저하 원인을 분석하고 분석한 제2분석값을 생성하는 제3단계와; 상기 제2분석값이 자바로직의 문제인가를 판단하고, 비효율적인 로직을 수정하는 제4단계와; 상기 제4단계의 자바로직의 문제가 아닌 경우에는 성능저하 원인인 데이터베이스 및 SQL을 추출하여 분석하고, 분석한 제3분석값을 생성하는 제 5단계와; 상기 제 3분석값을 웹 어플리케이션 튜닝하는 제6단계로 이루어진 웹 어플리케이션 성능 분석 및 튜닝 방법을 제공함으로써 달성하였다.
상기 웹 페이지와, 네비게이션 패턴은 페이지별 사용자 응답시간 측정, 웹 로그 분석을 통한 네이베이션 사용자 응답시간 측정, 시나리오 기반의 사용자 응답시간 측정 중 어느 하나를 제공함으로써 달성하였다.
상기 응답시간은 설정에 따라 1회 또는 주기적 측정을 통하여 달성하였다.
상기 웹 어플리케이션 튜닝은 웹 서버, 어플리케이션 서버, 데이터베이스가 동시에 튜닝됨으로써 달성하였다.
상기 웹 서버는 웹 페이지별 또는 웹 네비게이션별로 튜닝됨으로써 달성하였다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
우선, 본 발명 웹 어플리케이션 성능 분석 및 튜닝 방법의 이해를 돕기 위한 웹 어플리케이션의 종류와 웹 어플리케이션의 구성요소를 설명한다.
웹 어플리케이션은 다이나믹(Dynamic) 어플리케이션과, 스태틱(Static) 어플리케이션으로 분류되며, 상기 다이나믹 어플리케이션들은 다양한 형태의 사용자 응답을 보내주기 위해 데이터베이스와 연동을 실시하고, 이미 만들어진 TEXT 데이터를 이용하여 사용자에게 다이나믹한 페이지를 만들어 주는 것이다.
상기 스태틱 어플리케이션은 단순한 텍스트 형태의 HTML 데이터로 매번 동일한 데이터만을 사용자에게 보내주는 것이다.
한편, 웹 어플리케이션의 구성요소는 다이나믹 어플리케이션의 경우에 사용자 인터페이스와 어플리케이션 로직, 데이터가 있으며, 더욱 상세하게는 상기 사용자 인터페이스는 사용자 인터페이스를 구성하는 객체가 텍스트 기반의 HTML과, JPG, GIF와 같은 이미지 데이터와, 인터렉티브(Interactive)한 사용자 인터페이스 처리를 가능하게 하는 Javascript/VBscript, 매크로 미디어 플레시, MS ActiveX 등이 있다.
상기 어플리케이션 로직은 비즈니스 룰을 구현하기 위해 Java 또는 C#과 같은 컴퓨터 언어에 의해 구현되는 로직부분으로 대표적인 예가 EJB(Enterprise Java Bean)가 있고, 구현방법에 있어서, 언어 종류에 무관하게 여러 단계를 Call Stack과 조건이 수반되는 로직 분기가 일어나고, 또한 JDBC, ODBC와 같은 데이터베이스 연결 API를 통해 데이터베이스가 연동된다.
상기 데이터는 다양한 형태의 데이터를 저장하고 있으며, 주로 어플리케이션 로직에 의해 입력, 저장, 수정 및 삭제되며 데이터베이스 시스템에 저장되어 SQL을 통해 억세스 된다.
더욱이, 스태틱 어플리케이션의 경우에 사용자 인터페이스는 사용자 인터페이스를 구성하는 객체는 텍스트 기반의 HTML, JPG 및 GIF와 같은 이미지 데이터와, 인터렉티브(Interactive)한 사용자 인터페이스 처리를 가능하게 하는 Javascript/VBscript, 매크로 미디어 플레시, MS ActiveX 등이 있다.
도 3은 본 발명의 바람직한 실시예에 따른 웹 어플리케이션 성능 분석 흐름도로서, 다음과 같은 단계로 이루어져 있다.
사이트 모니터링하는 단계(S10)와;
응답시간 페이지를 추출하는 단계(S20)와;
느린 페이지를 선정하는 단계(S30)와;
느린 페이지를 심층 분석하는 단계(S40)와;
웹 환경 문제인가 판단하는 단계(S50)와;
웹 환경 개선 단계(S60)와;
자바 바이너리와, 소스를 분석하는 단계(S70)와;
클래스 다이어그램과, 시퀴스 다이어그램을 추출하는 단계(S80)와;
로직을 심층 분석하는 단계(S90)와;
자바로직이 문제인가 판단하는 단계(S100)와;
비효율적인 로직을 수정하는 단계(S110)와;
데이터베이스 및 SQL를 추출하고 분석하는 단계(S120)와;
웹 어플리케이션 튜닝 단계(S130)로 이루어진다.
보다 상세하게 상기 S10단계 내지 S40단계는, 웹 어플리케이션 성능을 측정하고, 성능저하 발생 및 발생될 수 있는 웹 페이지와, 네비게이션 팬턴을 분석하고, 분석한 제1분석값을 생성하는 것으로서, 상기 웹 페이지와, 네비게이션 패턴을 분석하기 위한 웹 어플리케이션 성능 분석은 페이지별 사용자 응답시간 측정과, 웹 로그 분석을 통한 네비게이션별 사용자 응답시간 측정 및 시나리오 기반의 사용자 응답시간 측정으로 구분된다.
상기 페이지별 사용자 응답시간 측정은, 페이지별 응답시간을 측정하기 위해 페이지를 구성하는 HTML에 대한 파싱이 선행되고 상기 파싱을 통해 얻어진 여러 가지 정보를 활용한다. 즉, 하나의 페이지를 구성하는 Total Byte 수, URL 링크수, 이미지 링크수, 개별 이미지 Byte 수, 사용자 브라우저가 해당 페이지를 전달받기 위해 네트워크를 통해 전달된 TCP/IP 패킷수, 웹 서버의 HTTP Connection 관리 방식 등을 조사하는 것이다.
상기 웹 로그 분석을 통한 네비게이션별 사용자 응답시간 측정은, 모든 웹 서버가 사용자 방문기록을 그 시간과 함께 로깅하도록 구현이 되어 있으며, 이와 같이 서버 억세스 로그를 분석함으로써, 사용자의 네비게이션 패턴을 분석해 낼 수 있으며, 또한 사용자가 관심을 가지는 웹 컨텐츠에 대한 정보도 함께 알 수 있고, 이러한 웹 서버 로그를 바탕으로 하여 사용자의 네비게이션 패턴을 그대로 시뮬레이션할 수 있으며, 사용자가 해당 웹 사이트에 머무르는 동안 겪은 응답시간을 해당 페이지를 구성하는 클릭버튼, 링크 등과 같이 클릭한 순간 다른 페이지로 연결되는 클릭객체별, 해당 페이지별 및 네비게이션 유형별로 계산함으로써, 성능 저하의 원인이 어디에 있는지를 웹 어플리케이션 및 어플리케이션간의 연결 관계별로 분석하는 것이다.
상기 시나리오 기반의 사용자 응답시간 측정은, 웹 로그 분석을 통한 네비게이션별 사용자 응답시간 측정의 방식과 동일한 방식으로서, 진행되는 웹 로그 분석을 통한 네비게이션별 사용자 응답시간 측정방식과 다르게 사이트 관리자에 의해 직접 작성된 네비게이션 시나리오를 바탕으로 그 응답시간을 체크함으로써, 차후 사용자들이 해당 사이트를 방문했을 때 느끼는 응답시간 정보를 체크해 낼 수 있으며, 응답속도 저하가 발생되는 네비게이션 또는 페이지를 발견하는 것이다.
더욱이, 상기와 같은 페이지별 사용자 응답시간 측정, 웹 로그 분석을 통한 네비게이션별 사용자 응답시간 측정, 시나리오 기반의 사용자 응답시간 측정은 설정에 따라 1회성 또는 주기적인 측정이 가능하다.
다음, 상기 S50단계와, S60단계는, 제1분석값이 웹 환경문제인가를 판단하고, 웹 환경문제를 개선하는 것으로서, 웹 서버 설정의 환경문제, TCP/OS 커널 파라미터 환경문제, 웹 페이지 자체문제(대용량의 이미지 파일 링크, 많은 수의 Broken 링크 및 큰수의 Total Byte)와 같은 다양한 환경문제가 발생하였는가를 판단하는 것이다.
다음, 상기 S70단계 내지 S90단계는, 웹 환경문제가 아닌 경우에는, 웹페이지와 네이게이션 패턴에 대한 어플리케이션 서버 및 어플리케이션 로직의 성능 저하 원인을 분석하고, 분석한 제2분석값을 생성하는 것으로서, 비즈니스 로직을 구현하기 위해 개발자에 의해 작성된 Java 소스 코드 또는 Java 바이너리 파일을 파싱하여 로직상의 Call Stack과 로직상의 버그 및 성능 저하가 발생되는 지점을 찾는 기능을 수행하며, 로직 Call Stack의 최하단부에는 데이터베이스와 연동되기 위한 SQL이 존재하고, 해당 웹 어플리케이션에서 사용자에게 하나의 컨텐츠를 전달받기까지 수행된 모든 로직과, 로직의 분기 그리고 SQL을 연관지어 웹 페이지 속도 저하의 찾아 분석한다. 그 결과로부터 시퀸스 다이어그램과, 클래스 다이어그램이 생성된다. 또한 상기 소스 및 바이너리 파일 파싱 방식은 운영중인 시스템에 부하를 전혀 주지 않는 상태에서 문제의 원인을 찾아 분석한다.
다음, 상기 S100단계와 S110단계는, 제2분석값이 자바로직 문제인가 판단하고, 비효율적인 로직을 수정하는 것으로서, 자바 로직 문제는 쓰레기 동기화, 부하를 일으키는 로직 호출 등과 같은 비효율적인 로직을 수정하는 것이다.
다음 상기 S120단계는, 자바로직 문제가 아닌 경우에는 성능저하 원인인 데이터베이스 및 SQL을 추출하여 분석하고, 분석한 제3분석값을 생성하는 것으로서, 웹 어플리케이션 성능 저하의 원인으로 밝혀진 SQL에 대한 집중적인 점검이 이루어지고, 해당 SQL에 대한 성능 정보를 분석 및 튜닝하여 최종적으로 웹 어플리케이션의 성능을 향상시키며, 분석방식은 데이터베이스 인스턴스 모니터링과, SQL 부하 모니터링을 통해 이루어지고 DB 전문가에 의해 적절한 방식으로 튜닝될 수 있는 인터페이스를 제공한다.
다음 상기 S130단계는, 제 3분석값을 웹 어플리케이션 튜닝하는 것으로서, 하나의 웹 어플리케이션의 컨텐츠를 사용자에게 전달하기 위해 처리되는 모든 부분 및 그 구성요소를 검토함으로써 보다 명확하고 보다 통합적인 웹 어플리케이션 튜닝을 제공한다.
상기 웹 어플리케이션 튜닝 요소는 웹 서버 부분, 어플리케이션 서버 부분, 데이터베이스 부분으로 구분된다.
상기 웹 서버 부분은, 웹 서버 파라미터 튜닝, TCP/OS 파라미터 튜닝, 웹 어플리케이션 튜닝, 웹 네비게이션별 성능 튜닝이 있으며 특히, 상기 웹 어플리케이션 튜닝은 폐이지 응답시간, HTML Byte 수, 이미지별 Byte 수, Total Byte, URL 링크수, 이미지 링크수, 브로큰 링크수가 있고, 상기 웹 네비게이션별 성능 튜닝은 사용자 억세스 로그 분석 방식의 경우에는, 상기 웹 서버의 엑세스 로그를 분석하여 사용자가 웹 시스템에 로그인 한 후 로그아웃 할 때 까지 거쳐간 모든 페이지를 찾아내어 그 사용자가 해당 사이트에 머물렀던 시간과 사용자가 방문한 페이지별 응답시간을 계산하고 사용자가 느끼는 실제의 응답시간을 알아내고, 시나리오 기반의 방식인 경우에는, 웹 시스템 담당자가 직접 웹 네비게이션을 결정하고 해당 네비게이션을 수행할 때 응답시간을 계산한다.
상기 어플리케이션 서버 부분은, 주로 자바로 구현된 업무 로직을 분석하는 부분으로서, 자바 바이너리 혹은 소스 파일을 분석하고 업무를 처리하기 위한 자바 Call Stack 및 업무의 분기점을 찾아내며, 나아가 해당 로직의 제일 하단에서 실행되는 SQL을 찾아서 해당 SQL이 실행되는 웹 페이지 이름과 연관시켜주는 작용을 수행하며, 또한 로직상의 버그나 속도 저하의 원인이 될만한 부분에 대한 리포팅을 가지고 있고 시퀀스 및 클래스 다이어그램을 생성한다.
상기 데이터베이스 부분은, 인스턴스 성능 정보를 모니터링하고, 실행중인 세션에 대한 모니터링 및 LOCK&Latch 정보를 모니터링하고, Alert 로그 정보를 분석하고 모니터링하며 성능 저하의 원인이 되는 SQL에 대한 모니터링, 리포팅, 튜닝을 한다.
지금까지 본 발명에 대해서 상세히 설명하였으나, 그 과정에서 언급한 실시예는 예시적인 것일 뿐, 한정적인 것이 아님을 분명히 하며, 본 발명은 이하의 특허청구범위에 의해 제공되는 본 발명의 기술적 사상이나 분야를 벗어나지 않는 범위내에서, 균등하게 대처될 수 있는 정도의 구성요소 변경은 본 발명의 범위에 속한다 할 것이다.
이상에서 설명한 바와 같이 본 발명은 웹 사이트를 구성하는 웹 어플리케이션 중에서 성능에 저하가 발생될 소지가 있거나 발생되고 있는 페이지의 성능을 효율적으로 측정하는 효과가 있고, 사용자가 방문한 웹 어플리케이션 출발점에서 중간에 수행도니 로직 시퀀스 및 최종적인 SQL까지의 연결을 한눈에 파악할 수 있는 효과가 있고 종래의 웹 서버 단독, SQL 튜닝의 단점을 보완하여 하나의 웹 페이지의 컨텐츠를 사용자에게 전달하기 위해 처리되는 모든 부분을 검토함으로써 성능을 향상시키는 효과가 있음으로 웹에 사용되는 소프트웨어 산업상 매우 뛰어난 발명인 것이다.
도 1은 종래의 다양한 형태의 객체를 표현한 사이트 예시도
도 2는 종래의 웹 사이트 Tier 블록도
도 3은 본 발명의 바람직한 실시예에 따른 웹 어플리케이션 성능 분석 및 튜닝 방법 흐름도
* 주요 도면부호에 대한 설명 *
1 : 사이트 2 : 링크부
3 : 이미지 4 : HTML 텍스트
5 : 웹 페이지 6 : 클릭버튼
10 : 데이터베이스 Tier 20 : 어플리케이션 Tier
30 : 웹 서버 Tier 100 : 웹 Tier

Claims (6)

  1. 웹 어플리케이션 성능을 측정하고 성능저하 발생 및 발생될 수 있는 웹 페이지와, 네비게이션 팬턴을 분석하고 분석한 제1분석값을 생성하는 제1단계와;
    상기 제1분석값이 웹 환경 문제인가 판단하고 웹 환경문제를 개선하는 제2단계와;
    상기 제2단계의 웹 환경문제가 아닌 경우에 웹페이지와, 네이게이션 패턴에 대한 어플리케이션 서버 및 어플리케이션 로직의 성능 저하 원인을 분석하고, 분석한 제2분석값을 생성하는 제3단계와;
    상기 제2분석값이 자바로직 문제인가를 판단하고, 비효율적인 로직을 수정하는 제4단계와;
    상기 제4단계의 자바로직 문제가 아닌 경우에는, 성능저하 원인인 데이터베이스 및 SQL을 추출하여 분석하고, 분석한 제3분석값을 생성하는 제 5단계와;
    상기 제 3분석값을 웹 어플리케이션 튜닝하는 제6단계로 이루어진 것을 특징으로 하는 웹 어플리케이션 성능 분석 및 튜닝 방법.
  2. 제 1항에 있어서, 상기 웹 페이지와 네비게이션 패턴은 페이지별 사용자 응답시간 측정, 웹 로그 분석을 통한 네이베이션 사용자 응답시간 측정, 시나리오 기반의 사용자 응답시간 측정 중 어느 하나로 측정하는 것을 특징으로 하는 웹 어플리케이션 성능 분석 및 튜닝 방법.
  3. 제 2항에 있어서, 상기 응답시간은 설정에 따라 1회 또는 주기적으로 측정하는 것을 특징으로 하는 웹 어플리케이션 성능 분석 및 튜닝 방법.
  4. 제 1항에 있어서, 상기 웹 어플리케이션 튜닝은 웹 서버, 어플리케이션 서버, 데이터베이스가 동시에 튜닝되는 것을 특징으로 하는 웹 어플리케이션 성능 분석 및 튜닝 방법.
  5. 제 4항에 있어서, 상기 웹 서버는 웹 페이지별 또는 웹 네비게이션별로 튜닝하는 것을 특징으로 하는 어플리케이션 성능 분석 및 튜닝 방법.
  6. 제 1항에 있어서, 상기 자바로직 문제 판단은 Java 소스 코드 도는 Java 바이너리 파일을 파싱한 후, 분석하는 것을 특징으로 하는 어플리케이션 성능 분석 및 튜닝 방법.
KR1020050020765A 2005-03-12 2005-03-12 웹 어플리케이션 성능 분석 및 튜닝 방법 KR100503776B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050020765A KR100503776B1 (ko) 2005-03-12 2005-03-12 웹 어플리케이션 성능 분석 및 튜닝 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050020765A KR100503776B1 (ko) 2005-03-12 2005-03-12 웹 어플리케이션 성능 분석 및 튜닝 방법

Publications (1)

Publication Number Publication Date
KR100503776B1 true KR100503776B1 (ko) 2005-07-26

Family

ID=37303748

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050020765A KR100503776B1 (ko) 2005-03-12 2005-03-12 웹 어플리케이션 성능 분석 및 튜닝 방법

Country Status (1)

Country Link
KR (1) KR100503776B1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160084560A (ko) 2015-01-05 2016-07-14 삼성에스디에스 주식회사 프로그램의 성능 측정 시스템 및 방법
KR20170119477A (ko) 2016-04-19 2017-10-27 삼성에스디에스 주식회사 서비스 모니터링 시스템 및 방법
KR20220015107A (ko) * 2020-07-30 2022-02-08 홍익대학교세종캠퍼스산학협력단 성능 개선을 위해 소프트웨어 소스 코드 변경한 후 이를 시각적으로 가시화하는 방법 및 그 장치
KR20220067324A (ko) * 2020-11-17 2022-05-24 홍익대학교세종캠퍼스산학협력단 전력 개선을 위한 소프트웨어 코드 변경 방법 및 그 장치

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160084560A (ko) 2015-01-05 2016-07-14 삼성에스디에스 주식회사 프로그램의 성능 측정 시스템 및 방법
KR20170119477A (ko) 2016-04-19 2017-10-27 삼성에스디에스 주식회사 서비스 모니터링 시스템 및 방법
KR20220015107A (ko) * 2020-07-30 2022-02-08 홍익대학교세종캠퍼스산학협력단 성능 개선을 위해 소프트웨어 소스 코드 변경한 후 이를 시각적으로 가시화하는 방법 및 그 장치
KR102413994B1 (ko) * 2020-07-30 2022-06-28 홍익대학교세종캠퍼스산학협력단 성능 개선을 위해 소프트웨어 소스 코드 변경한 후 이를 시각적으로 가시화하는 방법 및 그 장치
KR20220067324A (ko) * 2020-11-17 2022-05-24 홍익대학교세종캠퍼스산학협력단 전력 개선을 위한 소프트웨어 코드 변경 방법 및 그 장치
KR102523329B1 (ko) * 2020-11-17 2023-04-19 홍익대학교세종캠퍼스산학협력단 전력 개선을 위해 소프트웨어 소스 코드 변경하고 성능 개선 요소를 시각적으로 가시화하여 표시하는 방법

Similar Documents

Publication Publication Date Title
US10241901B2 (en) Web application performance testing
US9141611B2 (en) Aggregated web analytics request systems and methods
US9606971B2 (en) Rule-based validation of websites
US9118549B2 (en) Systems and methods for context management
US8812434B2 (en) Data structure for efficiently identifying transactions
US8132095B2 (en) Auditing a website with page scanning and rendering techniques
US8196048B2 (en) Associating website clicks with links on a web page
US8365062B2 (en) Auditing a website with page scanning and rendering techniques
US20200372007A1 (en) Trace and span sampling and analysis for instrumented software
CN111046317A (zh) 页面数据采集方法、装置、设备和计算机可读存储介质
CN107515865B (zh) 页面数据点击量统计方法及装置
US10592327B2 (en) Apparatus, system, and method for analyzing logs
US8849981B2 (en) Response time benchmarking
WO2011035944A1 (en) Managing application state information by means of a uniform resource identifier (uri)
US9131002B2 (en) Web application monitoring
US20080091775A1 (en) Method and apparatus for parallel operations on a plurality of network servers
CN112486708B (zh) 页面操作数据的处理方法和处理***
CN112486789A (zh) 一种日志分析***、方法及装置
KR100503776B1 (ko) 웹 어플리케이션 성능 분석 및 튜닝 방법
US20140052851A1 (en) Systems and methods for discovering sources of online content
Koçi et al. A data-driven approach to measure the usability of web apis
CN111680247B (zh) 网页字符串的本地调用方法、装置、设备及存储介质
US9104573B1 (en) Providing relevant diagnostic information using ontology rules
KR102349495B1 (ko) 가상 서버들로부터 대용량 로그 파일들을 프로세싱하는 컴퓨터 시스템 및 방법.
Quinito et al. Technical Review and Analysis on Students Academic Website Projects Using GTmetrix Web Speed and Optimization Tool

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120615

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140408

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee