분류

2021년 10월 10일 일요일

첫 nas 구매 2.TORRENT 다운로드 속도 향상 시키기

개요

torrent의 속도가 이상하게 평소 pc로 받던 것보다 느려서 telnet을 통해 환경 설정을 하는 방법을 찾아보았습니다. 

 

telnet을 통한 torrent 환경 변경 

torrent를 다운로드 하는 transmission deamon의 속도를 높이려면 telnet을 통해 settings.json 파일을 변경해야 합니다. 하지만 확인 결과 환경 파일이 아닌 프로세스를 호출하는 프로그램에서 직접 파라미터로 제어하는 것이 확인 되었습니다. 따라서 이 부분 중 수정할 수 있는 부분에 대해 순차적으로 기술하도록 하겠습니다. 

torrent 설정이 잘못되었을 경우나 torrent가 실행 안될 경우 
혹은 crontab에 등록되있는 토렌트 명령 /etc/rss.sh 를 실행했을때 
아래와 같은 오류가 뜬다면 

-ash: /usr/python3/bin/flexget: not found

토렌트 다운로드 디스크에 있는 3개의 폴더를 지워야 합니다. 
.rss_cfg 
.session 
.python  
그리고 다음 명령을 통해 flexget을 다시 설치해주세요 
/bin/sh /etc/rss.sh

이후 nas 관리자 화면에서 토랜트를 중지했다가 재 시작해야 합니다. 

가. putty 다운로드 

먼저 putty라는 도구를 다운로드 받아야 합니다. 콘솔 기반의 인터페이스기에 초보자는 조금 어렵게 느껴질 수 있습니다. 

putty다운로드 링크 <--클릭

putty 다운로드 페이지

상위 링크에 가시면 windows나 arm 기반의 버전별로 다운로드를 지원합니다. 자신의 os버전에 맞게 다운로드 하셔서 설치하시기 바랍니다. 별다른게 없으니 그냥 다음 다음 누르면 끝납니다. 


나. nas4dual 관리 페이지 설정 

관리 페이지에서는 다음 일을 수행합니다. 이미 아시는분은 지나치셔도 좋습니다. 
torrent저장 폴더 생성 -> torrent 설정 -> telnet설정 

1) torrent 폴더 생성 

우선 메뉴에서 폴더/사용자 관리를 열어 폴더 관리 메뉴로 들어갑니다. 다음으로 원하는 디스크를 선택하고 새 폴더를 누르면 폴더명칭과 폴더에 할당할 서비스를 선택할 수 있습니다. 설정을 다 하신후 저장해주세요. 


저는 윈도우 공유와 ftp만 선택하였습니다. 다른 서비스는 사용하지 않습니다. 


2) torrent 설정 

다음으로 torrent 관리 -> torrent 설정으로 들어가셔서 torrent 다운로드를 실행상태로 만들고 완료목록 자동삭제, 원격 GUI지원 등을 클릭하신 후 조금 전에 만든 torrent 폴더를 다운로드 폴더로 지정하여주세요. 그리고 저장을 하면 torrent에 대한 기본 설정은 끝납니다. 

3) telnet설정 

다음으로 telnet 설정입니다. telnet을 해야 torrent의 속도를 변경할 수 있어요. 

메뉴의 시스템 설정 -> 기타 설정으로 들어가셔서 화면 중앙에 있는 telnet 부분을 클릭하시고 telnet설정을 실행으로, 그리고 root 비밀번호를 입력하신 후 저장하기를 눌러주세요. telnet은 보안에 취약하기 때문에 사용 후 다시 실행중단으로 꼭 변경해주세요 

다. putty 접속 및 torrent 환경 파일 변경 

다음으로 처음 설치한 putty를 선택하셔서 Host Name에 nas 서버 ip를 넣고 port에 23을 입력 후 접속합니다. 



위와 같이 콘솔 창이 열리면 처음에는 root라고 입력하고 엔터, 그 다음은 좀전에 설정한 비밀번호를 누르고 엔터를 치시면 됩니다. 

관리자 권한을 획득한 후 /usr/hddapp/sbin 폴더로 들어가 파일 목록을 확인합니다. 
다음 명령을 차례로 수행하면 아래와 같은 결과를 볼 수 있습니다.
su 엔터 
cd /usr/hddapp/sbin 
ls -la 
localhost> su 

/# cd /usr/hddapp/sbin

/ # ls -la
drwx------    2 root     root        12288 Jul 27 17:53 lost+found
drwxr-xr-x    8 root     root        14700 Oct  9 20:14 dev
drwxr-xr-x   19 root     root         1024 Oct  9 21:14 .
drwxr-xr-x   10 root     root         1024 Oct 10  2021 var
drwxr-xr-x    2 root     root         1024 Oct 10  2021 temp
drwxr-xr-x    3 root     root         1024 Oct 10  2021 syscache
drwxr-xr-x    4 root     root         6144 Jul 27 17:53 lib
dr-xr-xr-x  239 root     root            0 Jan  1  1970 proc
dr-xr-xr-x   12 root     root            0 Oct 10  2021 sys
drwxr-xr-x   11 root     root         1024 Oct  9 20:30 usr
-rw-------    1 root     root         1024 Oct  9 20:46 .rnd
drwxr-xr-x    3 root     root         1024 Oct  9 21:32 tmp
lrwxrwxrwx    1 root     root           11 Jul 27 17:53 linuxrc -> bin/busybox
drwxr-xr-x    4 root     root         1024 Oct 10  2021 mnt
drwxr-xr-x    2 root     root         1024 Jul 27 17:53 bin
drwxr-xr-x    7 root     root            0 Oct  9 21:32 system
drwxr-xr-x   21 root     root         3072 Oct  9 21:12 etc
drwxr-xr-x    2 root     root         1024 Jul 27 17:53 root
drwxr-xr-x   19 root     root         1024 Oct  9 21:14 ..
drwxr-xr-x    4 root     root         1024 Oct  9 18:07 home
drwxr-xr-x    2 root     root         3072 Oct 10  2021 sbin


위에 보이는 파일 목록 중 transmission-deamon 이라는 파일과 transmission-remote 라는 두개의 파일이 토랜트를 전송해주는 프로그램입니다. 그 중 remote는 원격앱을 통한 제어를 지원해주는 프로그램이고 deamon은 다운로드를 수행해주는 프로그램입니다. 

ps -ef 명령을 통해 좀 더 자세히 보겠습니다. 
18169 root      22120 S   /usr/hddapp/sbin/transmission-daemon -c /mnt/HDD1/torrent -w /mnt/HDD1/torrent -g /mnt/HDD1/torrent/.session -L 300 -l 50 -X 1 -s 100000 -S 100000 -FD -p 9091 -t -u 사용자 -v 비밀번호
호출할 때 옵션을 주는 것이 해당 파일을 호출하는 스크립트 파일을 찾아야 할 것 같습니다. 이 스크립트의 옵션은 -L 300이 최대 시드 -l이 토랜트 하나당 시드 -s가 다운로드 -S가 업로드입니다. 

기본값 인 0으로 무제한 다운로드, 업로드 속도에 대한 설정을 수행 할 경우 100,000 KB/s 가 설정 되는데 일반적인 가정 통신 속도로 환산을 해보면 800Mbps 에 해당합니다. 원래는 설정을 변경하지 않아도 다운로드 속도가 잘 나와야 하는데. 제 nas는 느려도 너무 느립니다. 토랜트 모두를 합쳐서 10MB/s밖에 나오지 않습니다. 

torrent 다운을 담당하는 transmission의 프로세스ID는 위 그림에서 제일 위에 나온 18169 입니다. 프로세스 ID는 프로그램을 실행할 때 마다 순차적으로 자동 증가하므로 ps 명령을 통해 조회해보지 않으면 알 수 없습니다.  

토랜트 트랜스미션 프로세스 조회 커맨드: ps -ef | grep trans 

여기서 ps 는 프로세스 조회 명령 -ef 는 상세정보 | grep 는 해당 정보만 조회 trans는 transmission-deamon 중 앞자리만 쓴 것 입니다. 

여기저기 파일을 뒤적여본 결과  /etc/property/Torrent.set 파일에 토랜트의 최고 속도는 지정되지만 그외의 정보는 찾을 수 컴파일이 되어 있는지 아무리 검색을 해도 나오지 않았습니다. 그래서 vi 편집기를 통해 여러 설정을 해 보았습니다.
vi /etc/property/Torrent.set

run=1
max_down_rate=50000000
max_up_rate=0
down_folder=/HDD1/torrent
count=0
min_peer=200
pex=1
auto_delete=1
seeding=0
gui_run=1
id=사용자
passwd=비밀번호
port=9091
upnp_enable=0
102412

실제 수행은 ps -ef | grep transmission-daemon 
명령을 통해 나온 프로세스 id를 kill 명령을 통해 종료시키니 자동으로 재시작 되었습니다. 
그리고 아래와 같이 정상적으로 적용 다운로드 속도만 50Gbps로 정상적으로 추가되었습니다. 어차피 안될거 뻥튀기좀 해줍니다. 
##프로세스 삭제 
kill -9 프로세스id
##수행결과 
19055 root      46988 S   /usr/hddapp/sbin/transmission-daemon -c /mnt/HDD1/torrent -w /mnt/HDD1/torrent -g /mnt/HDD1/torrent/.session -L 300 -l 50 -X 1 -s 50000000 -S 100000 -FD -p 9091 -t -u 사용자 -v 비밀번호-A



토랜트 다운로드 속도는 web 인터페이스 상으로 합계 20MB/s 정도가 나옵니다. 정확한 타임을 제어 보지 않았으나 10여개 파일을 테스트 해봤는데 최대 26300KB/s가 나왔으며, 국내 피어가 많은 예능 프로의 torrent는 약 2GB 파일이 30초 이내에 받아집니다. PC에서 받던 속도와 다르지 않습니다. 국내 파일을 받을 경우 약 20000KB/s 속도가 나옵니다. 최대 속도 설정이 100,000KB/s로 500Mbps에서 나올 수 있는 최대 속도는 /8해서 64MB/s입니다. 이전 받던 속도는 30~40MB/s 정도였습니다. 기본 무제한으로 설정할 경우 100000KB/s인 100MB/s가 최대인데 왜 1/10밖에 나오지 않는지는 의문입니다. 



2021.10.15 nas를 구매한지 2주만에 link aggrigation이 지원되는 장비로 변경하였습니다. 

LINK AGGRIGATION 적용시 29.77MB


500Mbps 회선 link aggregation 적용시 30MB/s나옵니다.
인터넷 회선을 업그레이드 하고 싶지만. 지속적으로 돈이 나가는걸 좋아하지 않기에 여기서 멈추겠습니다.  


arm 보드용 grep 명령이 하위 폴더 파일을 찾지 못하는 관계로 관련된 모든 폴더와 프로세스를 뒤져가며 약 6시간을 보냈습니다. 노력은 배신하지 않는군요 ㅎㅎ.  

아쉬운 점도 있습니다. 해외 파일의 경우 구성되는 경우 피어의 수가 많지 않고 15, 16정도에 머무르며 낮은 속도를 유지합니다. pc에서 파일당 피어수 200씩 주고 작업할때랑은 다르게 느립니다. 이 부분은 조금 아쉽습니다. 

또한 재부팅을 했을 경우에도 해당 파라미터는 유효하며 web 인터페이스에서도 수정은 불가능 하지만 해당수치로 표시됩니다. 

시드 부분도 변경할 수 있는 분이 계시면 알려주시면 감사하겠습니다. 이런건 솔직히 제조사에서 해서 나와야 하는거 아닌가 하네요 


기타 . transmission-deamon에서 설정할 수 있는 것들 

아쉬운점은 트랜스 미션 데몬에서 설정할 수 있는 변수들을 모두 만질 수있다면 최적의 속도를 만들 수 있는데... 그렇지 못한 것이 아쉽습니다. 

명령을 통해 트랜스미션에 대한 환경 목록을 조회할 수 있습니다. 그중 다운로드 속도와 관련된 녀석을 붉게 칠하고 설명을 하겠습니다. 
transmission-daemon --help
/usr/hddapp/sbin # transmission-daemon --help
transmission-daemon은 헤드리스 전송 세션입니다.
원격 전송을 통해 제어할 수 있는
또는 웹 인터페이스.

사용법: transmission-daemon [옵션]

옵션:
 -h --help 이 도움말 페이지를 표시하고 종료
 -a --allowed <list> 허용된 IP 주소. (기본:
                                         127.0.0.1)
 -b --blocklist 피어 차단 목록 활성화
 -B --no-blocklist 피어 차단 목록 비활성화
 -c --watch-dir <디렉토리> 새 .torrent 파일을 감시할 위치
 -C --no-watch-dir watch-dir 비활성화
      --incomplete-dir <디렉토리> 새 급류를 저장할 위치
                                         그들은 완전하다
      --no-incomplete-dir 불완전한 토렌트를 저장하지 마십시오.
                                         다른 위치
 -d --dump-settings 설정을 덤프하고 종료
 -e --logfile <filename> 로그 메시지를 이 파일 이름으로 덤프합니다.
 -f --foreground 대신 포그라운드에서 실행
                                         악마화
 -g --config-dir <경로> 구성 파일을 찾을 위치
 -p --port <포트> RPC 포트(기본값: 9091)
 -s --speed-limit-down <limit> 최대 다운로드 속도
 -S --speed-limit-up <limit> 최대 업로드 속도
 -A --no-allowed 허용된 IP 주소를 비활성화합니다. (기본:
                                         127.0.0.1)
 -t --auth 인증 필요
 -T --no-auth 인증을 요구하지 않음
 -u --username <username> 인증을 위한 사용자 이름 설정
 -v --password <password> 인증을 위한 비밀번호 설정
 -V --version 버전 번호를 표시하고 종료
      --log-error 오류 메시지 표시
      --log-info 오류 및 정보 메시지 표시
      --log-debug 오류, 정보 및 디버그 메시지 표시
 -w --download-dir <경로> 다운로드한 데이터를 저장할 위치
      --paused 시작 시 모든 토렌트 일시 중지
 -o --dht 분산 해시 테이블(DHT) 활성화
 -O --no-dht 분산 해시 테이블(DHT) 비활성화
 -y --lpd 로컬 피어 검색(LPD) 활성화
 -Y --no-lpd 로컬 피어 검색(LPD) 비활성화
      --utp 피어 연결을 위한 uTP 활성화
      --no-utp 피어 연결에 대한 uTP 비활성화
 -P --peerport <port> 들어오는 피어의 포트(기본값:
                                         52413)
 -m --portmap NAT-PMP 또는 UPnP를 통한 포트 매핑 활성화
 -M --no-portmap 포트 매핑 비활성화
 -L --peerlimit-global <limit> 전체 피어의 최대 수
                                         (기본값: 200)
 -l --peerlimit-torrent <limit> 토렌트당 최대 피어 수
                                         (기본값: 50)
 -er --encryption-required 모든 피어 연결을 암호화합니다.
 -ep --encryption-preferred 암호화된 피어 연결 선호
 -et --encryption-tolerated 암호화되지 않은 피어 연결 선호
 -i --bind-address-ipv4 <ipv4 addr> 피어 연결을 수신 대기할 위치
 -I --bind-address-ipv6 <ipv6 addr> 피어 연결을 수신 대기할 위치
 -r --rpc-bind-address <ipv4 addr> RPC 연결을 수신할 위치
 -R --chroot <dir> 루트 디렉토리 설정
 -U --user <user> 권한 변경을 위한 사용자 설정
 -G --group <그룹> 권한 변경을 위한 그룹 설정
 -fd --fake-daemon 가짜 데몬 모드 활성화
 -FD --no-fake-daemon 가짜 데몬 모드 비활성화
 -gsr --global-seedratio ratio 재정의되지 않는 모든 토렌트
                                         토렌트별 설정, 다음까지 시드해야 함
                                         특정 비율
 -GSR --no-global-seedratio
                                         토렌트별 설정, 시드해야 함
                                         비율에 관계없이
 -x --pid-file <pid-file> PID 파일 활성화
 -X --message-level <레벨> 메시지 레벨

3가지 변수가 토랜트 다운로드 속도와 연관된 항목 입니다. 
-s   --speed-limit-down     <limit>     Max download speed
기본값은 10000으로 되어있는데 이게 10메가 바이트입니다. 따라서 본인이 할당하고 싶은 대역 만큼 넣으시면 됩니다. 앞에 1도 고정이 아니기 때문에 본인이 원하는 만큼 넣으면 됩니다. 


댓글 7개:

  1. 글 너무 잘 보았습니다!

    답글삭제
  2. 감사합니다
    쉬운 설명에 자세한 내용까지 덕분에 토렌속도 업 되었습니다

    답글삭제
    답글
    1. 아이구 속도가 증가 되었다니 다행이네요 ㅎㅎ 읽어주셔서 감사합니다

      삭제
  3. 좋은 정보 감사합니다. nas4 사용중인데 요즘 버전에선 웹ui 에서 속도설정이 가능하네요.

    답글삭제
    답글
    1. 아 콘솔로 하는 이유가 제가 구매했던 당시 nas4dual의 최대 다운로드 설정이 10000Kb였기에 리미트를 해제하려고 한거에요

      삭제
    2. 지금도 리미트 100Mb/s인데요?;;; 콘솔 써야 더 빨라짐;

      삭제