책/그림으로 공부하는 IT인프라 구조 7

성능 향상을 위한 인프라 구조

시스템 성능 지표 시스템 성능을 가리킬 때 응답과 처리량이라는 지표가 자주 사용된다. 응답 처리 하나당 소요 시간, 응답이 걸리는 시간 처리량 단위 시간당 처리하는 양, 초당 받아들이는 사용자 수 퍼센타일 실제 시스템에서는 단일 사용자 응답만으로는 부족하기 때문에 여러 사용자의 평균값을 이용한다. 이때 통계학에서 사용되는 퍼센타일 개념을 이용한다. 극단적으로 응답 시간이 긴 사용자는 다른 문제를 내포하고 있을 수 있기 때문에 오차라고 생각하고 평균값에 포함하지 않는다. 병목 현상 처리량을 제한하고 있는 요인 병목 지점 병목 현상이 발생하는 위치 어떻게 해결하는가? 각 서버의 처리량이나 응답 상황 로그를 취득해서 어느 서버가 병목 지점이 되고 있는지 찾아내는 것부터 시작해야 한다. 이러한 이유로 APM을 ..

무정지를 위한 인프라 구조(2)

AP 서버 이중화 세션정보 이중화 기능을 사용해서 이중화 가능 *** 세션이란 일정 시간동안 같은 사용자(정확하게 브라우저를 말한다)로 부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술 *** 쿠키와 세션의 차이점 쿠키 - 방문자의 정보를 방문자 컴퓨터의 메모리에 저장 세션 - 웹 서버가 세션 아이디 파일을 만들어 서비스가 돌아가고 있는 서버에 저장 오라클 웹로직 서버 세션 이중화가 안되어있다면 load balancer에서 쿠키가 있는지 확인해서 해당 서버로 보냄 → 특정서버에만 트래픽 집중됨, 서버 하나가 고장나면 재로그인이 필요 세션 정보를 작성해서 클러스터 내 다른 서버에 복제 → 장애가 나더라도 서버1에 있는 세션이 서버2에도 있어서 유지 가능 주의점 세션 정보를..

무정지를 위한 인프라 구조(1)

안정성 (고가용성) 시스템 서비스가 가능한 한 멈추지 않도록 하는 것 안정성 및 고가용성의 목표와 실현 수단 목표 실현 수단 고장 장애가 발생하지 않을 것 (MTBF, 평균 장애 지속 시간) 고장, 장애가 발생해도 복구할 수 있을 것 ———————> 컴포넌트 이중화 (MTTR, 평균 복수 시간) 고장, 장애가 발생한 것을 검출할 수 있을 것 ———————> 컴포넌트 감시 고장, 장애가 발생해도 데이터가 보호될 것 ———————> 데이터 백업 위와 같이 상용 웹 시스템에서는 미들웨어 기능이나 구조로 이중화, 감시, 백업의 세가지 수단을 구현해서 안정성 및 고가용성의 목표를 실현하고 있다. 이중화 하나의 기능을 병렬로 여러 개 나열해서 하나에 장애가 발생해도 다른 것을 이용해서 서비스를 계속할 수 있는 것 ..

시스템을 연결하는 네트워크 구조

네트워크 서로 다른 장비 간에 데이터를 교환할 때 기본적으로 네트워크를 경유해서 데이터 송수신 네트워크는 계층 간 역할이 나누어져 있다. 상호 연결되어 있는 계층들에서는 인터페이스로 통신 장점: 서로 영향을 주지 않고 독립적으로 동작, 상호 간에 내부 처리를 은폐하고 있기 때문에 인터페이스만 바꾸지 않으면 내부적인 처리를 마음대로 바꾸어도 됨. 단점: 오버헤드가 발생하여 성능이 떨어질 수 있음 OSI 7계층 P → D → N → T → S → P → A 프로토콜 컴퓨터가 서로 소통하기 위해 정한 규약 같은 계층 간의 약속 브라우저로 웹 페이지를 볼 때 HTTP라고 불리는 프로토콜을 이용해서 서버에 웹 페이지를 달라고 요청 TCP/IP 프로토콜 스위트 - 프로토콜 집합 인터넷의 발전과 TCP/IP 인터넷의..

인프라를 지탱하는 기본 이론 - 직렬과 병렬, 동기와 비동기

직렬과 병렬 병렬화 분담할 수 있는 처리는 cpu코어를 늘리면 빨라짐 처리시간을 1/N으로 감소 하지만 무조건 좋은건 아님 → 효과가 있을 때 병렬화 한다. 직렬화 분담할 수 없는 처리는 cpu코어를 늘려도 빨라지지 않음 처리시간 변화가 없음 쿨럭 주파수를 올리면 속도 향상 하지만 하드웨어를 어느정도 좋게 할 수 있지만 무한히 늘릴수는 없음( 하드웨어적 한계) 이것이 어디에 사용되나? 웹 서버와 AP서버에서 웹서버(아파치) - 복수의 프로세스가 분담해서 처리 AP서버 - 하나의 프로세스와 복수의 쓰레드로 처리 하지만 만약 CPU코어가 하나만 있다면 1개의 프로세스만 수행 가능 아파치 프로세스를 아무리 늘릴려고 해도 1개씩밖에 수행 못함 → CPU코어수도 고려해야한다 DB서버에서 클라이언트 요청 접수 수만..

3계층형 시스템

프로세스와 쓰레드 프로세스 하나의 프로세스가 동작하고 있으면 내부에서는 메모리 공간을 점유하는 쓰레드 하나가 동작 쓰레드 메모리 공간을 공유 이부분은 좀 더 알아보겠습니다. 실행 단위 : CPU CORE에서 실행하는 하나의 단위로 프로세스와 스레드를 포괄하는 개념 동시성 : 한 순간에 여러가지 일이 아니라, 짧은 전환으로 여러가지 일을 동시에 처리하는 것처럼 보이는 것 한 프로세스가 실행 되기 위해서 CPU를 점유하고 있으면 다른 프로세스는 실행상태에 있을 수 없습니다. 즉 어떤 A, B 프로그램이 있을 때 A를 실행하고 있을 때 B를 실행할 수가 없습니다. 이렇게 다수의 프로세스를 동시에 실행하기 위해 여러개의 프로세스를 짧은 텀(시분할)을 반복하면서 전환해서 실행한다. 이것을 Context Switc..

인프라 아키텍처!!

그림으로 공부하는 IT인프라 구조 1장과2장을 정리한 내용입니다. 시스템에 따라 중요한 사항을 찾아서 최적의 설계가 목표 집약형과 분할형 집약형 하나의 대형 컴퓨터로 모든 업무를 다함 장점 구성이 간단 주요 부품은 모두 다중화 → 하나가 고장 나더라도 업무를 계속 할 수 있다. 복수의 서로 다른 업무 처리를 동시에 실행 가능하도록 유한 리소스 관리 단점 대형 컴퓨터의 도입 비용과 유지 비용이 비쌈 확장성에 한계가 있음 분할형 여러 컴퓨터로 하나의 시스템 구축 장점 낮은 비용으로 시스템 구축 가능 서버 대수를 늘릴 수 있어서 확장성이 높다 단점 대수가 늘어나면 관리 구조가 복잡 한 대가 망가지면 영향 범위를 최소화하기 위한 구조를 검토 서버 특정 역할에 특화된 것 논리서버 - 웹 서버, db 서버 같은 소..