Страница 1 из 2
Rtorrent vs SATA HDD
Добавлено: 2010-12-30 10:39:54
emlen
Доброго времени суток! С чего бы начать:) Сразу признаю некомпетентность своих действий во избежание дальнейших высказываний на этот счет, а также прошу извинить, что начну издалека:) т.к. не особо силен пока в nix'ах, а реализация некоторого функционала не ждет, то посчитал оптимальным вариант работы с pfsense с последующим прикручиванием к нему разных костылей. Итак есть одна машинка(железка скажем довольно современная), на ней я развернул pax'ом "чистый" pfsense на gmirror'ах, отдельной партицией сделал /home, включил на ней журналирование jgournal, "настроил" фаер, задействовал минимальный необходимый набор демонов ( proftpd, rtorrent), которые чрутятся как раз на этот журналируемый раздел. Итог: все более или менее работает, единственное пока не удалось полноценную виртуалку поднять с редиректом usb...но это уже другая тема. Решил перенести это "готовое решение" на машинку послабее: мать-GIGABYTE GA-8SR533, CPU: Intel(R) Pentium(R) 4 CPU 1.5GHz, в отличие от источника одноядерный, памяти на эту маму нашел тока 128 метров. И вот собственно, внимание, дисковая подсистема: 2xIDE HDD по 40GB в зеркале(если имеет занчение, в зеркалах слайсы, все кроме второго, со свапом), а злополучный /home, на котором должна была образоваться файлопомойка + закачки&раздачи p2p, я разместил на SATA HDD, подключенном через переходник к IDE разъему мамы, сначала даже его data провайдером сделал для второго журналируемого блочного устройства в моей системе, оговорюсь, объем этого винта довольно велик, не хотелось его гонять часто fsck-шкой. В итоге, эта конструкция под FreeBSD_8.1_RELEASE кое как фурычила, atacontrol показал, что этот SATA-IDE винт определился как UDMA133. А вот когда я загнал мое решение pfsense, то на системных партициях, когда /home лежит в /usr, все тоже работает, но стоит подсунуть этот винт и включить торрент клиент - комп отваливается напрочь, проц забивается на 100%. rtorrent пересобран на этой железке, правда в make.conf я указывал i386, а не Pentium 4. КАК МНЕ ЛУЧШЕ ПОСТУПИТЬ?:))) ТОКА ПО СУЩЕСТВУ, ОЧЕНЬ ПРОШУ!
Re: Rtorrent vs SATA HDD
Добавлено: 2010-12-30 14:53:04
Alex Keda
написать текст нормально, с абзацами или пустыми стркоами между отдельными мыслями.
разбить на вводную часть основную, как минимум.
ибо эту портянку я осилить не могу
Re: Rtorrent vs SATA HDD
Добавлено: 2010-12-30 15:25:15
emlen
Может еще в стихах?:))) Тока не обижайтесь:) Просто я и так старался максимально понятно изложить мыслю.... а Вы говорите вводную часть... мы же не филологию тут изучаем...
Re: Rtorrent vs SATA HDD
Добавлено: 2010-12-30 15:48:59
manefesto
пиши прозой, но с форматированием
Re: Rtorrent vs SATA HDD
Добавлено: 2010-12-30 15:54:40
emlen
Здрасте еще раз (Вышел, постучался, зашел снова:))), вот вариант №2!
1) pfsense на gmirror'ах, с /home на gjournal'e + ( proftpd, rtorrent)
Более или менее работает
2) Решил перенести это "готовое решение" на машинку послабее:
мать-GIGABYTE GA-8SR533, CPU: Intel(R) Pentium(R) 4 CPU 1.5GHz,
в отличие от источника одноядерный, памяти на эту маму нашел тока 128 метров.
3) 2xIDE HDD по 40GB в зеркале(если имеет занчение, в зеркалах слайсы, все кроме второго, со свапом) + SATA HDD, подключенном через переходник к IDE разъему мамы,под FreeBSD_8.1_RELEASE доп винт работал "исправно" с FTP, а atacontrol показал, что этот SATA-IDE винт определился как UDMA133. А вот когда я загнал на этот комп pfsense, то стоит подсунуть этот винт rtorrent'у для закачек - комп отваливается напрочь, проц забивается на 100%. rtorrent пересобран на этой железке, правда в make.conf я указывал i386, а не Pentium 4.
КУДА КОПАТЬ? В сторону учебника русского языка не отсылайте тока:)
Re: Rtorrent vs SATA HDD
Добавлено: 2010-12-30 16:11:55
Alex Keda
во. уже понятно.
======
изначально машинка какая была и загрузка какая в аналогичных условиях?
Re: Rtorrent vs SATA HDD
Добавлено: 2010-12-30 16:28:51
emlen
Изначально была, она и осталась как эталон:
Код: Выделить всё
CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (3013.01-MHz 686-class CPU)
Logical CPUs per core: 2
FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs
real memory = 536805376 (511 MB)
На ней мир не пересобирал, но многое из него, что посчитал возможным, пересобрал...
Но суть проблемы в том, что на машине-преемнике, без этого злосчастного SATA винта все отлично пашет, а он на чистой фре тоже вроде работатет нормально, но вот в комбинации с rtorrent, систему накрывает, web-интерфейс pfsens сейчас, после того как я поменял режим винта на UDMA100 вообще когда винт подключен не работает.
а начинает rtorrent качать - и только жесткий резет помогает
Re: Rtorrent vs SATA HDD
Добавлено: 2010-12-31 8:07:14
manefesto
во первых советую убрать всё лишнее из make.conf и пересобрать мир, на сколько я думал ты занимался оптимизацией
во вторых попробуй поставить udma66
в третьих поставь контроллер pci -> sata или найди нормальный переходник или можешь найти внешний бокс для своего злосчастного диска и подключить его по USB
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-02 0:54:45
emlen
- Во-первых, спасибо за ответ и с Новым Годом!!!!!:)
- Во-вторых, решил целесообразным представить код make.conf "в студию":
Код: Выделить всё
PORTSDIR?= /usr/ports
# Intel x86 architecture:
# (AMD CPUs) opteron athlon64 athlon-mp athlon-xp athlon-4
# athlon-tbird athlon k8 k6-3 k6-2 k6 k5
# (Intel CPUs) nocona pentium4[m] prescott pentium3[m] pentium-m
# pentium2 pentiumpro pentium-mmx pentium i486 i386
# (Via CPUs) c3 c3-2
# Alpha/AXP architecture: ev67 ev6 pca56 ev56 ev5 ev45 ev4
# AMD64 architecture: opteron, athlon64, nocona
# Intel ia64 architecture: itanium2, itanium
CPUTYPE?= i386
# Здесь указываем дополнительные флаги
CFLAGS=-O1 -pipe
NO_PROFILE=true # Обход построения библиотек для профилирования
# Говорим что флаги включать обязательно
NO_CPU_CFLAGS=false
NO_CPU_COPTFLAGS=false
# Отрубаем сборку ненужных библиотек и софта
# посмотреть что еще можно накрутить тут
# /usr/share/examples/etc/make.conf или чуть ниже я опишу.
MAKE_KERBEROS4=false
MAKE_KERBEROS5=false
NO_BIND=true
NO_SENDMAIL=true
NO_GAMES=true
# Документация токо для ENG и RUS
DOC_LANG=en_US.ISO8859-1 ru_RU.KOI8-R
SUP_UPDATE=
SUP= /usr/bin/csup
SUPFLAGS= -g -L 2 -z
#SUPHOST= cvsup.FreeBSD.org
SUPFILE= /etc/supfile
#PORTSSUPFILE= /usr/share/examples/cvsup/ports-supfile
DOCSUPFILE= /etc/supfile
#OVERRIDE_LINUX_NONBASE_PORTS= f10
#OVERRIDE_LINUX_BASE_PORT= f10
#LINUX_DIST_SUFFIX= -f10
#FORCE_PKG_REGISTER=yes
WITCH=BATCH=yes # не выдавать окно в котором спрашивать с чем компилировать
BATCH=yes
MASTER_SITE_OVERRIDE?= \
ftp://ftp5.ua.FreeBSD.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp7.ua.FreeBSD.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.ua.FreeBSD.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.gentoo.org.ua/distfiles/${DIST_SUBDIR}/ \
ftp://ftp2.ua.FreeBSD.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp6.ua.FreeBSD.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp8.ua.FreeBSD.org/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.linux.kiev.ua/pub/Linux/Gentoo/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.lucky.net/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR} \
ftp://ftp3.ua.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ \
ftp://ftp4.ua.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.ntu-kpi.kiev.ua/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.univ.kiev.ua/pub/FreeBSD/distfiles/${DIST_SUBDIR}/ \
ftp://ftp.univ.kiev.ua/pub/OS/FreeBSD/distfile/${DIST_SUBDIR} \
# Настройки Perl
# added by use.perl 2010-12-25 21:07:56
PERL_VERSION=5.10.1
PERL_ARCH=mach
NOPERL=no
WITH_PERL=yes
WITHOUT_PERL=no
про свой проц я писал выше, просто его зашкаливает,а мир целиком пересобирать я побаиваюсь, система, как писал ранее, не чистая фря...
- Насчет остальных советов, про USB интересный вариант, подумаю, но не очень хочется...а uddma66 ставил, было хуже чем 133, остановился на 100, вроде субъективно стабильнее... но писать на него rtorrent не даю... пока просто пользую для хранения... выставил уже настройки на торренте минимальные:
Код: Выделить всё
#минимальное число пиров на торрент
min_peers = 1
#максимальное число пиров на торрент
max_peers = 100
# Тоже что и выше, только для seed выкаченных torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50
#максимальная скорость загрузки
download_rate = 0
#максимальная скорость отдачи. 0 - не ограничена
upload_rate = 0
# Максимальное количество одновременных закачек per torrent.
max_uploads = 15
#каталог для сохранения закачек или откуда буду сидироваться торренты.
directory = /home/p2p/download/
#каталог куда будет сохраняться состояние торрентов.
#Здесь, в этом примере, они сохраняются в папку session
session = /home/p2p/session/
#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы
#и если они есть то ставит их на закачку
schedule = watch_directory,5,5,load_start=/home/p2p/auto/*.torrent
# и тормозим торрент если
# если .torrent файл удалён
schedule = untied_directory,5,5,stop_untied=
# закрываем торренты если мало места на харде
schedule = low_diskspace,5,60,close_low_diskspace=100M
#проверяет каталоги 2 и 3 на новые *.torrent файлы и сохраняет закачки в соответствующие папки
#schedule = watch_directory_2,5,5,"load_start=/home/user/torrent_auto_load_2/*.torrent,
#d.set_directory=/home/user/download2"
#schedule = watch_directory_3,5,5,"load_start=/home/user/torrent_auto_load_3/*.torrent,
#d.set_directory=/home/user/download3"
#номер порта (или нескольких портов) который открывает клиент для обмена данными
port_range = 40890-40890
#случайный выбор порта для обмена данными. В данном случае он отключён
port_random = no
#проверять хэш торрента после закачки
#check_hash = yes
#сохранять сессию
session_save = yes
#принимать зашифрованные входящие соединения, устанавливать незашифрованные исходящие соединения,
#если возвращает ошибку, повторять с шифрованием, предпочитать открытый текст после установления
#зашифрованного соединения
encryption = allow_incoming,enable_retry,prefer_plaintext
#использовать udp
use_udp_trackers = yes
#разрешить обмен пирами(если торренты не отмечены как частные)
peer_exchange = yes
scgi_port = 127.0.0.1:5000
safe_sync = yes
encoding_list = UTF-8
# кол-во памяти запрашиваемого у ядра, малое значение может вызвать
#простой дисковой подсистемы, большое к сбросу страниц памяти.
hash_read_ahead = 5
#интервал между попытками хеширования
hash_interval = 100
#кол-во попыток проверки хеша во время mincore(хер знает что это) статуса,
#перед принуждением. Нагруженные системы должны использовать меньшие
#значени для получения нормальной скорости проверки хеша.
hash_max_tries = 5
max_downloads_global = 2
но пока не решусь винт ему подсовывать снова, страааашно... думаю таки пересобрать некоторые прогаммки, в частности РТОРРЕНТ с новым make.conf
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-02 2:32:55
emlen
Главные три вопроса:
- Как снизить нагрузку на проц?
- Вытекает из первого, что делать с мэйком, миром и перекомпиляцией?
- Как снизить нагрузку на жесткий (ad) диск, кроме как сменой режима UDMA?
Новые симптомы
Добавлено: 2011-01-04 14:31:13
emlen
Что я сделал:
- Тот самый винт сделал noauto и монтирую в /home/p2p/PUBLIC
- Добавил в .rtorrent.rc: on_finished = move_complete,"execute=mv,-n,$d.get_base_path=,/home/p2p/PUBLIC/ ;d.set_directory=/home/p2p/PUBLIC/", т.о. Попытался хотябы закачанные торренты кидать на "ДУРНОЙ" винт.
- включил проверку хэша после закачки, иначе готовые закачки становятся на паузу...
ИТОГ:
- Готовая закачка кидается на винт, но при запуске проверки хэша начинаются косяки снова
- Отваливается веб интерфейс pfsense и rtorrent
- Перезапуск rtorrent демона возвращает WEB к жизни, что я никак объяснить не могу..
Спасите ПЛИЗЗЗ!!!!
Добавлено: 2011-01-11 22:02:10
emlen
Вот что происходит:
Код: Выделить всё
Jan 11 06:33:23 kernel: vm_fault: pager read error, pid 3943 (rtorrent)
Jan 11 06:33:23 kernel: vnode_pager_getpages: I/O read error
Jan 11 06:33:23 kernel: g_vfs_done():label/storage_fs[READ(offset=468491112448, length=65536)]error = 5
Jan 11 06:33:23 kernel: ad2: FAILURE - READ_DMA48 timed out LBA=915021830
Jan 11 06:33:17 kernel: ad2: TIMEOUT - READ_DMA48 retrying (0 retries left) LBA=915021830
Jan 11 06:33:12 kernel: ad2: TIMEOUT - READ_DMA48 retrying (1 retry left) LBA=915021830
Что можно сделать с этим LBA=915021830 удаленно по ssh? На нем все время вылетает...
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-12 8:16:11
manefesto
менять винт
ВОт как-то так...
Добавлено: 2011-01-12 9:38:34
emlen
manefesto писал(а):менять винт
Хм.. Эт понятно, но хотелось бы попробовать его (LBA=915021830) badsect-ором припрятать? Не силен в высоких материях, и тут номер сектора не знаю как посчитать...

Тут че-то как-то много неизвестных:)) Поможите разобраться!
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-12 10:04:31
manefesto
поищи на опеннете, там было решение
_http://
www.opennet.ru/tips/info/1720.shtml
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-12 10:20:58
emlen
Класс, то что нужно, ОГРОМНОЕ СПАСИБО!!!
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-15 13:40:30
emlen
Появилось парочка вопросов:
1) Если фс монтируется как
Код: Выделить всё
%glabel status | grep storage
label/storage_fs N/A ad2s1g
%mount | grep storage
/dev/label/storage_fs on /usr/home/p2p/STORAGE (ufs, local, soft-updates)
%fdisk -s /dev/ad2 | grep 1:
1: 63 976770963 0xa5 0x00
%disklabel /dev/ad2s1 | grep g:
g: 976770900 63 4.2BSD 2048 16384 28552
, то какими должны быть пересчеты? BAD = findblk (LBA-63-63)? Если да, то почему findblk ничего не находит, а badsect добавляет BAD тока после монтирования ad2 в /mnt, по лэйблу не хочет...
2) dd после добвления бэда при чтении снова вызывает i/o ошибку на том-же LBA, так должно быть?
ТИШЬ ДА ГЛАДЬ....
Добавлено: 2011-01-16 19:51:53
emlen
Люди!!!! Ау!!!!! Есть кто-нибудь живой!!!??
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-16 20:16:33
Alex Keda
да
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-16 22:19:55
emlen
Тогда как насчет помочь ближнему?:)))
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-17 8:30:11
manefesto
тему читал которую я высылал ?
ссылку на опеннет
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-17 10:03:39
emlen
Конечно, я же отчитался о своих действиях... Там ничего не было про мои 2 вопросика...
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-17 10:32:52
manefesto
а ты делал
иначе он тебе не даст записатть
Re: Rtorrent vs SATA HDD
Добавлено: 2011-01-17 10:41:22
emlen
так а разницы никакой, по лэйблу монтировать или нет? Так-то он дал... в mnt из dev када примонтил.. но dd всеравно выбивает... а новые када искать начал - не находятся после пересчетов...
Вот мой порядок действий:
Добавлено: 2011-01-17 11:53:28
emlen
Код: Выделить всё
%glabel status | grep storage
label/storage_fs N/A ad2s1g
%mount | grep storage
/dev/label/storage_fs on /usr/home/p2p/STORAGE (ufs, local, soft-updates)
# Выявляем полный список сбойных секторов, путем чтения всех данных с диска:
dd if=/dev/ad2 of=/dev/null bs=512 conv=noerror,sync
>> FAILURE - READ_DMA timed out LBA=*
# Проверяем, каждый участок еще раз:
dd if=/dev/ad2 of=/dev/null bs=512 count=1 skip=<LBA> conv=noerror,sync
# Смотрим и примерно вычисляем номер раздела на который приходится сбойный сектор (LBA):
%fdisk -s /dev/ad2 | grep 1:
# Part Start Size Type Flags
1: 63 976770963 0xa5 0x00
# Расчитываем смещение относительно начала раздела:
1) 915021887-63=915021824
2) 915021886-63=915021823
3) 915021885-63=915021822
4) 915021883-63=915021820
5) 915021882-63=915021819
6) 915021881-63=915021818
7) 915021880-63=915021817
8) 915021878-63=915021815
9) 915021830-63=915021767
# Смотрим и примерно вычисляем слайс на который приходится сбойный сектор
# /dev/ad2s1
%disklabel /dev/ad2s1 | grep g:
# size offset fstype [fsize bsize bps/cpg]
g: 976770900 63 4.2BSD 2048 16384 28552
# Расчитываем смещение относительно начала раздела:
1) 915021824-63=915021761
2) 915021823-63=915021760
3) 915021822-63=915021759
4) 915021820-63=915021757
5) 915021819-63=915021756
6) 915021818-63=915021755
7) 915021817-63=915021754
8) 915021815-63=915021752
9) 915021767-63=915021704
# Находим иноду, которой принадлежит заданный блок:
fsdb -r /dev/ad2s1g
1) findblk 915021761 : 16604164
2) findblk 915021760 : -
3) findblk 915021759 : -
4) findblk 915021757 : -
5) findblk 915021756 : -
6) findblk 915021755 : -
7) findblk 915021754 : -
8) findblk 915021752 : -
9) findblk 915021704 : -
%sysctl kern.geom.debugflags=16
# ремапить как выяснилось не вариант...
# badsect /usr/home/p2p/STORAGE/BAD 16604164 не попер, чет там руганулся что найти не может такой блок..вроде..
%umount /usr/home/p2p/STORAGE/
%mount /dev/ad2s1g /mnt
%badsect /mnt/BAD 16604164
%fsck -y /dev/ad2s1g
INCORRECT BLOCK COUNT I=60669953 (0 should be 4)
%sysctl kern.geom.debugflags=0
ГДЕ Я ЧТО НЕ ТАК СДЕЛАЛ?