일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 연관관계
- PS
- CHECK OPTION
- 다대다
- 연결리스트
- shared lock
- 유니크제약조건
- SQL프로그래밍
- 백트래킹
- exclusive lock
- querydsl
- eager
- 동적sql
- dfs
- 지연로딩
- execute
- 스프링 폼
- 낙관적락
- JPQL
- 즉시로딩
- 힙
- 다대일
- FetchType
- BOJ
- 일대다
- fetch
- 비관적락
- 데코레이터
- 스토어드 프로시저
- 이진탐색
- Today
- Total
흰 스타렉스에서 내가 내리지
컴퓨터 구조와 Swap Memory (스왑 메모리) 본문
CPU (Central Processing Unit)
컴퓨터의 "두뇌"로, 모든 명령어의 실행과 데이터의 처리를 담당한다.
이는 프로그램의 명령어를 해석하고, 산술 및 논리 연산을 수행하는 장치이다.
주 메모리 :: RAM (Random Accesss Memory)
CPU가 현재 실행 중인 프로그램과 해당 데이터를 일시적으로 저장하는 곳
RAM 은 빠른 접근 속도를 가지고 있어, CPU 가 필요로 하는 데이터와 명령어를 신속하게 제공한다.
그러나 전원이 꺼지면 그 내용이 사라지는 휘발성 메모리이다.
보조 메모리
HDD, SSD 와 같이 데이터를 영구적으로 저장하는 장치이다.
주 메모리보다 느린 접근 속도를 가지지만, 전원이 꺼져도 데이터가 유지된다.
보조 메모리는 운영체제, 애플리케이션 프로그램, 사용자 데이터 등을 지정하는데 사용된다.
스왑 메모리
스왑 메모리는 주 메모리의 확장으로 볼 수 있으며, 주로 하드 드라이브나 SSD 에 위치한다.
RAM 이 가득 찼을 때, 운영체제는 스왑 공간에 저장된 데이터를 RAM 과 교환(swap) 한다.
이 과정을 통해 시스템은 RAM 에 더 많은 공간을 확보할 수 으며, 더 많은 프로그램을 실행할 수 있게 됨
보조 메모리에 위치하지만, 주 메모리와 유사한 역할을 수행하기 위해 사용된다.
스왑의 주 목적은 시스템의 메모리 용량을 가상적으로 확장하여, 메모리 요구량이 높은 작업을 가능하게 하는 것이다.
그러나 스왑 공간은 RAM 보다 훨씬 느리기 때문에, 스왑을 과도하게 사용하면 시스템 성능이 저하될 수 있다.
Swap Memory 에 대해서
스왑 메모리(swap memory)는 컴퓨터 시스템에서 물리적 RAM(주 메모리)이 부족할 때 사용하는 디스크 공간입니다.
스왑은 시스템의 가상 메모리 관리 부분의 하나로, RAM에서 사용되지 않는 데이터를 일시적으로 저장함으로써, 실제 메모리를 효율적으로 사용할 수 있게 돕습니다.
👉 스왑 메모리 사용 이유
1. 메모리 부족 해결:
시스템의 RAM이 모든 실행 중인 프로세스를 수용하기에 부족할 때, 스왑 공간은 추가적인 "가상" 메모리를 제공합니다.
이를 통해 시스템은 더 많은 프로그램을 동시에 실행할 수 있게 됩니다.
2. 시스템 안정성 향상:
RAM이 가득 찼을 때 스왑 공간이 없다면, 시스템은 메모리 할당 실패로 인해 프로그램이나 시스템 자체가 충돌할 수 있습니다.
스왑 메모리를 사용함으로써 시스템은 이러한 위험을 줄이고 안정성을 유지할 수 있습니다.
3. 효율적인 메모리 사용:
스왑 메모리는 주로 장시간 사용되지 않는 데이터나 저우선순위의 데이터를 임시 저장하는 데 사용됩니다.
이를 통해 RAM은 더 중요하고 자주 사용되는 데이터 처리에 집중할 수 있어 전체 시스템의 효율성이 향상됩니다.
👉 스왑 메모리 사용 시기
1. RAM이 모두 사용될 때:
시스템이 RAM을 모두 사용하고 추가 메모리가 필요한 경우, 스왑 공간이 이를 대신하여 사용됩니다.
2. 저우선순위 프로세스 실행 시:
시스템은 일반적으로 덜 중요한 프로세스나 장시간 사용되지 않는 데이터를 스왑 영역으로 이동시켜 RAM을 보다 중요한 작업에 할당합니다.
3. 메모리 집약적인 작업을 할 때:
대규모 데이터베이스 처리, 대용량 파일 작업, 고급 그래픽 작업 등 메모리 사용량이 많은 작업을 수행할 때 스왑 공간은 RAM을 보조하여 시스템이 해당 작업을 계속 진행할 수 있도록 합니다.
👉 스왑 메모리의 장점
1. 비용 효율:
추가 RAM을 구매하지 않고도 디스크 공간을 활용하여 메모리 용량을 늘릴 수 있어 경제적입니다.
2. 시스템 유연성:
스왑 메모리는 시스템의 메모리 관리에 더 많은 유연성을 제공하며, RAM 사용이 최적화되도록 돕습니다.
3. 작업 연속성 보장:
메모리가 부족할 때 프로그램이 강제 종료되는 것을 방지하고, 사용자가 다수의 애플리케이션을 동시에 실행할 수 있게 합니다.
👉 주의사항
- 스왑 메모리는 RAM보다 훨씬 느립니다. 디스크 기반의 스왑 공간을 과도하게 사용하게 되면 시스템의 성능이 저하될 수 있습니다.
- 스왑을 효과적으로 사용하기 위해서는 적절한 스왑 공간 크기와 시스템의 메모리 사용 패턴을 고려하는 것이 중요합니다. 스왑 공간이 너무 크거나 너무 작으면 성능 문제나 메모리 부족 문제를 야기할 수 있습니다. 일반적으로, 스왑 공간의 크기는 시스템의 RAM 크기에 따라 달라지며, 시스템의 용도와 메모리 사용량에 맞추어 조정해야 합니다.
++ 스왑 공간이 너무 크거나 작을 경우 발생할 수 있는 문제는?
* 너무 클 경우
1. 디스크 공간 낭비
- 실제로 사용되지 않는 공간이 많아져 디스크 공간이 낭비될 수 있다.
* 너무 작을 경우
1. 메모리 부족 (Out of Memory)
- 스왑 공간이 충분하지 않으면, 시스템의 RAM 과 스왑 공간이 모두 가득 차게 된다.
- 이 경우 시스템은 메모리 부족 상태에 빠지게 되며, 이는 프로그램의 비정상 종료나 시스템의 안정성 문제를 초래할 수 있다.
2. 성능 저하
- 스왑 공간이 충분하지 않을 때, 시스템은 메모리 효율적으로 관리하기 위해 더 많은 노력을 해야 한다.
- 이는 스왑 인 (swap in) 과 스왑 아웃 (swap out) 작업이 빈번하게 발생하게 만들며, 결과적으로 시스템의 전반적인 성능 저하로 이어질 수 있다.
+++ 적절한 스왑 공간 설정
스왑 공간의 적절한 크기는 시스템의 메모리 용량, 애플리케이션의 메모리 요구 사항, 그리고 사용패턴에 따라 달라질 수 있다.
일반적으로, RAM 의 1.5배에서 2배 사이를 스왑 공간의 권장 크기고 설정하는 것이 일반적인 지침이었으나, 대용량 RAM 을 탑재한 현대의 시스템에서는 이보다 작은 크기를 설정해도 충분할 수 있다.
👉 스왑 메모리 설정 및 조정
스왑 메모리의 설정과 조정은 시스템의 메모리 요구 사항과 작업 부하에 따라 다르게 접근할 수 있습니다. 스왑 공간을 추가하거나 변경할 때는 다음 절차를 따르게 됩니다:
1. 스왑 공간 확인: swapon -s 명령어를 사용하여 현재 시스템에 설정된 스왑 공간을 확인할 수 있습니다.
2. 스왑 파일 생성: 충분한 스왑 공간이 없는 경우, dd 명령어를 사용하여 스왑 파일을 생성할 수 있습니다. 예: sudo dd if=/dev/zero of=/swapfile bs=1G count=1 명령어는 1GB 크기의 스왑 파일을 생성합니다.
3. 스왑 파일 설정: 생성된 스왑 파일에 대해 mkswap 명령어를 사용하여 스왑 영역을 설정하고, swapon 명령어로 스왑 파일을 활성화합니다.
4. 영구적 스왑 설정: 스왑 설정을 시스템 재부팅 후에도 유지하기 위해, /etc/fstab 파일에 스왑 파일 경로를 추가합니다.
👉 스왑 메모리의 영향
1. 성능 저하:
스왑 메모리 사용은 물리적 RAM보다 느리기 때문에, 과도한 스왑 활동은 시스템 성능 저하를 초래할 수 있습니다. 이는 특히 디스크 I/O가 높은 작업에서 두드러집니다.
2. 시스템 안정성 개선:
스왑 메모리는 시스템의 안정성을 개선할 수 있으나, 메모리 관리 전략의 일부로서만 사용해야 합니다.
스왑 공간에 의존하는 것보다는 애플리케이션과 시스템의 메모리 사용을 최적화하는 것이 더 바람직합니다.
스왑 메모리는 리소스 제한 환경에서 시스템 안정성을 보장하고 메모리 사용량을 관리하는 데 유용한 도구입니다.
그러나 스왑 공간의 사용은 신중하게 계획하고 모니터링해야 하며, 가능한 한 성능 저하를 최소화하고 메모리 최적화를 통해 실제 RAM 사용을 극대화하는 것이 중요합니다.
'etc' 카테고리의 다른 글
Slack Webhook URL 을 추가하는 방법 (0) | 2024.07.17 |
---|---|
IOPS (0) | 2024.06.05 |
Jetbrains사에 직접 요청하여 IntelliJ 학생인증 받기 (0) | 2023.09.15 |
Redis (0) | 2023.06.27 |
[Git] add취소, commit 취소 (0) | 2023.04.29 |