공유할 서비스 선택

TECH


TECH

OS [질문] free 메모리에서 Used가 너무 높게 나오는데, ps 명령어에는 사용율이 없습니다.

페이지 정보

작성자 OSworker 아이디로 검색 전체게시물 댓글 0건 조회 396회 좋아요 1회 작성일 24-02-19 22:06

본문

안녕하세요 

 

오늘은 얼마전 고객분에게로 부터 받은 질문을 여기에 쓰고자합니다.~

 

제가 리눅스를 했을때 부터 항상 듣던 메모리 사용량에 대해서입니다. 

 

질문) Free로 볼때 사용량이 80% 이상인데, ps 명령어로 보면 그정도 사용양이 아닙니다. 왜그런건가요

        메모리를 증설해야하나요? 

 

참 쉬운 질문이면서도, 고객을 이해시키기 어려운 답변일수도있습니다~ 

 

그래서 오늘 메모리 사용량에 대해 알아보겠습니다~

 

# free -m

                    total        used        free       shared  buff/cache   available

Mem:          128198        1907      126587          23         778      126291

Swap:          10239           0       10239

 

. total: 시스템의 전체 메모리 크기

. used: 현재 사용 중인 메모리

. free: 현재 사용 가능한 메모리

. shared: 공유 메모리 (일반적으로 사용되지 않음)

. buff/cache: 버퍼와 캐시 메모리로 사용되는 메모리 양

. available: 즉시 사용 가능한 메모리 (버퍼 및 캐시를 고려한 나머지 메모리)

 

이 출력에서 "used" 열은 현재 시스템에서 사용 중인 메모리 양을 나타내며, "free" 열은 현재 사용 가능한 메모리 양을 나타냅니다. "buff/cache" 열은 시스템에서 버퍼와 캐시로 사용되는 메모리 양을 보여줍니다.

따라서 "free" 명령어는 시스템의 메모리 사용량을 모니터링하고, 시스템 리소스 관리에 도움을 줄 수 있는 유용한 도구입니다.

 

=> 제 테스트 서버는 128G 메모리입니다.  현재 돌아가는 프로그램이 없어서 사용량이 적은데요.

 

현재 used 가 1.9G 정도로 보여집니다. 하지만 실제로 사용양을 계산하는 방법은

 

------------------------

# man free

used   Used memory (calculated as total - free - buffers - cache)  

------------------------

. free manpage에서 보여지는것처럼   total - free - buffers - cache 입니다. // 옛날 버전이라 available 이 없습니다. free를 빼고 나머지를 빼주시면됩니다. 

 

> 참고링크 : https://access.redhat.com/solutions/58689

 

128198 - 23 - 778 - 126291 = 1,106  위 used 1907과 거의 2배 차이가 납니다. 

그럼 이 값이 맞는지 확인 해보겠습니다.

 

# ps -aux | tr -s ' ' | awk 'BEGIN{sum=0}{ sum+=$6 }END{print sum}'

1393424    // 약 1.39G가 나옵니다. 

 

 

- 아래의 물리적 실제 메모리 값인 RSS를 합한 값입니다. 

# ps -aux

USER         PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND

 

. VSZ: 가상 메모리 크기입니다. 이 값은 프로세스가 사용하는 모든 메모리(실제 메모리 및 스왑 공간)의 크기를 나타냅니다.

. RSS: 실제 메모리 사용량입니다. 이 값은 프로세스가 실제 메모리에서 사용하는 양을 나타냅니다.

 

 

# cat /proc/meminfo

MemTotal:       131275604 kB

MemFree:        129636148 kB

MemAvailable:   129333092 kB

Buffers:            5800 kB

Cached:           739268 kB

 

> total - free(or MemAvailable) - buffers - cache 계산법 

131275604 - 129333092 - 5800 - 739268 = 1,197,444  약 1.19G

 

이렇게 계산을 하면 현재 실제로 사용하는 메모리 값을 계산할수있다. 

 

하지만, 각 회사에서 사용하는 모니터링 솔루션에서는 대부분 Buffers+Cached 를 합하여 그래프로 보여줍니다. 

그래서 명령어로 확인되는 메모리양과 모니터링 솔루션에서 보여지는 그래프와 차이가 있습니다. 

(이부분은 모니터링 솔루션 업체에 메모리 계산법을 문의하셔야합니다.)

 

그런데~~~~~!!!!!

만약 물리서버를 사용하지 않고, VMWARE 같은 가상화 Hypervisor를 사용하신다면 말이 조금 달라집니다.

 

- 참고링크 : https://access.redhat.com/mt/ko/solutions/43729

-------------------------------------

위 내용을 보시면 VMWARE를 사용할 시 RHEL VMware 게스트의 메모리 사용량을 계산할 수 없다고 나와있습니다. 

그 이유는  VMware 메모리 제어 드라이버로 인해 발생합니다.vmmemctl.ko " 또는 "vmware_balloon.ko " 모듈.

 

- ESX 서버의 메모리 로드가 과도한 경우와 같은 일부 상황에서는 서버가 vmmemctl 모듈을 제어하여 "물리적" 메모리에 게스트 메모리를 할당하고 고정합니다.

 

- 그러면 이러한 "물리적" 메모리 영역을 ESX 서버에서 회수할 수 있습니다. 이 기능을 "풍선 표시"라고 합니다. 풍선을 팽창시키면 메모리 압력이 증가하고, 메모리 압력이 증가하면 커널이 메모리 페이지를 스왑 공간으로 페이지 아웃할 수 있습니다. vmmemctl 모듈에는 게스트 OS 내에 외부 인터페이스가 없습니다. 개인 채널을 통해서만 ESX 서버와 통신합니다. 따라서 vmmemctl에 의해 할당된 메모리는 게스트 OS에서 계산할 수 없습니다.

-------------------------------------

 

 

> 확인 방법

# modinfo vmmemctl

or

# modinfo vmware_balloon

 

 

그러니 VMWARE 사용하시는 고객분들은 메모리 걱정을 많이 안하셔도 됩니다~~ 자연스러운 일이라고합니다~^^

 

혹, 운영중에 궁금한 사항들이 있으시면 댓글로 남겨주세요~

 

감사합니다. 

댓글목록

등록된 댓글이 없습니다.

TECH 목록
번호 제목 작성자 작성일 조회수
84 OS OSworker 아이디로 검색 전체게시물 04-20 29
Diagram, Architect 등 서버의 구성에 대해 그림그리실때 무엇을 사용하시나요?

카테고리 : OS

29 0
작성자 : OSworker 24/04/20
83 OS OSworker 아이디로 검색 전체게시물 04-14 56
[교육] RH174 : Managing CentOS Migrations and RHEL Upgrades

카테고리 : OS

56 0
작성자 : OSworker 24/04/14
82 OS OSworker 아이디로 검색 전체게시물 04-03 768
[보안취약점] XZ유틸즈에서 발견된 백도어 `CVE-2024-3094`

카테고리 : OS

768 0
작성자 : OSworker 24/04/03
81 OS OSworker 아이디로 검색 전체게시물 03-30 105
레드햇 자격증 시험을 집에서~ 원하는 곳에서 볼수있는거 알고계셨나요?

카테고리 : OS

105 0
작성자 : OSworker 24/03/30
80 OS OSworker 아이디로 검색 전체게시물 03-24 172
RHEL7 to RHEL8 leapp으로 마이그레이션 하는 방법에 대해~

카테고리 : OS

172 0
작성자 : OSworker 24/03/24
79 OS OSworker 아이디로 검색 전체게시물 03-17 143
Convert2RHEL를 사용하여 CentOS 7.9 에서 RHEL7.9로 전환해보겠습니다.

카테고리 : OS

143 0
작성자 : OSworker 24/03/17
78 OS OSworker 아이디로 검색 전체게시물 02-28 252
RHEL8부터는 네트워크 본딩을 구성하려면 nmcli 유틸리티를 사용해야 합니다. 레드햇 권고입니다.

카테고리 : OS

252 0
작성자 : OSworker 24/02/28
열람중 OS OSworker 아이디로 검색 전체게시물 02-19 397
열람중
[질문] free 메모리에서 Used가 너무 높게 나오는데, ps 명령어에는 사용율이 없습니다.

카테고리 : OS

397 0
작성자 : OSworker 24/02/19
76 OS OSworker 아이디로 검색 전체게시물 02-05 421
1월31일에 발표된 보안취약점 CVE-2024-21626에 대해 알아보겠습니다.

카테고리 : OS

421 0
작성자 : OSworker 24/02/05
75 OS OSworker 아이디로 검색 전체게시물 01-31 438
OS 백업 아직도 3rd part 사용하시나요? 이제는 OS 에 포함된 ReaR 사용해보세요~!

카테고리 : OS

438 0
작성자 : OSworker 24/01/31
Total 84건
게시물 검색

주식회사 클럭스| 대표 : 이찬호| 사업자등록번호 : 107-87-27655
주소 : 서울특별시 영등포구 국회대로 800, 여의도파라곤
E-mail : sales@chlux.co.kr
Copyright © 클럭스 www.chlux.co.kr All rights reserved.
상단으로Top