리눅스 시스템에서 메모리 사용량을 확인하고 분석하는 방법은 여러 가지가 있습니다.
- free 명령어: 가장 간단한 방법 중 하나로 free -m 명령어를 사용하면 시스템의 총 메모리, 사용 중인 메모리, 사용 가능한 메모리 등을 MB 단위로 보여줍니다. free -g 를 통해서 GB 단위로도 볼수있습니다 .
- /proc/meminfo 파일: 이 파일은 시스템의 메모리 사용량에 대한 많은 정보를 제공합니다. 총 메모리, 사용 가능한 메모리, 버퍼에 사용된 메모리 등 다양한 정보를 얻을 수 있습니다. 이 파일의 내용을 읽으려면 cat /proc/meminfo 명령어를 사용하면 됩니다.
- top 명령어: top 명령어를 사용하면 현재 시스템에서 가장 많은 리소스를 사용하는 프로세스를 보여줍니다. 또한 전체적인 시스템의 상태, 예를 들어 CPU 사용량, 메모리 사용량, 실행 중인 프로세스 수 등을 실시간으로 모니터링 할 수 있습니다.
- vmstat 명령어: vmstat는 시스템의 전반적인 상태를 보여줍니다. 이 명령어는 메모리, 프로세스, 페이징, CPU 활동 등에 대한 정보를 제공합니다.
이러한 명령어와 파일을 사용하여 리눅스 시스템의 메모리 사용량을 확인하고 분석할 수 있습니다. 각 도구는 다양한 정보를 제공하므로, 특정 문제를 해결하거나 시스템의 성능을 모니터링하는데 필요한 정보에 따라 적절한 도구를 선택하면 됩니다.
free -m
명령어를 사용하면 메모리 사용량에 대한 정보를 megabytes 단위로 보여줍니다. 출력 결과의 각 열의 의미는 다음과 같습니다:
- total: 시스템에 설치된 총 메모리의 양입니다.
- used: 현재 사용중인 메모리의 양입니다. 이는 전체 메모리(total)에서 사용 가능한 메모리(available)를 뺀 값으로 계산됩니다.
- free: 시스템에서 현재 할당되지 않은 메모리의 양입니다. 이 값은 대개 캐시와 버퍼를 사용하지 않는, 실제로 아무런 용도로 사용되지 않는 메모리를 나타냅니다.
- shared: 공유 메모리란 두 개 이상의 프로세스가 접근할 수 있는 메모리를 의미합니다. 이는 효율적인 자원 활용을 가능하게 하며, 프로세스 간 통신에도 사용됩니다. 공유 메모리 영역에 쓴 데이터는 다른 프로세스가 읽을 수 있으므로, 프로세스 간 데이터를 전달하는 데 사용됩니다. 예를 들어, 하나의 프로세스가 생성한 데이터를 다른 프로세스가 필요로 하는 경우, 이들 프로세스는 공유 메모리를 사용하여 데이터를 교환할 수 있습니다.
- buff/cache: 이 값은 시스템에서 사용되는 버퍼와 캐시의 총량을 나타냅니다. 리눅스 시스템은 디스크 입출력을 최적화하고 시스템 성능을 향상시키기 위해, 자유 메모리를 버퍼와 캐시로 사용합니다.이렇게 사용된 메모리는 필요에 따라 즉시 재활용 될 수 있으므로, 실질적으로는 사용 가능한 메모리로 간주됩니다.
◼︎버퍼(Buffer): 버퍼는 데이터가 메모리와 하드웨어 사이에서 전송될 때 임시적으로 그 데이터를 보관하는 영역입니다. 버퍼는 블록 장치로의 입출력을 위해 사용되며, 주로 하드웨어 장치와의 데이터 전송을 돕습니다. 버퍼를 통해 데이터는 메모리에서 블록 형태로 읽거나 쓰여질 수 있으며, 이를 통해 시스템의 입출력 효율성이 향상됩니다.
◼︎캐시(Cache): 캐시는 시스템이 파일 시스템의 데이터를 빠르게 읽을 수 있도록 돕는 임시 저장 공간입니다. 파일 시스템에서 데이터를 처음 읽을 때, 그 데이터는 캐시에 저장되어 빠른 재접근을 가능하게 합니다. 이를 통해 시스템은 디스크의 물리적인 입출력 작업을 최소화하고, 데이터 접근 속도를 향상시킬 수 있습니다.
◼︎ 버퍼/캐시 초기화 방법: sync; echo 3 > /proc/sys/vm/drop_caches: 모든 캐시를 삭제하는 명령어입니다. 이 명령은 주의해서 사용해야 합니다. 'sync' 명령은 파일 시스템의 모든 변경사항을 디스크에 쓰고, 'echo 3 > /proc/sys/vm/drop_caches' 명령은 모든 캐시를 삭제합니다. 이는 디버깅이나 테스트 용도로 사용될 수 있지만, 시스템의 성능에 영향을 줄 수 있으므로 실제 운영 환경에서는 주의하여 사용해야 합니다.
- available: available 열은 신규 프로세스가 사용할 수 있는 예상 메모리량을 나타냅니다. 이 값은 free 값과 reclaimable buff/cache 값을 합한 것입니다. 따라서, 버퍼/캐시가 많이 사용되더라도 그것들이 재활용될 수 있기 때문에, 사용 가능한 메모리는 'used' 메모리보다 훨씬 클 수 있습니다. 실제로, 시스템에서 메모리 부족이 발생하면 버퍼/캐시 메모리를 자유 메모리로 변환하여 새로운 프로세스에 할당할 수 있습니다.
'INFRA > LINUX' 카테고리의 다른 글
리눅스 명령어2 (0) | 2023.06.22 |
---|---|
inode에 대하여 (0) | 2023.06.21 |
core dump란 (0) | 2023.06.19 |
GPG key(PGP) (2) | 2023.06.16 |
udev란 (0) | 2023.06.13 |