Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- network
- 이처럼사소한것들
- opencv를이용한이미지자르기
- 통합보안솔루션
- 이미지크롤링
- JBLY
- anti-virus
- mdr
- ips/ids
- 파이썬
- 정보보안
- 클레어키건
- 웹스크래핑
- Soar
- dhcp
- SSLVPN
- 롯데모의면접
- XDR
- 롯데인재개발원
- 크롤링
- 보안솔루션
- 보안
- EDR
- 네트워크
- 롯데그룹모의면접
- rayframework
- CBI면접
- 방화벽
- 네트워크보안
- 보안관제
Archives
- Today
- Total
아리아 날다
3장. 3계층형 시스템을 살펴보자 본문
프로세스와 스레드
- 프로세스: 운영체제로부터 자원을 할당받은 작업의 단위
- 스레드: 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위
- 프로세스와 스레드가 활동하려면 메모리 공간이 필요하고 이것은 커널에 의해 메모리상에 확보
- 프로세스 시작 시에 어떤 일이 발생할까?
- OS상에서 프로세스가 시작돼서 사용자 요청을 받을 수 있게 됨
- 시작 의뢰가 있으면 커널이 프로세스를 작성
- 요청 분량만큼만 메모리 공간을 할당
- 프로그램은 서버 내부의 디스크 상에 설치
- 프로세스와 스레드의 메모리 공간 차이
- 메모리 공간을 가지는 것이 ‘프로세스’. JVM도 프로세스로 내부에서 수많은 스레드가 동작
- 하나의 프로세스가 동작하고 있으면 내부에서는 메모리 공간을 점유하는 스레드 하나가 동작
- 각 스레드는 메모리 공간을 공유
- 프로세스는 전용 메모리 공간을 이용해서 동작, 스레드는 다른 스레드와 메모리 공간을 공유함
프로세스 스레드
장점 | 개별 처리 독립성이 높다 | 생성시 부하가 낮다 |
단점 | 생성 시 CPU 부하가 높다 | 메모리 공간을 공유하기 때문에 의도하지 않는 데이터 읽기/쓰기가 발생할 수 있다 |
- 공유 메모리형 DBMS의 메모리 관리
- 오라클 DB에서는 각 프로세스별 메모리 공간(PGA)과 프로세스 전체가 공유하는 메모리 공간(SGA)이 나누어져 있다.
- 공유 메모리(SGA)에는 디스크상의 데이터 캐시나 실행 완료된 SQL 캐시, 테이블, 인덱스 등이 저장된다.
- 프로세스별 메모리(PGA)에는 해당 프로세스 SQL이 이용하는 소트 영역이나 테이블 결합에 사용하는 메모리 영역이 저장돼 있다. 이영역은 다른 프로세스가 접근할 수 없다. 이 메모리가 부족하면 공유 메모리를 아무리 크게 잡아도 효과를 볼 수 없다.
OS커널
- 커널의 역할(OS 처리는 원칙적으로는 커널을 통해 이루어짐)
- 시스템 콜 인터페이스
- 프로세스나 스레드로부터 명령을 받는 인터페이스(연결되어 있음)
- 시스템 콜이라고 하는 명령이 인터페이스를 통해서 전달(은행이나 구청의 접수 창구와 같은 역할)
- 디스크상의 데이터를 읽고 싶거나 네트워크 통신을 하고 싶을 때, 새로운 프로세스를 생성하고 싶은 경우 호출
- 프로세스 관리
- 가동되고 있는 프로세스 관리와 CPU 이용 우선순위 등을 스케줄링함
- 언제, 어떤 프로세스가 어느 정도의 CPU 코어를 이용할 수 있는지, 처리 우선순위를 어떻게 결정할 것인지 등을 관리
- 메모리 관리
- 서버상의 메모리를 단위크기의 블록으로 분할해서 프로세스에 할당(물리 메모리 공간의 최대치를 고려)
- 프로세스가 이용하는 독립 메모리 공간을 확보하거나 상호 간의 참조 영역을 지키기 위해 독립성을 관리
- 네트워크 스택
- 네트워크 관리
- 파일 시스템 관리
- 파일 시스템용 인터페이스 제공(물리 디스크에 제공된 데이터 관리)
- 주요 기능: 디렉터리(폴더) 구조 제공, 액세스 관리, 고속화, 안정성 향상 등
- 장치 드라이버
- 디스크, NIC, HBA 등의 물리 장치용 인터페이스 제공(각 장치 제조사가 OS에 대응하는 장치 드라이버를 제공해서 해당 OS의 표준 장치로서 커널을 경유해 이용할 수 있게 함)
- 시스템 콜 인터페이스
3.3 웹데이터 흐름
- 클라이언트 PC로부터 웹 서버까지의 데이터 흐름
- 웹 브라우저가 특정 인터넷 사이트에 요청을 보낸다.
- 해당 사이트가 어디에 있는지 이름을 해석한 후 이 결과를 가지고 해당하는 웹 서버에 요청을 보낸다
- 웹 서버의 httpd 프로세스가 요청을 접수한다
- httpd가 받은 요청 내용을 분석해서 정적인 내용인지 동적인 내용인지를 판단한다
- 필요한 경로로 데이터에 액세스한다
- 동적인 정보는 네트워크를 경유해서 다른 서버에 요청을 보낸다
- 정적인 정보는 디스크로부터 읽는다
- 클라이언트 PC에서 웹 브라우저 실행
- PC 내부도 서버와 거의 같은 구조
- 웹 브라우저도 OS의 프로세스로 실행
- 프로그램은 원래 디즈스크에 저장돼 있다. 이것을 읽어서 메모리에 상주시키고 실행하는 것은 OS다
- 웹 브라우저 화면에서 링크를 컬릭하면 웹 서버로 요청을 보낸다
- 이것도 OS의 시스템콜로 실행되고, 커널을 통해 NIC에 네트워크 통신이 요청된다
- 네트워크 경유로 웹 서버에 질의한다
- 웹 서버부터 AP 서버까지(동적 콘텐츠에 대한 요청 처리-AP서버)
- 웹 서버로부터 요청은 NIC를 경유해서 커널에 의해 끼어들기 처리한다
- 스레드가 요청을 받으면 자신이 계산할 수 있는지, 아니면 DB 접속이 필요한지를 판단한다
- 동적 데이터를 가져오기 위해 연결 풀을 이용하여 DB에 접속한다
- DB에 보내는 접속 요청도 물론 시스템 콜을 이용한다
- 네트워크 경유로 DB서버에 대한 질의가 이루어진다
- DB 서버 이외의 옵션
- 규모가 작고 갱신 빈도가 낮은 정보는 JVM 내부에 캐시로 저장해 두었다가 반환하는 것이 효과적(고속 처리 가능)
- 규모가 큰 정적 데이터 전송 시에는 CDN(Content Delivery Network)이라 불리는 데이터 전송 전용 서버를 이용
- CDN은 대량의 데이터 전송에 특화된 것으로, 전 세계에 있는 데이터 복사본(캐시)을 배치하는 기술과 병렬 기술을 활용해서 처리를 효율화 함
- 참조뿐만 아니라 데이터 갱신하는 업무가 많고, 하나의 시스템에 대한 사용자 수가 제한되어 있는 기업형 시스템에서는 잘 사용하지 않음
- AP 서버부터 DB 서버까지
- DB서버에서는 DB 프로세스가 요청을 접수한다
- 이전에 사용한 정보는 캐시에 있기 때문에 이 정보를 찾기 위해 일단 공유 메모리를 검색한다
- 공유 메모리에 데이터가 존재하지 않기 때문에 디스크에서 읽는다. 이때는 이전과 동일한 방식으로 시스템 콜을 경유해서 디스크에 요청을 던진다
- 디스크의 데이터는 요청을 보낸 프로세스로 반환한다
- 한번 액세스한 데이터는 메모리에 캐시 형태로 저장되고 이후 액세스 시에 재사용된다
- 요청을 보낸 AP 서버로 데이터를 반환한다
- AP 서버부터 웹 서버까지
- DB 서버에서 돌아온 데이터는 NIC 경유로 원래 스레드에 반환한다
- DB 데이터, JVM의 캐시 데이터 등을 이용해서 계산 처리, 집계 처리 등이 이루어지고 특정 형태의 파일이 생성된다
- 웹 서버로부터 데이터를 반환한다
- 웹 서버부터 클라이언트 PC까지
- AP 서버에서 돌아온 데이터는 NIC 경유로 원래 스레드에 반환된다
- 필요한 데이터 가공은 모두 AP서버에서 이루어지기 때문에 그대로 웹 브라우저에 데이터를 반환한다
- 요청한 데이터를 웹 브라우저로 반환한다
- 웹 데이터의 흐름 정리
- 프로세스나 스레드가 요청을 받는다
- 도착한 요청을 파악해서 필요에 따라 별도 서버로 요청을 보낸다
- 도착한 요청에 대해 응답한다
*3계층 시스템에서는 사용자 요청이 시발점이 돼서 해당 요청이 다양한 서버로 전달된다. 요청 기반 아키텍처이기 때문에 기다리는 상태이고 이는 성능 문제를 야기하는 요인이 된다
3.4 가상화
→ 컴퓨터 시스템에서 물리 리소스를 추상화하는 것
→ 하드웨어를 의식하지 않고 애플리케이션을 실행할 수 있는 운영체제(Operating System, OS)도 가상화 기술 중 하나
- 가상머신
- 호스트 OS형
- 윈도우즈나 리눅스 등의 호스트 OS 상에 가상화 소프트웨어를 설치해서 이용하는 것
- 소프트웨어를 에뮬레이터 하는 것으로 성능면에서 제한이 있음
- VMware Server, Microsoft Virtual Server
- 하이퍼바이저형
- 직접 가상화 소프트웨어를 실행하고 그 위에 가상 머신을 동작하는 방식(호스트 OS형의 단점을 보완함)
- 호스트 OS를 거치지 않으므로 호스트형보다 성능이 우수해서 서버 가상화의 대표 기술로 자리잡음
- VMware vSphere, Hyper-V, Xen, KVM
- 호스트 OS형
- 컨테이너의 역사
- 도커의 등장
- 클라우드 가상화 기술
'IT인프라' 카테고리의 다른 글
1,2장. 인프라 아키텍처, 서버 (0) | 2024.05.29 |
---|---|
7장. 무정지를 위한 인프라 구조 (0) | 2024.05.29 |