본문 바로가기
  • 꾸준히 앞으로

분류 전체보기23

[OS] 가상 메모리 가상 메모리 가상 메모리 개발 배경 프로그램의 일부분만 메모리에 올릴 수 있다면...? 가상 메모리가 하는 일 1. 가상 주소 공간 제공 2. 프로세스 간의 페이지 공유 Demand Paging(요구 페이징) Page fault trap(페이지 부재 트랩) 페이지 교체 기본적인 방법 페이지 교체 알고리즘 FIFO 페이지 교체(FIFO;First-In First-Out) 최적 페이지 교체(OPT;Optimal) LRU 페이지 교체(LRU;Least Recently Used) 계수 기반(Countin-Based) 페이지 교체 - LFU, MFU ⍞ Reference 가상 메모리 다중 프로그래밍을 실현하기 위해서는 많은 프로세스들을 동시에 메모리에 올려두어야 한다. 가상메모리는 프로세스 전체가 메모리 내에 올.. 2020. 9. 13.
[OS] 블로킹-논블로킹, 동기-비동기 Blocking I/O Model Non-Blocking I/O Model Asynchronous I/O Model Synchronous ⍞ Reference Blocking I/O Model I/O 작업은 User Level(application)에서 직접 수행할 수 없다. 실제 I/O작업은 Kernel Level(OS)에서 일어나는 과정이다. 따라서 유저 프로세스(application)는 커널(OS)에게 I/O작업에 대한 요청을 해야한다. I/O 작업을 처리하기 위해 User Level에 있던 Application이 시스템 함수를 호출한다(→ system call). 이 때 context-switching 이 발생한다. Kernel Level에서 해당 I/O 작업 진행, I/O가 끝날 때까지 유저 프.. 2020. 9. 12.
[Java] JVM(Java Virtual Machine) 구조 JVM의 역할 JVM 구조 Class Loader Runtime Data Area(Memory) [Method Area, Heap Area] [Stack Area, PC register, Native Method Stack] Execution Engine ⍞ Reference JVM의 역할 자바 애플리케이션을 Class Loader를 통해 읽어 들여 자바 API와 함께 실행 JVM은 Java와 OS 사이에서 중개자 역할을 수행 → JAVA가 OS에 독립적으로 실행 및 재사용을 가능하게 함 메모리관리, Garbage collection을 수행 스택기반의 가상머신 ARM 아키텍쳐 같은 하드웨어는 레지스터 기반으로 동작하는데 비해 JVM은 스택기반으로 동작한다 JVM 구조 .java 파일이 javac(java.. 2020. 9. 10.
[실무로 배우는 시스템 성능 최적화] 서버 모니터링 기본 방향 서버 자원 사용률 확인 시 중간 점검 항목 CPU Memory Disk Network 자원 모니터링 로그를 남겨서 분석 시 CPU 사용량 분석 안정적인 운영을 위한 CPU 사용률 기준 CPU 사용량 상세 분석 가상화 CPU 사용률 Memory 메모리 부족과 성능 영향 운영체제 측면의 메모리 부족 여부와 성능 영향도 자바 기반 솔루션의 경우 오라클 버퍼캐시처럼 데이터 베이스의 경우 가상 메모리 주요 개념 사용량 분석 안정적 운영을 위한 메모리 판단 기준 일반적인 메모리 사용률 산출 1. 파일 캐시 2. IPC(Inter-Process Communication) 3. 프로세스 기본 방향 서버 자원 사용률 확인 시 중간 점검 항목 일반적으로 CPU → Memory → Disk → Network 순으.. 2020. 9. 6.
[MySQL] 성능 튜닝 - 버퍼 풀 버퍼 풀(Buffer Pool) 버퍼 풀의 크기 (innodb_buffer_pool_size) 버퍼 풀 인스턴스 수 (innodb_buffer_pool_instances) ⍞ Reference 버퍼 풀(Buffer Pool) 버퍼 풀은 InnoDB가 액세스 할 때 테이블 및 인덱스 데이터를 캐시하는 메인 메모리 영역이다. 버퍼풀은 자주 사용하는 데이터를 메모리에서 직접 처리할 수 있게하여 처리 속도를 높인다 전용 서버에서 실제 메모리의 최대 80% 정도가 버퍼풀에 할당된다. 대량 읽기 조작의 효율성을 위해 버퍼 풀은 여러 행을 보유할 수 있는 페이지로 분할된다. 캐시 관리 효율성을 위해 버퍼풀은 링크된 페이지 목록으로 구현된다. 거의 사용되지 않는 데이터는 다양한 LRU 알고리즘을 사용하여 캐시에서 종료.. 2020. 9. 5.