[이용안내] 토렌트 디스크 캐쉬설정과 과부하 목록
등록일: 2013-06-20 21:41:55
토렌트를 사용하다보면 몇번쯤은 다들 과부하를 경험해보셨을껍니다.
토렌트는 다운로드를 시작하면 먼저 하드에다가 공간을 할당하게 됩니다. 그런데 대용량파일의 경우 그 시간이 꽤 오래 걸리죠. 따라서 초반 1-2% 정도는 속도가 거의 안나오는 현상이 발생합니다. 과거에 
1.8.1 베타이전에 대용량 파일을 받을때 다운받는듯하다가 모든 업다운이 잠시 멈추는 현상이 있었습니다. 디스크에 파일을 할당하고 공간을 초기화 시키는 과정때문에 발생하는 문제였죠. 초기화 과정까지 모두 완료되야 정상업다운이 이루어지고 레이쇼에 영향을 끼치기도 하였습니다. 이 과부하를 해결하기 위해 처음으로 나왔던 방법은 예전에 Diskio.Sparse.Files 옵션을 켜주는 것이었습니다. 이 옵션은 전체 파일을 미리 할당하는 것이 아니라 받는 만큼만 부분적으로 할당하는 옵션입니다. 허나 이렇게 하면, 디스크 단편화가 많이 생기고, 파일이 쌓일 수록 하드디스크 소음이 증가하고, 속도도 감소시키는 문제를 필연적으로 불러왔습니다. 이후 나온 옵션이 Diskio.No.Zero 입니다. 이 옵션은 토렌트에서 다운 받기 시작할 때 필요한 공간을 미리 확보하는 과정을 거칩니다. 다시 말해 다운 받기전 하드공간 전체파일위치에 '0'를 채워 놓는데 diskio.no_zero를 활성화 시키면, 하드에 자리만 잡아놓고, '0'채우는 작업을 하지 않습니다. 이 작업('0' 채우기)이 없어 지면서 하드디스크 과부하를 줄여주는 것입니다.<!-- / message --> 따라서 Diskio.Sparse.Files보다 전체 파일 공간을 미리 할당하지만 초기화하지 않기 때문에,
심각한 단편화 문제도 해결하면서 동시에 대용량파일의 경우 초기에 디스크 과부하가 걸려서 속도가 나오지 않는 문제를 해결할 수 있어졌습니다. 따라서 최근 설정은



인용
한글 : 옵션 - 설정 - 고급설정 - diskio.no-zero : true
: 옵션 - 설정 - 고급설정 - diskio.Sparse.Files : false
영문 : option - preference - Advenced - diskio.no-zero : true 
영문 : option - preference - Advenced - diskio.Sparse.Files : false


제가 토렌트를 작년 12월에 설치해서 이 부분은 현재 기본으로 설정되어있는지는 모르겠지만 최근에는 이 설정이 기본으로 위의 말대로 기본으로 설정되어있을겁니다. 안되어 있다면 위의 설정을 하도록합니다.
참고로 Diskio.No.Zero에 대한 것은 말이 많습니다. 파코즈에서 보통 단편화 방지나 하드의 수명을 위해선 true설정해 두는게 좋다고 하지만 RamDisk나 SSD등 메모리를 이용한 디스크방식에는 오히려 Diskio.No.Zero을 False로 사용하는게 더 좋다고 합니다. 제가 SSD가 아니라 미쳐 확인은 못해봤지만 구글링해보니 그런 정보도 있기에 참고하실 분들은 참고하시라고 적었습니다

참고로 아래의 이미지는 
쪼꼬렛님의 토렌트 초보를 위한 utorrent 설정법,게시글 5. 디스크 과부하 보신분이라면 넘어가시고 팁을 미쳐 못 보신분이라면 참고하시기 바랍니다.


"모든 파일을 미리 할당" 이라는것은 다운받을때 파일용량만큼 미리 하드공간을 차지한다는 뜻입니다. 즉 내가 2GB의 파일을 다운받는다면 내하드에 2GB의 공간을 미리 잡아놓으면서 다른 데이터가 씌여지는 것을 방지해 디스크의 단편화는 줄일수는 있습니다. 그러나 이 옵션을 켜놓으면 
저용량파일이라면 상관없지만 대용량파일 경우에 하드공간이 부족한지도 모르고 채우넣은 과정 디스크에 파일을 할당하느라 과부하가 자주 나타나며, 고속으로 여러 파일을 업/다운 시에도 나타납니다. 

다음으로 디스크 캐쉬설정으로 넘어가겠습니다. 
디스크 캐시는 자주 사용하는 데이터를 메모리에 보관해서 하드 다스크의 사용을 줄여 줍니다. 기본적으로 토렌트가 자동 캐시 관리를 하지만 필요하면 직접 바꿀 수 있습니다.
즉 하드디스크에 부하를 메모리캐쉬로 줄여줍니다.
이것이 동작하고 있는것은 토렌트의 하단 속도탭의 디스크통계에서 보면 나옵니다.


그 다음 디스크 캐쉬 설정의 각 옵션마다 어떤 기능은 하는지 세부설명이 들어 가도록하겠습니다.

[IMG]

인용
※ 본인은 비대칭유저이고 쓸모 없는 부분에 대해선 사용하지 않았습니다. 또 이 부분에 대한 설정은 서두에서 말씀드렸듯이 의견이 분분합니다. 위 이미지는 제가 한 설정이고 절대적이지 않음을 알려드립니다. 이 설정부분은 인터넷에 떠돌아 다니는 정보를 바탕으로 제 생각을 조금 첨부해 설명하겠습니다.


기본 캐시 설정(Basic Cache Settings)

인용
"자동 캐시 크기를 무시하고 직접 지정(Override automatic cache size and specify the size manually)"

: 일반적으로 토렌트는 다운로드 속도를 바탕으로 자동적으로 캐시를 조절합니다. 이 세팅을 하면 임의로 최대 메모리를 직접 설정할 수 있습니다. 단위는 MB/s 입니다.
대부분 이 부분은 자신의 램이 1기가 램이면 512로 2기가 이상의 램이라면 1024로 설정해서 사용하십니다.
전 4기가 램을 사용중이라 1024로 사용합니다. 1024이상의 수치는 무의미 하다고 생각합니다.
<o:p></o:p>

"캐시가 필요 없으면 메모리 사용을 줄임(Reduce memory usage when the cache is not needed)"

토렌트가 데이터 전송하지 않을 때 디스크 캐시의 사용되지 않는 부분을 제거합니다. 토런트가 배포시에 메모리를 많이 사용하고 메모리 점유율이 높다면 이 부분을 가장먼저 의심해봐야 합니다. 
이 값을 끄면 자신의 램이 4기가라면 4기가램을 그대로 항상 사용합니다. 
켜면 업/다운로드속도에따라 유동적으로 4기가램 한계내에서 움직이게됩니다.

상세 캐시 설정(Advanced Cache Settings) 
<o:p></o:p>


인용
"디스크 쓰기 캐시 활성화(Enable caching of disk writes)"

: 토렌트는 디스크 기록 전에 메모리에 데이터를 저장하기 위해 디스크 캐시를 사용합니다. 이 옵션은 디스크 기록 빈도를 감소시켜 주는 효과가 있습니다.<o:p></o:p>
 단 이부분은 디스크기록빈도를 생각한다면 사용을 메모리를 생각하면 사용안하는게 좋습니다. 자신의 메모리의 여유가 충분하다면 단편화문제에 있어서도 때문에 꺼두시는게 좋겠죠 그러니 메모리점유율, 하드디스크사용빈도 이 둘중에 중요하다고 생각되는 부분에 맞게 선택하시기 바랍니다.

인용
"매 2분마다 미사용 조각 쓰기(Write out untouched blocks every 2 minutes)"

사용하면 토렌트가 생성한 16KB의 메모리 블럭에 2분 이상 접근이 없을 경우 완성되지 않은 조각을 채우지 않고 기록합니다. 이 옵션은 토렌트의 메모리 점유율을 줄여주는 효과가 있지만 디스크 기록 빈도는 증가합니다

"조각이 완성되면 즉시 쓰기(Write out finished pieces immediately)"

: 사용하시면, 토렌트가 생성한 메모리 블럭에 조각이 완성되면 즉시 디시크에 기록합니다. 앞서 말씀드렸듯이 이 옵션은 토렌트의 메모리 점유율을 줄여주는 효과가 있지만 디스크 기록 빈도는 증가합니다.또한 언체크시 캐쉬가 쌓였을 때 많이 느려지게 됩니다.


인용
"디스크 읽기 캐시 활성화(Enable caching of disk reads)"

토렌트는 사용을 위해 디스크에서 읽은 데이터를 메모리에 디스크 캐시를 이용하여 저장한 후 재요청시 사용합니다. 이 옵션은 디스크 읽기 빈도를 줄여주는 효과가 있습니다.
<o:p></o:p>

인용
"업로드 속도가 느리면 읽기 캐시 끔(Turn off read caching if the upload speed is slow)"

: 사용시, 업로드 속도가 40KB/s 미만이라면 읽기 캐시를 비활성화 합니다. 이 옵션은 토렌트의 메모리 점유율을 줄여주는 효과가 있지만 디스크 읽기 빈도는 증가합니다. 대칭 사용하시는 부분에게는 그리 크게 해당되지 않습니다

"오래된 조각을 캐시에서 제거(Remove old blocks from the cache)

: 사용시, 다른 데이터를 위한 공간 확보를 위해 디스크 읽기 캐쉬에서 10분동안 접근하지 않는 조각을 제거합니다. 이 옵션도 토렌트의 메모리 점유율을 줄여주는 효과가 있지만 디스크 읽기 빈도는 증가합니다

"캐시 한계가 오면 자동으로 캐시 크기 늘림(Increase automatic cache size when cache thrashing)"
 

: 사용 시, 디스크 읽기가 증가하면 디스크 캐시 메모리 사이즈를 증가시킵니다. 이 옵션은 대부분 업로드 속도가 빨리지면 과부하가 발생합니다. "자동 캐시 크기를 무시하고 직접 지정"를 사용하지 않는다면 이 옵션은 필요하지만 직접 지정 1024이런 식으로 지정하셨다면 체크하지 마시기 바랍니다.

인용
"윈도우즈의 디스크 쓰기 캐시 비활성(Disable Windows caching of disk writes)"

말 그대로 윈도우의 본래의 디스크 쓰기 캐시를 비활성화 시킵니다. 이 옵션은 윈도우 디스크 캐시가 토런트 사용시 빨리 다운로드 하는 동안 메모리 소실이 클 때 도와줍니다. 왜냐하면 캐시가 토런트의 증가된 디스크 쓰기 속도를 견딜수 없기때문이라고 합니다. 메모리를 모두 사용했을때, 페이지 스왑핑이 일어나며, 그리고 감속의 원인이 될수 있습니다. 다른한편으로 이 옵션의 사용은 디스크 읽기 증가의 원인되기도하며 토렌트의 디스크 캐시가 가득찼을 때 전송율이 감소됩니다
좀 광범위 하지만 요약하면 CPU의 메모리 관리방법 중 윈도우에서 사용하는 페이징의 경우 OS와 연동해서 스왑파일을 가상메모리에 포함하는데 여러가지 이유가 있지만 결론적으로 윈도우 캐시를 쓰지않고 토렌트의 캐시만을 사용하여 스왑파일을 사용하지 않기 위한 옵션입니다. 이 부분은 설명하자면 분량이 많습니다.아시는 분은 설명이 필요없을테고 모르시는 분은 대략 이해 하셨으리라 판단하고 생략합니다.<o:p></o:p>

"윈도우즈의 디스크 읽기 캐시 비활성(Disable Windows caching of disk read)"
 

: 위의 기능과 비슷합니다 말그대로 윈도우의 본래의 디스크 읽기 캐시를 비활성화 시킵니다. 
이 옵션은 윈도우 디스크 캐시가 토런트 사용시 빨리 업로드 하는 동안 메모리 소실이 클 때 도와줍니다. 왜 냐하면 캐시가 토런트의 증가된 디스크 읽기 속도를 견딜수 없기때문입니다. 역시 메모리를 모두 사용했을때, 페이지 스왑핑이 일어나며, 그리고 감속의 원인이 될수 있습니다. 다른 한편으로는, 이 옵션의 활성화는 디스크 읽기 증가의 원인될 것이며 토렌트의 디스크 캐시가 가득찼을 때 전송율이 감소할 것입니다.보통 고속다운 때문에 쓰기 개쉬만 비활성화(체크)되어있는데 읽기 캐쉬는 대칭사용자분들이 10mb/s로 고속시딩을 지속하게 된다면 비활성화(체크)하는게 메모리 누수에 도움이 됩니다. 특히 64비트 OS사용하시는 분들 중에 고속시딩 때문에 비정상적으로 메모리 사용이 증가하는 경우에는 이 부분은 체크해주시면 도움이 될겁니다.
휴...
쓰다보니 꽤 길어졌습니다. 이미지 부분에 제가 포토샵을 사용할줄 몰라 허접하게
그림판으로 밑줄을 긋거나 표시했습니다.
그 부분은 양해바라며 부족한 게시글 읽어 주시느라 애쓰셨습니다.

몇가지 추가적으로 설명하자면 

맨위에 
"자동 캐시 크기를 무시하고 직접 지정(Override automatic cache size and specify the size manually)"과부하를 위해서라면 이 설정 해놓는게 좋아요. 토렌트는 네트워크에서 받은 파일을 메모리에 임시로 저장해요. 

대부분 토렌트 사용자분들은 대칭광랜이실텐데..이 부분은 아마 Uncheck되어있다면 기본설정으로 희미하게 32Mb일꺼에요. 이 옵션에서 직접 지정하지 않고 사용한다면 사용자께서 대칭광랜이라 가정하고 10MB/s속도로 받는다면 3초정도 미리 대략 30MB겠죠 즉 30MB정도를 미리 메모리에 임시로 저장하는거죠.. 계속 고속으로 다운하는데 30mb의 양만 미리 저장하면 아무래도 과부하가 걸리겠죠 토렌트는 캐시량을 초과하면 더이상 네트워크로 부터 자료를 받지 않는 상태가 되요. 그래서 이 옵셥을 고속다운시 좀더 과부하를 줄이기 위해 직접 수치를 설정해놓는 거예요.

그리고 수치를 높게 잡아놓았다고해서 다른 프로그램의 메모리양을 잡아 먹진 않아요.(고속다운시 빼고 말이죠)
 그래서 1기가램이라면 512를(즉 초당 10mb로 다운받는다 치면 50초의 버퍼량을 500mb을 생각해 512) 2기가 이상의 사용자라면 1024이리 지정하는게 좋겠죠.
메모리여유가 충분하다면 캐시량을 높게 잡아주는게 초반속도끌어올리기에 도움이 되요.


그리고 마지막에 윈도우즈 쓰기캐쉬,읽기 캐쉬비활성화 옵션에 대해서 이 두 옵션에 잘못생각하시는분들이 계신데 쉽게 설명하자면
"윈도우즈의 디스크 쓰기 캐시 비활성(Disable Windows caching of disk writes)"는 대칭광랜의 사용자라면 고 속 다운을 위해서는 체크하는게 좋아요. 왜 윈도우를 사용하면서 메모리를 사용하고 토렌트를 사용하면서 메모리를 사용하잖아요 . 이 옵션은 사용하는 이유가(특히 고속다운시 급격히 증가된 토렌트로인해 디스크의 쓰기속도견딜수없어지는데) 토렌트 사용에 메모리를 집중한다는 뜻이에요. 고속다운시 토렌트에 사용하는 메모리 > 윈도우 사용하는 메모리 이렇게 토렌트에 사용하는 메모리가 급격하게 많아지겠죠. 즉 토렌트에 사용하는 메모리에 윈도우에 사용하는 메모리를 줄이고 좀더 토렌트에 집중하기위해서 이 옵션을 사용하는거예요

읽기 캐시 비활성화도 위의 쓰기캐시 비활성화와 마찬가지로 고속시딩(업로드)하려면 고속시딩에 좀더 집중하기 위해서 체크하는게 좋구요. 하지만 대부분 컴퓨터 하면서 다른 작업도 병행할텐데 그때는 체크해지 하는게 좋겠죠