IT모아

실무로 배우는 시스템 성능 최적화 - 웹,네트워크 본문

My-Book(History)

실무로 배우는 시스템 성능 최적화 - 웹,네트워크

아롱사태남 2017.02.11 22:20

- DR : IDC 장애시 유일한 장애 복구 솔루션



- 웹 시스템에서 동시 사용자 수가 많다는 것은 대부분 요청이 큐잉되고 있다는 얘기일 수도 있다.


- 동시 사용자 수가 많으면 그만큼 세션 수가 비례하는데 이것보다는 요청하는 수 또는 네트워크 연결 수가 성능에 큰 영향을 준다.


# 기초 성능이론

- 서비스 요청 간격 = 응답시간 + 생각시간

- 동시 사용자 수 = 요청 사용자 수 + 비요청 사용자 수


# 성능 분석시 사용하는 기초 공식 : 서비스 처리 건수 / 측정 시간(초)


- 라운드 로빈 : 프로세스 하나 끝날 때까지 CPU를 가지고 있는게 아니라, 할당된 시간 만큼 돌아가며 처리하는 방식

  (우선 순위가 낮은 프로세스도 공평하게 실행됨_


- MAP 태그를 이용하여 HTTP 요청을 줄여라

  ● 장점 : HTTP 오버헤드를 줄일 수 있음

  ● 단점 : 1. 맵의 영역 좌표를 수동으로 작성 필요 2. 네모가 아닌 다른 모양을 만드는건 거의 불가능 

   3. DHML로 이미지 맵을 만들면 IE에서는 동작하지 않음


- CDN 서버 : 접속자가 인터넷 상에서 가장 가까운 곳의 서버로 컨텐츠를 전송받아 트래픽이 특정 서버에 집중되지 않고 각 서버로 분산되도록 하는 기술


- AJAX로 성능 개선 시키기 : 화면이 탭으로 구선된 경우 보여지는 부분만 먼저 처리하고 나머지 탭은 사용자가 사용하는 시점에 서버 에서 내용이 처리되도록 하면 화면 초기화 시간을 개선할 수 있다. 물론 텝을 선택했을때 다소 느린 측면은 있지만 응답시간에 좀더 민감하고 많은 내용을 다운로드하는 초기화면의 응답시간을 개선할 수 있다.


기타 성능 개선 

1. HTTP 요청을 기본적으로 1패킷을 넘지 않게 한다.

2. 정적 컨텐츠를 쿠키가 없는 별도 도메인에서 서비스 하고 URL도 필요 이상으로 길게 만들지 않는다.

3. 이미지를 내려받기 전에 화면 렌더링이 시작될 수 있는데 이때 이미지 파일을 실제로 받은 후 이미지 크기로 인해 다시 화면이

그려져야하는 경우가 있다 이를 방지하기 위해 이미지 파일의 가로, 세로 크기를 명시적으로 지정한다.


- HTTPS

1. SSL : TCP/IP 기반 통신에 적용되어 세션 계층에서 전송 계층 종단간에 보안과 데이터 무결성을 확보해준다.

2. TLS :

가) 알고리즘을 서로교환

나) 키 교환,인증

다) 대칭키 암호로 암호화하고 메시지 인증


파일지시자  : 파일에 접근할때 사용하는 추상키 역할을 하는 C의 정수형(int) 데이터다.

각 프로세스는 오픈된 파일을 관리하기 위해 자체적인 파일 지시자 테이블을 관리하고 있으며 파일 입출력을 발생시킬때 커널 시스템 

콜이 발생했을떄 파일 지시자 값을 넘겨서 작업을 수행한다.



커널

시스템에 존재하는 자원을 효율적으로 관리하는 자원 관리자 이다.



순차 검색 제거 : 데이터 목록에서 특정 데이터를 찾아내거나 존재여부를 파악할때 LIST 사이즈 만큼 반복문을 돌려

값을 비교하는 것보다 HashSet의 contains()을 사용하는게 성능상 좋다.


SQL 바인드 변수 처리 : 바인드 변수 처리 하지 않고 SQL내에 직접 값을 넣어 수행하면

DB가 인식하는 SQL의 종류가 급격히 증가한다. 그로 인해 JDBC의 Statement 캐시를 사용하는 효과가 사라지고 

DB 서버내 SQL 하드 파싱 빈도가 급격히 증가하고 공유풀에 결합이 발생함으로써 성능저하를 가져온다.



 

 

 

 네트워크

 

L3 스위치

: 네트워크에서 사용하는 목적지 주소인 IP에 대한 스위칭이 가능하다.

 

 

 

L4 스위치

: TCP 프로토콜의 목적지 주소인 포트 번호를 기반으로 스위칭이 이루어진다.

 

 

인터넷 프로토콜(IP) 

: 송신 호스트와 수신 호스트가 패킷 스위칭 네트워크에서 정보를 주고받을때 사용하는 네트워크 계층 프로토콜이다.

 

 

IP 특성

가) 패킷이 목적지에 정확히 도착한다는 것을 보장하지 않는다는 것이다.

나) 수신측에서 송신측이 보내는 데이터의 순서가 맞는지 확인 할 수 있는 방벅이 없다.

 

 

 

- A클래스

: 1,600만대 이상의 호스트를 연결 할 수 있게 해준다.

 

 

- C클래스

: 256개의 호스트를 연결할 수 이쓴ㄴ데 실제로는 해당 수치에서 2를 빼야 한다. 호스트 주소 부분에서 모든 비트가 0이면 네트워크

주소이고, 모든 비트가 1이면 브로드 캐스팅 주소를 의미하므로 실제 호스트에 ip 주소를 할당할 수 없다.

 

 

- D클래스

: 멀티캐스트 용도

 

 

- E클래스

: 미래를 위해 예약해 놓은 주소대역

 

 

- 서브넷 마스크

1. IP 프로토콜에서 로컬 네트워크인지 원격 네트워크인지 구분하기 위해 사용한다.

2. 네트워크 주소 부분의 모든 비트가 1로 설정되어 주어진 IP주소와 AND 연산을 통해 로컬 네트워크 주소와 동일한

   네트워크 주소가 나오면 로컬 네트워크로 간주한다.

3. 하나의 네트워크 그룹을 여러개의 서브 네트워크 그룹으로 나눠서 사용할때도 이용한다.

 

 

- 게이트 웨이

1. 호스트가 위치한 네트워크에서 다른 네트워크로 가기 위해서는 반드시 거쳐야 하는 관문 역할을 하는 장비다.

2. 프로토콜이 다른 네트워크간에 적절히 프로토콜을 변환하는 역할을 수행한다.

 

 

- RTT

: 1개의 패킷이 상대 호스트까지 갔다오는데 소요된 시간으로 네트워크 지연에 해당한다.

 

 

- 라우팅 테이블

: 호스트에서 네트워크 주소에 따라 어떤 NIC 또는 게이트웨이를 경유할지 관리하는 정보를 의미한다.

 

 

- TCP

: 데이터 누락을 방지하고 전송 순서를 보장하는 연결지향형 프로토콜이다.

 

 

- 연결지향형

: 두 호스트가 신호를 통해 서로 상태를 확인하고 연결을 수행하고, 연결종료시에도 동일하게 수행한다)

 

 

 

- UDP

: 데이터를 전송하기 전에 SYN 플래그로 이뤄지는 연결 단계가 필요없다. 그리고 상대방이 UDP 패킷을 받았는지 확인할 수도 없고

송신 순서대로 수신 순서가 지켜지지도 않는다. 그래서 UDP는 중요도가 낮은 단문 형태의 데이터를 상대방에게 일방적으로 보낼때

사용하는 프로토콜이다. TCP에 비해 안전성은 떨어지지만 속도는 빠르고 오버헤드가 적다.

 

 


0 Comments
댓글쓰기 폼