티스토리 뷰

SAP ERP와 같은 레거시 시스템에서는 일반적인 메모리 개념 외에도 특정한 구조를 고려해야 합니다. 일반적인 시스템에서의 6가지 주요 메모리 개념을 설명하고 해당 개념들을 하나의 표로 정리합니다. 그다음 SAP ERP와 같은 기간계 시스템에서 추가로 고려해야 하는 메모리 개념들을 추가 정리합니다.

 

 

일반 시스템의 6가지 주요 메모리 개념

 

SAP ERP와 같은 시스템에서는 기본적으로 힙 메모리(Heap Memory), 페이징 메모리(Paging Memory), 스택 메모리(Stack Memory), 버퍼 메모리(Buffer Memory), 스왑 메모리(Swap Memory), 세그먼트 메모리(Segment Memory) 등 주요 6가지 메모리 외에 다양한 개념들이 있습니다. 각 메모리는 특정 역할을 수행하고, 시스템의 성능과 안정성에 중요한 기능으로 작용합니다.

 

메모리 유형 역할 및 기능 주요 문제
힙 메모리 동작 할당 및 해제 메모리 누수, 조각화
페이징 메모리 가장 메모리 관리, 페이지 단위 저장 페이지 폴트, 성능 저하
스택 메모리 함수 실행 시 지역 변수 저장 스택 오버플로
버터 메모리 I/O 성능 향상, 캐싱 버퍼 오버플로
스왑 메모리 RAM 부족 시 디스크 사용 성능 저하, 스레싱
세그먼트 메모리 프로그램을 논리적 블록으로 관리 외부 단편화

 

▼힙 메모리(Heap Memory)

힙 메모리는 프로그램이 실행되는 동안 동적으로 할당되는 메모리 영역입니다. 프로세스가 실행 중일 때 필요에 따라 데이터를 저장하거나 해제할 수 있습니다. 주로 객체 및 데이터 구조(배열, 리스트 등)에 사용됩니다. 메모리 누수(Memory Leak)나 조각화(Fragmentation)가 발생될 수 있고, 할당과 해제가 비교적 느린 편입니다.

 

페이징 메모리(Paging Memory)

페이징 메모리는 운영체제가 메모리를 일정한 크기의 페이지 단위로 나누어 관리하는 방식입니다. 가상/물리 메모리 간의 매핑을 담당하고, 물리적 메모리가 부족하면 디스크 일부를 사용해 데이터를 저장할 수 있습니다. 페이지 폴트(Page Fault)가 자주 발생하면 성능 저하가 생길 수 있습니다.

 

스택 메모리(Stack Memory)

스택 메모리는 함수를 호출할 때 생성되는 임시 메모리 공간입니다. 지역 변수, 함수의 실행 정보를 저장하는 데에 사용됩니다. LIFO(Last In, First Out) 구조로 동작하고, 함수가 종료되면 자동으로 해제됩니다. 만약 심각한 재귀 호출이 생기면 스택 오버플로(Stack Overflow) 오류가 생길 수 있습니다.

 

버퍼 메모리(Buffer Memory)

버퍼 메모리는 I/O 성능을 향상하기 위해 임시로 데이터를 저장하는 메모리 공간입니다. DB, 파일 I/O, 네트워크 전송 등에 사용되어 읽기/쓰기 속도를 최적화하는 역할을 담당합니다. 버퍼 메모리가 문제가 생길 시 버퍼 오버플로(Buffer Overflow)와 같은 보안 문제가 생길 수 있습니다.

 

스왑 메모리(Swap Memory)

스왑 메모리는 물리적 메모리인 RAM이 부족할 때 OS가 디스크 일부를 가상 메모리로 사용하는 방식입니다. 스왑 파일이나 스왑 파티션을 활용하며, 성능이 낮은 디스크를 이용하기 때문에 과도한 스왑은 시스템 속도에 영향을 줄 수 있습니다.

 

세그먼트 메모리(Segment Memory)

세그먼트 메모리는 프로그램을 논리적인 블록인 Segment 단위로 나누어 관리하는 메모리 모델입니다. 프로그램이 실행될 때 Code, Data, Stack 등의 세그먼트로 구분됩니다. 페이징과 유사하지만 가변 크기를 사용한다는 점이 다릅니다.

 

 

SAP ERP의 추가 메모리 개념

 

SAP ERP와 같은 대규모 데이터 저장 및 처리 시스템에서는 위의 기본 6가지 메모리 활용 방식 외에도 다양한 구조를 고려해야 합니다. SAP ERP에서 알아두면 좋은 메모리 유형 4가지를 추가로 정리합니다.

 

메모리 유형 역할 및 기능 관련 SAP 설정
롤 메모리 SAP 사용자 세션 유지 ztta/roll_first, ztta/roll_extension
익스텐션 메모리 다중 사욘자 세션 메모리 최적화 em/initial_size_MB, em/global_area_MB
쉐어드 메모리 워크 프로세스 간 데이터 공유 ipc/shm_psize_10, ipc/shm_max
DB 버퍼 메모리 DBMS 내부의 데이터 캐싱 ST04(Oracle SGA, PGA)

 

롤 메모리(Roll Memory)

롤 메모리는 SAP ERP에서 사용자의 세션 데이터를 저장하는 영역입니다. 하나의 워크 프로세스에서 다른 워크 프로세스로 전환될 때, 사용자 콘텍스트(Context)를 유지하기 위해 사용합니다. 만약 롤 메모리가 부족하면 성능 저하가 생깁니다.

 

익스텐션 메모리(Extended Memory)

SAP ERP의 익스텐션 메모리는 다중 사용자 환경에서 워크 프로세스 간 데이터를 공유하기 위한 메모리입니다. 보통 대형 내부 테이블을 저장하는 용도로 이용되고, 확장 가능하도록 설계되어 있습니다.

 

쉐어드 메모리(Shared Memory)

쉐어드 메모리는 여러 개의 워크 프로세스가 데이터를 공유하기 위한 메모리 공간입니다. 테이블 데이터, 세션 정보 등을 캐싱해 빠르게 접글할 수 있도록 지원하는 공간입니다.

 

DB 버퍼 메모리(Database Buffer Memory)

SAP ERP는 DB와 밀접한 관계에 있어 이를 최적화하기 위해 DBMS 내부 데이터 캐싱 메모리가 중요한 역할을 합니다. Oracle의 SGA, PGA와 비슷하게 DB 버퍼의 크기를 최적화하여 쿼리 성능을 향상하는 데에 사용됩니다.

 

댓글