HP-UX

급한 질문하나 하겠습니다.

 
정우익
임시 조언자

급한 질문하나 하겠습니다.

bdf와 du -sk로 확인한 size가 확연하게 다릅니다.



일단 bdf로 확인하면 약 8.8GB 를 사용하고 있다고 나오고

du -sk로 확인하면 약 5.9GB 를 사용하고 있다고 나옵니다.



단 이 file system이 /oracle이며

process는 약 780개 정도 돌아가고 있습니다.

과연 이 780개의 process가 돌아간다고 약 3GB의 file용량을 잡고 있다고 나올까요?



정말 급한 문제입니다.

지금 file system 85%(bdf)를 차지 하고 있기때문에 급한 문제 입니다.
3 응답 3
서보인
유치원

급한 질문하나 하겠습니다.

파일 시스템을 구성하는 vgrd, bdra,minfree 등등 이 있기 때문에

bdf와 du 의 size가 다른 것입니다.



bdf는 위의 구성요소가 차지하는 공간 까지도 사용량으로 계산하고,

du -sk 는 실제 파일의 size만 체크합니다.

따라서 bdf가 더 크게 보이는 것입니다.



현재 고민하고 계시는 부분은 bdf를 기준으로 보셔야 됩니다.
이태곤
중학생

급한 질문하나 하겠습니다.

안녕하십니까



hprc에 있는 내용입니다.

===============================

문]bdf와 du의 size가 틀리게 나옵니다

답]rm이라는 명령어는 실제로 unlink이라는 system call를 호출을 하게 됩니다

unlink의 특징은 해당 file의 reference count가 0일 될 때까지 wait되다가

reference count가 0일 때 그 file이 삭제가 되는 것입니다.



그래서 해당 file을 물고 있는 process가 떠 있는 상황에서

file을 rm으로 지우고 나면 ls를 하면 file은 삭제가 되지만 그 file의

reference는 process가 물고 있으므로 unlink가 호출이 되지 않게 됩니다.

그래서 du로는 file의 삭제된 만큼 size가 보여주지만 bdf에서는

그 size가 적용되지 않고 display가 되는 것입니다



이 문제를 해결을 위해서는 그 process를 찾아서 kill해서 reference

count를 0으로 만들고 그리고 다시 작업을 하시면 됩니다



해당 file을 물고 있는 process를 찾는 명령어는 fuser 이외에는 따로

없으며 이미 rm을 한 경우에는 실제로 file로 ls를 하면 없어져 버렸기

때문에 fuser를 하셔도 소용이 없습니다.

rm한 file을 알고계시고 그 file의 속성을 잘 알고 계시다면 그런

process를 kill하실 수 있지만 그렇지 못한 경우는

rebooting을 하시면 모든 process를 죽이고 다시 fork를 하는 경우로

가장 확실한 방법입니다.

============================



uli : List unlinked (removed) files that are still in use

라는 툴을 사용하면 어떤 프로세스때문에 그런지 알수 있다고 합니다

lsof 을 사용해도 되고요



/oracle 이니 오라클 때문에 그럴것 같은데 오라클을 재 기동하면

사용량이 줄어 들듯 합니다



그런데 85%면 별로 우려 상황은 아닌듯합니다.(오라클 엔지만 있다면)



그럼~
정우익
임시 조언자

급한 질문하나 하겠습니다.

좋은 답변에 감사드립니다.



하지만 서버에서 oracle을 재가동한다는것은 힘들것같네요

여기는 24시간 full가동하는 곳이기에..

어쨌건 답변에 감사드립니다.