질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

리눅스에서 buffer와 cache의 차이점은 무엇인가요?

작성자 정보

  • 김진선 작성
  • 작성일

컨텐츠 정보

본문

# free
                  total       used       free     shared    buffers    cached
Mem:        904220     571368     332852          0      30956     387188
-/+ buffers/cache:   153224     750996
Swap:      1052248          0      1052248


==> 리눅스의 free 명령어를 실행했을 때 나타나는
      buffers와 cached의 정확한 의미는 무엇인가요?

관련자료

댓글 2

로군님의 댓글

  • 로군
  • 작성일
안녕하세요 로쿤 입니다  =]

메모리 확인 명령이네요* 

[total: 총 용량 ] - [ used : 사용 용량 ] - [ free : 남은 용량 ] - [shred : 공유 ] - [ buffers : 임시 공간 ] - [cached : 메모리 ]


컴퓨터 전공 하시면 한번쯤은 들어본 듯한 캐쉬와 버퍼 입니다 ^^

저도 좀 오래된 기억을 떠 올려 보겠습니다 .. 더듬 더듬..

[cpu] --- [ cached  ]  ---- [ RAM ] --- [ buffer ] ------ [ HDD ]
                                             

하나의 프로그램 || 프로세스를 실행 하게 되면 수많은 명령들이 I/O 를 통해 입력 됩니다.

그러면 HDD 있는 많은 내용들이 cpu 까지 전달 되어야 하는데요.. 

HDD 는 저장소 -> RAM 은 HDD 보다 빠른 저장소 -> cpu 처리.. 이렇게 됩니다.

cpu 는 정말 빨리 처리 하는 반면에 HDD 와 RAM 의 올려 주는 속도가 느리면 사실 cpu 가 빨라도 무의미 하게 되겠죠? ^^?그래서 등장 한게 cache 메모리 입니다.

cached 는 미리 일정 공간(데이터의 링크)을 땡겨와서 가지고 있다가 cpu 한테 패스 해주는 데요. RAM - cache - CPU  이 구조로 CPU 의 속도를 맞춰 빠른 어시스트를 하는 메모리 이며

위에서 나온 cache 의 용량 여부 입니다.  그럼 이제 buffer 가 뭔지 보겠습니다.

buffer 란 임시 공간을 의미 하는데요. 데이터를 읽어 오기 위한 공간으로 알고 있습니다.

RAM 에서 데이터를 직접 적으로 사용 하기에는 COMPUTER 라는 녀석의 HDD 는 광범위 하게 넓은데 ... 어떻게 하면 이 접근을 줄일 수 있을까? 를 연구 하다 나온게 특정 부분을 buffer 에 담고 있자!!

해서 나오게 된것 입니다. 결국은 다 메모리 인데요

cpu 가 대용량 저장소인 hdd 의 데이터를 읽어 오기 위해 cpu 쪽에서 어시스트 하는 cache

hdd 에서 데이터를 load & save 해서 지원 하는게 buffer 이렇게 됩니다.

많이 도움 되셨길 바라고... 틀린 부분 있으면 과감한 백테클 .. 감사히 받겠습니다.


이상 로쿤 이였습니다 =]

리온님의 댓글

  • 리온
  • 작성일
total      used      free    shared    buffers    cached
Mem:        904220    571368    332852          0      30956    387188
-/+ buffers/cache:  153224    750996
Swap:      1052248          0      1052248

total - 총메모리 900M 
used - 사용중인 메모리 (buffer + cache + 그외 실제 사용중인 메모리)
free - 순수하게 아무것도 안하고 있는 메모리

buffer - 프로그램에 의해 실제 사용중인 부분과 사용하기 위해 대기중인 메모리
cached - 항시 사용하기 위해 할당된 메모리

처음부터 복잡하게 접근하면 어려울까봐 간략히 설명
자세히 알고 싶으면 커널레벨까지 접근해서 상당히 복잡한 부분까지 공부해야 될겁니다.
상세 정보는 cat /proc/meminfo

공지사항


뉴스광장


  • 현재 회원수 :  60,034 명
  • 현재 강좌수 :  35,787 개
  • 현재 접속자 :  260 명