HP-UX

buffer cache 실사용량에 관해..

 
김춘수
유치원

buffer cache 실사용량에 관해..

안녕하세요 ^^;

HPRC 고수님들의 도움을 부탁드립니다.



Buffer Cache관련 kernel parameter중 dbc_max_pct / dbc_min_pct에 관하여 궁굼한것이 있어 질문드립니다.



예를들어,



Physical memory =10GB

Kernel의 dbc_max_pct=50

이면 glance -m에서 Buf cache=5GB입니다. 즉 heavy I/O일때 physical mem /2 만큼 사용해서 값이 5GB로 나오는것으로 알고있는데, 메모리부족으로 인해 OS가 반환요청을 하지 않는한 5GB를 계속 유지하게 되어 실제 메모리사용량을 계산하는데 어려움이 있습니다.



실제 buffer cache의 사용량을 알수 있는 방법이 있는지 알고싶습니다. 즉 5GB중 3GB만큼만 buffer cache로 사용될수 있을것 같으면 dbc_max_pct값을 조정하여 2GB만큼을 튜닝의 통해 확보할수 있을것 같아서 입니다.



고수님들의 답변 부탁드립니다.



5 응답 5
김병수
본과생

buffer cache 실사용량에 관해..

춘수씨..



현재사용하고 있는 buffer cache의 사용량을 알수 있는 명령어는 없는듯하구요...



제생각에는 # sar -b 를 하시어 hit rate를 고려하는 것이 좋을듯합니다.



아시겠지만



# man sar 하여 -b option을 주의깊게 보시기 바랍니다.



그럼~~~
고재진
중학생

buffer cache 실사용량에 관해..

^^~



buffer cache 라는 값은 제가 알기로는 사용량이 아니고 말그대로 데이터를 저장해놓는곳입니다. cache 기능이죠.

이런 캐시기능을 쓰는 이유는 disk에 요청하는것보다 메모리에 요청하는게 시스템 성능에 좋기 때문입니다.



buffer cache는 read/write의 시스템 콜을 사용하거나 filesystem에서 file data에 접근할때 buffer cache를 통해 file data를 사용합니다. 따라서 현재 5기가를 사용하고 있다면 filedata를 5기가만큼 cache하고 있는겁니다.



cache이기 때문에 buffer cache가 다이나믹 커널로 조정이 되는걸로 생각되네요.



buffer cache의 적절한 비율의 튜닝을 원한다면 glance의

gbl_mem_cache_hit_pct 의 비율이 어느정도 인지로 판단하면 될듯 싶습니다. 비율이 90%이상이라면 cache 가 잘 사용되는 상황이고, 적다면 buffer cache를 낮춰서 상태를 보는거죠.



그럼.

정우익
임시 조언자

buffer cache 실사용량에 관해..

간단하고 허접한 답변 하나 드립니다.



일단 dbc_max_pct 가 50%일지라 하더라도 Buffer로 사용하는 것 보다는 System혹은 User가 요청 할 시 memory 를 내어 놓게 되어 있습니다.



따라서 50%가 Buffer 라도 dbc_min_pct 까지는 Buffer 영역이 줄어든다고 보시면 됩니다.



만약 dbc_min_pct 가 10%이고 Physical Mem가 10GB 이면 Buffer로 사용할 수 있는 최소한의 영역이 1GB라는 뜻입니다.



Glance로 Buffer를 얼마나 사용하는 지 확인 하시고



적당한 값을 찾는 것이 좋을 듯 하네요



kctune(11.23)에서는 Dynamic 으로 변경이 되었으니 kernel변경시

reboot은 필요 없습니다.



kmtune(11.11)에서는 reboot을 요합니다.



참고 하시기 바랍니다.
이태곤
중학생

buffer cache 실사용량에 관해..

김과장이 내 말을 안믿네 ㅋㅋ



buffer cache usgae을 glance의 메모리처럼 측정하는 것은 무리일듯...



TBL_BUFFER_CACHE_USED 로 살펴보았는데 거의 dbc_max_pct 만큼 사용하는 것 같네..



좋은방법은 dbc_max_pct과 dbc_min_pct을 모두 5나10으로 하고 조금씩 늘려 보는것이...



그리고 메모리의 10%는 buffer cache로 확정해두는것이 만약 메모리가 너무 크다면 5%도 무방할듯...



# sar -b

%rcache >= 90, %wcache >= 70%가 적당합니다. 일부 시스템 구성(예: 원시

파티션 또는 무작위의 읽기 및 쓰기를 수행하는 응용 프로그램이 있는

시스템)에서는 이 버퍼 캐시 접속률이 나타나지 않습니다. 목표는 특정

시스템에서 최상의 성능을 내도록 캐시를 조정하는 것입니다. 고정된 버퍼 캐시

크기로 시작하여 캐시를 더 크거나 작게(예를 들어, 한 번에 2%씩) 조정합니다.

그런 다음 결과를 측정합니다. 접속률이 증가/감소했으며, 결과는 메모리

사용을 변화시킬 만합니까?



두 가지에 유념해야 합니다. 버퍼 캐시를 조금씩 증가/감소시킬 때 %rcache와

%wcache가 변하지 않으면 이 조정이 아무 의미도 없으며 파일 시스템 I/O

성능에도 나쁜 영향을 끼치지 않습니다. 또한 모든 시스템은 서로 다른

읽기/쓰기 접속률을 나타냅니다. 아주 높은 접속률이 결코 나타나지 않는

시스템도 있습니다.

김춘수
유치원

buffer cache 실사용량에 관해..

조금 더 찾아보니까 아래와 같이 나오네요 ^^;



root@aaa:/>kcusage -l

Tunable: dbc_max_pct

Usage: 9

Setting: 20

Percentage: 45.0



위의 내용을 근거로 추정해 보면 physical MEM의 영역중 buffer cache_max_pct값 20%중 9%를 사용해서 사용률은 45%정도로 예측할수 있고 그 내(9%)에서 r/cache, w/cache hit율이 나올것 같은데,

맞나요? ㅋㅋ