rtorrent - hashowanie powoduje zaci

Tematy związane z oprogramowaniem, instalacją, konfiguracją
thx4
Posty: 45
Rejestracja: 07 lipca 2009, 13:08

rtorrent - hashowanie powoduje zacięcia systemu

Post autor: thx4 »

Podczas hashowania plików danego torrenta widać ewidentnie zacięcia systemu:
  • ruszanie myszką nie jest płynne,
  • opóźnienia podczas otwierania okien,
  • zacięcia podczas oglądania filmów, gdy w tle rtorrent hashuje jakieś pliku.
Nie wiem czy to jest normalne zachowanie rtorrent-a ale wydaje mi się że nie. Między innymi dlatego, że deluge czy transmission nie wykazują takiego zachowania a programy są cięższe. Top podczas hashowania wykazuje wyraźnie zużycie procesora na poziomie 8-12%, więc skąd te zacięcia?

Konfig rtorrent-a jest prawie nie zmieniony z domyślnego, ale na wszelki wypadek zapodam konfigurację:

Kod: Zaznacz cały

# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

# Global upload and download rate in KiB. "0" for unlimited.
#download_rate = 0
upload_rate = 25

# Default directory to save the downloaded torrents.
directory = /home/neuro/Pobrane/rtorrent

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
session = ./.rtorrent/session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=100M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"

# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no

# Port range to use for listening.
port_range = 40000-50000

# Start opening ports at a random position within the port range.
port_random = yes

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no

# Set whetever the client should try to connect to UDP trackers.
#use_udp_trackers = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
# encryption = allow_incoming,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
# 
# dht = auto

# UDP port to use for DHT. 
# 
# dht_port = 6881

# Enable peer exchange (for torrents not marked private)
#
# peer_exchange = yes

#
# Do not modify the following parameters unless you know what you're doing.
#

# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10
life
Posty: 60
Rejestracja: 03 listopada 2008, 11:00

Post autor: life »

Możesz wyłączyć haszowanie aktywując taką linijkę:

Kod: Zaznacz cały

#check_hash = no
Zainteresuj się też tym: http://libtorrent.rakshasa.no/wiki/RTor ... anceTuning

a dokładnie parametrami:

Kod: Zaznacz cały

[I]hash_read_ahead = [/I][I]X
hash_max_tries = [/I][I]Y
hash_interval = [/I]Z
yantar
Member
Posty: 1225
Rejestracja: 07 czerwca 2007, 21:15
Lokalizacja: Rzeszów

Post autor: yantar »

thx4 pisze:Top podczas hashowania wykazuje wyraźnie zużycie procesora na poziomie 8-12%, więc skąd te zacięcia?
Jeśli nie masz jakiegoś prehistorycznego procesora/sprzętu to pierwszym podejrzanym jest HDD. Brak włączonego DMA itp. Hashowanie do dość obciążający proces i trzeba mieć dość szybki sprzęt by przeminęło niezauważenie, zależy jeszcze na jakiej partycji trzymasz hashowane pliki i gdzie ona znajduje się fizycznie na dysku.
thx4
Posty: 45
Rejestracja: 07 lipca 2009, 13:08

Post autor: thx4 »

@yantar
Procesor to 2400+ Sempron. Nie jest to rakieta ale śmiga normalnie. Jeżeli to był by problem w czymś zewnętrznym a nie z rtorrentem to pewnie transmission i deluge też by dawały podobne oznaki przy haszowaniu a tak nie jest. Jest jedna partycja dla:

Kod: Zaznacz cały

hdparm /dev/hda

/dev/hda:
 multcount     = 16 (on)
 IO_support    =  1 (32-bit)
 unmaskirq     =  1 (on)
 using_dma     =  1 (on)
 keepsettings  =  0 (off)
 readonly      =  0 (off)
 readahead     = 256 (on)
 geometry      = 16383/255/63, sectors = 156368016, start = 0

df -h
/dev/hda5             9,7G  3,3G  5,9G  36% /
/dev/hda7              49G   38G  9,1G  81% /home
/dev/hda1              15G  6,9G  7,8G  48% /windows
W homie na jednej partycji wszystkie ściągania są.

@life
Też o tym myślałem. Szukając w necie znalazłem parę przykładowych ustawień. Żadne z nich nie pomogło. Skoro parę zmian nie dało choć delikatniejszej zmiany to chyba tu nie leży problem.
yantar
Member
Posty: 1225
Rejestracja: 07 czerwca 2007, 21:15
Lokalizacja: Rzeszów

Post autor: yantar »

No to ci powiem, że u mnie na Sempronie 3000 czasem przytnie hashowanie rtorrenta =]
Choć jakoś nigdy mi te parę chwil nie przeszkadzało.
thx4
Posty: 45
Rejestracja: 07 lipca 2009, 13:08

Post autor: thx4 »

Czasem? To zdecydowanie lepszy wynik niż u mnie. Robiłeś jakieś niestandardowe zmiany w konfigu? Jakieś różnice niż z tym konfigiem co umieściłem.
yantar
Member
Posty: 1225
Rejestracja: 07 czerwca 2007, 21:15
Lokalizacja: Rzeszów

Post autor: yantar »

Standardowy konfig wzięty z internetu (bodajże z serwisu jakilinux), nie mam w nim żadnych opcji odnoszących się do hashowania. Jeśli tnie ci przy hashowaniu dużych plików, to raczej nie jest to tragedia. Chyba, że pobierasz duże ilości małych to wtedy faktycznie może to być denerwujące.
ODPOWIEDZ