본문 바로가기
OS/Linux

리눅스 메모리 사용률 확인방법 / 버퍼와 캐시의 의미

by 나비와꽃기린 2016. 12. 6.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.


<<리눅스 메모리 사용률 확인방법>>


1. top




시스템의 전체 운용상황을 점검해준다. (시스템의 현재 상황)

기본적으로 2~5초 간격으로 refresh 해주며

top –s 초로 명령어를 주면 refresh 되는 시간을 조정할 수 있다.

모니터링을 그만 보고 싶으면 ctrl+c 로 빠져나오면 된다.





2. free


메모리 사용상황을 보여주는 명령어 free

Mem 행은 실제 메모리에 대한 상황을 보여주며

Swap 행은 스윕파일에 대한 정보를 보여준다.



<<첫째줄 설명>>

12324612 : 메모리(물리적인 RAM)의 총량

12046292 : 시스템에서 사용하고 있는 메모리(RAM)의 총량으로 버퍼와 캐시된 데이터의 크기까지 포함

278320 : 남은 메모리 총량

0 : 공유된 메모리

407424 : 응용 프로그램들에 의해 버퍼된 메모리 총량

4859068 : 향후를 위한 데이터 캐싱에 사용한 메모리 총량

 

<<둘째줄 설명>>

6779800 : 실제 사용중인 메모리 총량.

5544812 : 실제 남은 메모리의 총량

 

리눅스는 사용하고 있지 않은 메모리를 빌려 디스크 캐싱에 사용하기 때문에 메모리 여유공간이 없을 때 특정 프로그램의 메모리 할당을 받으려고 하면 즉시 버퍼/캐시가 공간을 빌려 그 응용 프로그램에 할당을 해줍니다. 따라서 실제 여유공간은 첫번째 줄의 세번째 값이 아니라

두번째 줄의 두번째 값이 된다.

 

 

그렇다면 도대체가 -/+  buffers/cache의 의미, 버퍼와 캐시란 무엇일까?

 

즉 쉽게 말하자면, buffers는 임시저장장소 같은 것으로 파일에 어떤것을 작성하라는 명령이 내려진다면 LINUX는 즉시 파일에 데이터를 쓰지 않고 버퍼에 담아두다가 CPU가 바쁘지 않을 때 쓰게 된다.

이럴때 사용하는것이 buffers이며


cached는 버퍼와는 다른의미로 메모리에서 사용되었던 실행이미지를 잠시동안

보관하고 있는곳이다

cache가 필요한 이유는 자주 사용하는 프로그램을 빠르게 실행하기 위해서고

이렇게 함으로써 실행도 빨라지지만 HDD에 접근하는 횟수도 훨씬 줄어들 수가 있다. 즉 쉽게 말해 캐시는 더 빠른 접근을 위해 자주 사용하는 데이터를 저장하기 위한 공간이라고 생각하면 된다.

 

버퍼와 캐시는 모두 데이터 처리를 위한 임시공간이라는 공통점이 있지만, 캐시는 여러 번 사용될 수 있고 버퍼는 한번만 사용되는 차이점이 있다.

shared는 공유메모리로 프로세서,thread간 통신을 위해서 사용된다.




3. df


하드디스크 용량이 얼마나 남았는지를 알려준다.