티스토리 뷰

조사

서버 & 웹 용어 정리

덕쑤 2014. 10. 14. 20:58

Web Application Framework
Dynamic한 Website, Web application, Web sevice등을 구현하기 위한 Software Framework  

Spring
스프링은 웹 프로그래밍 개발 시 거의 표준적인 방식인 Spring MVC라 불리는 모델-뷰-컨트롤러 패턴을 상용한다. DispatcherServlet이 Controller 역항을 담당하여 각종 요청을 적절한 서비스에 분산시켜주며 이를 각 서비스들이 처리를 하여 결과를 생성하고 그 결과는 당양한 형식의 View 서비스들로 화면에 표시 될 수 있다.

MVC
모델-뷰- 컨트롤러는 소프트웨어 공학에서 사용되는 아키텍처 패턴이다. 이 패턴을 성공적으로 사용하면, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다. MVC에서 모델은 애플리케이션의 정보를 나타내며, 뷰는 텍스트, 체크박스 항목등과 같은 사용자 인터페이스 요소를 나타내고, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.
http://exploit_code.blog.me/220136918515

OpenStack & Cloud


클라우드: 인터넷연결이 가능한 디바이스를 통해 클라우드라고 불리는 제 3의 공간에서 데이터를 읽고 쓰고 정보를 분석하고 처리하여, 저장하고 관리하는 컴퓨팅 시스템을 말한다.
클라우드가 제공하는 서비스의 단계 IaaS >> PaaS >> SaaS
클라우드의 서비스 범위 Public >> Private >> Hybrid

컴퓨트 서비스: 사용자가 원하는 운영체제가 탑재되어 있는 컴퓨터 혹은 서버를 인터넷상에서 접근하여 사용할 수 있도록하는 서비스
스토리지 서비스 : 사용자들이 가지고 있는 데이터와 파일을 인터넷상에 존재하는 스토리지에 저장, 삭제, 공유 등을 할 수 있도록 제공해 주는 서비스
하이퍼바이저 : bare-metal >> Xen, KVM  Hosted >> Vmware
블록 스토리지 : 인스턴트에 추가하는 하드디스크를 말한다.
오브젝트 스토리지 : 블록 스토리지와 달리 단독 사용할수 있는 저장 단위 (스토리지 서비스)
OpenStack은 Cinder Swift 를 가지고 있다. Cinder는 블록 스토리지를 말하며 Swift는 오브젝트 스토리즈를 말한다.

오픈스택(OpenStack)
은 2010년 7월 NASA와 Rackspace가 손을 잡고 시작한 오픈 소스 프로젝트로써, 컴퓨트 서비스인 Nova, 오브젝트 스토리지 서비스인 Swift, 이미지 서비스인 Glance로 구성이 되어 있으며, 이 외에도 네트워크를 담당하는 Quantum, 인증을 담당하는 Keystone, 블록 스토리지 서비스인 Cinder, 웹UI인 Horizon이 있습니다. 오픈스택에서 지원하는 하이퍼바이저의 종류로는 KVM, XEN, QEMU, LXC, VMware ESX/ESXi, PowerVM, Hyper-V 등이 있습니다.
개발 과정 http://naleejang.tistory.com/100

http://naleejang.tistory.com/88

Trouble Shooting
문제가 생겼을 때 해결하는 것이다. [ 문제 해결 ]
문제정의 >> 원인격리 >> 수리 >> 결과확인 >> 문서화
IT업계의 용어로 시스템에서 발생하는 복잡한 문제들을 종합적으로 진단해 처리한다는 뜻이다.

WAS
Web Application Sever

GC 튜닝
GC : Garbage Collection 전산학에서 말하는 남은 메모리 수집기능으로 보통 가비지 컬렉션이라 불린다.
쓰레기 수집은 메모리 관리 기법 중의 하나로, 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해체하는 기능이다.
Memory leak : 메모리 누수 현상은 컴퓨터 프로그램이 필요하지 않은 메모리를 계속 점유하고 있는 현상이다. 할당된 메모리를 사용한 다음 반환하지 않는 것이 누적되면 메모리가 낭비된다.

모든 자바 애플리케이션은 JVM위에서 동작한다.
이 JVM이 동작하는데 있어서, 메모리의 구조와 특히 GC는 애플리케이션의 응답시간과 성능에 밀접한 관계를 미친다.

GC는 Garbage Collection의 약자로 Java 언어의 중요한 특징중의 하나이다.
GC는 Java Application에서 사용하지 않는 메모리를 자동으로 수거하는 기능을 말한다.
예전의 전통적인 언어 C등의 경우 malloc, free등을 이용해서 메모리를 할당하고, 일일이 그 메모리를 수거해줘야했다. 그러나 Java 언어에서는 GC 기술을 사용함에 따라서 개발자로 하여금 메모리 관리에서 부터 좀더 자유롭게 해주었다.
GC의 동작 방법을 이해하기 위해서는 Java의 메모리 구조를 먼저 이해할 필요가 있다.
일반적으로 Application에서 사용되는 객체는 오래 유지 되는 객체보다, 생성되고 얼마안있어서 사용되지 않는 경우가 많다.
그래서 Java에서는 크게 두가지 영역으로 메모리를 나누는데 Young 영역과 Old 영역이 그것이다.
Young 영역은 생긴지 얼마 안된 객체들을 저장하는 장소이고, Old영역은 생성된지 오래된 객체를 저장하는 장소이다. 각 영역의 성격이 다른 만큼 GC의 방법도 다르다.
먼저 Java의 메모리 구조를 살펴보자.
Java의 메모리 영역은 앞에서 이야기한 두 영역 (Young 영역,Old 영역)과 Perm 영역 이렇게 3가지로 영역으로 구성된다.

GC 알고리즘
그러면 이 메모리 영역을 JVM이 어떻게 관리하는지에 대해서 알아보자.
JVM은 New/Young 영역과, Old영역 이 두영역에 대해서만 GC를 수행한다. Perm영역은 앞에서 설명했듯이 Code가 올라가는 부분이기 때문에, GC가 일어날 필요가 없다. Perm영역은 Code가 모두 Load되고 나면 거의 일정한 수치를 유지한다.

- Minor GC
먼저 New/Young영역의 GC방법을 살펴보자 New/Young 영역의 GC를 Minor GC라고 부르는데, New/Young영역은 Eden과 Survivor라는 두가지 영역으로 또 나뉘어 진다. Eden영역은 Java 객체가 생성되자 마자 저장이 되는곳이다. 이렇게 생성된 객체는 Minor GC가 발생할때 Survivor 영역으로 이동된다.

Survivor 영역은 Survivor 1과 Suvivor2 영역 두 영역으로 나뉘어 지는데, Minor GC가 발생하면 Eden과 Survivor1에 Alive되어 있는 객체를 Suvivor2로 복사한다. 그리고 Alive되어 있지 않는 객체는 자연히 Suvivor1에 남아있게 되고, Survivor1과 Eden영역을 Clear한다. (결과적으로 Alive된 객체만 Survivor2로 이동한것이다.)
다음번 Minor GC가 발생하면 같은 원리로 Eden과 Survivor2영역에서 Alive되어 있는 객체를 Survivor1에 복사한다. 계속 이런 방법을 반복적으로 수행하면서 Minor GC를 수행한다.

이렇게 Minor GC를 수행하다가, Survivor영역에서 오래된 객체는 Old영역으로 옮기게 된다.

이런 방식의 GC 알고리즘을 Copy & Scavenge라고 한다. 이 방법은 매우 속도가 빠르며 작은 크기의 메모리를 Collecting하는데 매우 효과적이다. Minor GC의 경우에는 자주 일어나기 때문에, GC에 소요되는 시간이 짧은 알고리즘이 적합하다.

- Full GC
Old 영역의 Garbage Collection을 Full GC라고 부르며, Full GC에 사용되는 알고리즘은 Mark & Compact라는 알고리즘을 이용한다. Mark & Compact 알고리즘은 전체 객체들의 reference를 쭉 따라가다면서 reference가 연결되지 않는 객체를 Mark한다. 이 작업이 끝나면 사용되지 않는 객체를 모두 Mark가 되고, 이 mark된 객체를 삭제한다.
Full GC는 매우 속도가 느리며, Full GC가 일어나는 도중에는 순간적으로 Java Application이 멈춰 버리기 때문에, Full GC가 일어나는 정도와 Full GC에 소요되는 시간은 Application의 성능과 안정성에 아주 큰 영향을 준다.

GC가 왜 중요한가?
Garbage Collection중에서 Minor GC의 경우 보통 0.5초 이내에 끝나기 때문에 큰문제가 되지 않는다. 그러나 Full GC의 경우 보통 수초가 소요가 되고, Full GC동안에는 Java Application이 멈춰버리기 때문에 문제가 될 수 있다.
예를 들어 게임 서버와 같은 Real Time Server를 구현을 했을때, Full GC가 일어나서 5초동안 시스템이 멈춘다고 생각해보자.
또 일반 WAS에서도 5~10초동안 멈추면, 멈추는동안의 사용자의 Request가 Queue에 저장되었다가 Full GC가 끝난후에 그 요청이 한꺼번에 들어오게 되면 과부하에 의한 여러 장애를 만들 수 있다..
그래서 원할한 서비스를 위해서는 GC를 어떻게 일어나게 하느냐가 시스템의 안정성과 성능에 큰 변수로 작용할 수 있다.

정리하자면 GC 튜닝은 Application의 구조나 성격 그리고, 사용자의 이용 Pattern에 따라서 크게 좌우 되기때문에, 얼마만큼의 Parameter를 많이 아느냐 보다는 얼마만큼의 테스트와 로그를 통해서 목표 값에 접근하느냐가 가장 중요하다 

http://blog.naver.com/bigdra?Redirect=Log&logNo=140002602592


1. Java Garbage Collection : http://helloworld.naver.com/helloworld/helloworld/1329
2. 
Garbage Collection 모니터링 방법 : http://helloworld.naver.com/helloworld/helloworld/6043
3. Garbage Collection 튜닝 : 
http://helloworld.naver.com/helloworld/37111



APM : 애플리케이션 성능 관리
JVM : 자바가상머신 자바바이트코드를 실행할 수 있는 주체이다. 일반적으로 인터프리터나 JIT 컴파일 방식으로 다른 ㅓㅁ퓨터 위에서 바이트코드를 실행할 수 있도록 구현되나 자바 프로세서 처럼 하드우에ㅓ와 소프트웨어를 혼합해 구현하는 경우도 있다.

네이버 클라우드 시스템 아키텍처 상황
http://helloworld.naver.com/helloworld/915127

Das : 직접연결 스토리지

Nas : 네트워크 결함 스토리지. 쉽게 말하면 LAN으로 연결하는 외장 하드디스크
컴퓨터에 직접 연결하지 않고 네트워크를 통해 데이터를 주고 받는 저장장치이다. 현대의 클라우드 스토리지와 비슷한 부분이 많다. 스토리지 서버의 구조를 단순화하고 소형화한 것이라고 해도 좋을 정도로 원리와 용도가 비슷하다.
http://mirror.enha.kr/wiki/NAS%28%EC%A0%80%EC%9E%A5%EC%9E%A5%EC%B9%98%29

San : storage area network 서로 다른 종류의 데이터 저장장치를 한 데이터 서버에 연결하여, 총괄적으로 관리해주는 네트워크를 말한다.

광저장장치영역네트워크로 번역되고 스토리지 에어리어 네트워크라고도 한다. 특수 목적용 고속 네트워크로서, 대규모 네트워크 사용자들을 위하여 서로 다른 종류의 데이터 저장장치를 관련 데이터 서버와 한계 연결해 별도의 네트워크를 구성해 저장 데이터를 관리한다.

DFS 분산 파일 시스템 ( Distributed File Systems )
분산 시스템에서 물리적으로 여러 사이트들간에 퍼져 있는 파일들에 대해 동일한 방식의 파일 공유를 지원하는 것

HA failover
Host가 고장 났을 때 그 호스트가 운영중인 Vm이 다른 Host로 자동으로 넘어가는것
FT : VM이 죽었을 때 준비중인 slave VM이 자동으로 살아나서 서비스라는 것 ( 동일 IP )
DRS는 HA중인 Host들의 부하를 적절하게 분산시켜주는것

OwFS : 대규모 인터넷 서비스를 위한 분산 파일 시스템
http://www.dbpia.co.kr/Journal/ArticleDetail/1028886

XFS : XFS는 확장, 성능이 모두 높은 파일 시스템으로서, 거대한 파일 시스템 (최대 16 엑사 바이트), 파일 그룹(8 엑사 바이트), 디렉토리 구조(수천만 엔트리 수)등에 대응하기 위해 작성되었다.
크래쉬이루 빠른 복구를 용이하게 하는 메타 데이터 저널링을 지원한다 또한 XFS 파일 시스템을 마운트하여 활성 상태 조작 모음 및 확장도 가능하다.

저널링 : 저널링 파일 시스템은 주 파일 시스템에 변경사항을 반영하기 전에, 저널 안에 생성되는 변경사항을 추적하는 파일 시스템이다. 시스템 크래시나 전원 문제가 발생하면, 이러한 파일 시스템은 더 빠르게 온라인 상태로 돌아오며 손상될 가능성이 낮다.

RPC : 원격 프로시져 호출은 컴퓨터 프로그램이 다른 주소공간에서 원격 제어를 위한 프로그래머의 세세한 코딩 없이 함수나 프로시저의 실행을 허용하는 기술이다. 다시 말해, 프로그래머는 함수가 실행 프로그램에 로컬 위치에 있든 원격 위치에 있든 간에 반드기 동일한 코드를 짜게 된다. ( remote procedure call ) 

정부와 대기업은 자체 전산 설비를 운영하기 위해 별도의 데이터 센터를 운영할 수 있으나, 규모가 작은 공공기관과 중소기업들은 독자적인 데이터 센터를 운영하기 어렵다. 이러한 기업들을 위해 데이터 센터의 일정 공간과 회선을 임대해 주는 서비스가 생겨났는데, 이를 코로케이션(colocation) 서비스라고 한다. 코로케이션 서비스를 이용하기 위해서는 서비스 제공자에게 공간 사용료인 상면비와 인터넷 회선 사용료인 회선비를 지불해야 한다. 전력 사용비는 대체로 상면비에 포함하지만, 전력 사용량이 많은 경우 별도로 과금하기도 한다.

nBase
nBase-ARC는 네이버에서 사용하는 일련의 분산 저장 플랫폼 중에 하나입니다. 2013년 7월 사내에 배포된 이후 밴드, 카페, 게임 등의 서비스에 폭넓게 사용되고 있습니다. Redis의 장점을 그대로 가져가며, 대규모 서비스 운용에 필요한 고가용성, 확장성 요구사항을 구현했습니다.

Redis : 인 메모리 데이터베이스
http://helloworld.naver.com/helloworld/614607

 

서버 성능 평가
BMT
BMT란 Benchmark Test 또는 Benchmarking Test의 약자로서 벤치마크 테스트, 벤치마킹 테스트, 벤치마크 시험, 벤치마킹 시험 등이라고 부른다. BMT는 일반적인 성능 테스트와는 달리 실존하는 비교 대상을 두고 하드웨어 소프트웨어의 성능을 비교 분석하여 평가하는 것을 말한다. 예를 들어 다양한  서버 컴퓨터 기종간의 처리 속도를 테스트하기 위해 실제 서버를 이용하여 성능을 측정하고 테스트 결과를 바탕으로 평가를 내리는 것을 벤치마킹 테스트라고 말한다.

tpmC
TPC(Transaction Processing Performance Council, http:www.tpc.org)에서 TPC-C 벤치마크 시나리오에 대한 1분당 최대처리건수를 나타내는 수치로써, DB기반 OLTP 미들웨어 시스템 서비스를 위한 H/W의 성능을 측정하는 대표적인 방법입니다. 그러나, 최근 들어 각 벤더들은 tpmC수치를 제시하지 않는 추세이며, 각자 고유한 수치의 성능자료를 제시합니다.
tmp는 각 벤더에서 배부적으로 추정한값이다. C가 붙으면 TPC에서 공인하는 결과 값이라는 뜻이다.

리눅스 서버 BMT 결과 공표
https://www.linux.co.kr/home/lecture/?leccode=10370

JMX(Java Management eXtension) 정의
자바 가상 머신을 감시, 관리할 수 있는 API JMX Remote AP에서는 리모트 기능이 JMX Specification에 추가되어 있어 어플리케이션, 시스템 및 네트어크를 리모트로 감시 및 관리 할 수 있다.

OLTP 온라인 트랜잭션 처리는 트랜잭션 지향 애플리케이션을 손쉽게 관리할 수 있도록 도와주는 정보 시스템의 한 겨열로서, 일반적으로 데이터 기입 및 대랜잭션 처리를 위해 존재한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함