IPB

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
XBT: баги или фичи?, Я дурак или сани не едут
natan
сообщение 6.10.2009, 17:16
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 8
Регистрация: 16.1.2009
Пользователь №: 259



CODE
# uname -a
FreeBSD kaari-tst 7.0-RELEASE-p3 FreeBSD 7.0-RELEASE-p3 #0: Mon Jul 28 14:42:17 MSD 2008 GENERIC i386

работает:
/usr/local/sbin/xbt_tracker --conf_file /usr/local/etc/xbt_tracker.conf -p /var/run/xbt_tracker.pid

исходники сегодня качал из репозитория trunk ветвь


Все гуд, но возникло неско вопросов:
1) чистка таблиц тут как-то предусмотрена, или надо прикручивать костыль?
CODE
mysql> select fid,leechers,seeders,completed,flags,from_unixtime(mtime),from_unixtime(ctime) from xbt_files;
+-----+----------+---------+-----------+-------+----------------------+----------------------+
| fid | leechers | seeders | completed | flags | from_unixtime(mtime) | from_unixtime(ctime) |
+-----+----------+---------+-----------+-------+----------------------+----------------------+
| 1 | 1 | 0 | 0 | 0 | 2009-10-06 17:34:51 | 2009-10-06 16:23:41 |
| 2 | 0 | 0 | 0 | 0 | 2009-10-06 17:59:17 | 2009-10-06 16:23:41 |
| 3 | 0 | 1 | 0 | 0 | 2009-10-06 17:21:17 | 2009-10-06 16:23:56 |
+-----+----------+---------+-----------+-------+----------------------+----------------------+

для раздачи ID=2 я посылал stop, но ее хеш остался в БД. Для прозрачного публичного трекера это ИМХО недопустимо

2) раздача ID=3 (см таблицу выше)
не посылал stop, а просто прекратил посылать аннонсы(эмуляция потери сети клиента, или аварийный выход)
Уже как 40+ минут у этой раздачи, где я был единственным пиром, висит в статистике сид

3) как я понял, список пиров в памяти висит, а не в БД?
CODE
mysql> show tables;
+---------------------+
| Tables_in_xbt |
+---------------------+
| xbt_announce_log |
| xbt_config |
| xbt_deny_from_hosts |
| xbt_files |
| xbt_files_users |
| xbt_scrape_log |
| xbt_users |
+---------------------+
7 rows in set (0.00 sec)

mysql> show table status where rows>0;
+------------+....
| Name |...
|+------------+...
| xbt_config |...
| xbt_files |...
+------------+...
2 rows in set (0.00 sec)


4) понимаю как следствие пункта 3: рестарт xbt влечет к потере информации о пирах



конфиг прилагаю
CODE
# cat /usr/local/etc/xbt_tracker.conf
mysql_host = localhost
mysql_user = xbt
mysql_password = secret
mysql_database = xbt
pid_file = /var/run/xbt_tracker.pid
announce_interval = 1800
anonymous_connect = 1
anonymous_announce = 1
anonymous_scrape = 1
auto_register = 1
clean_up_interval = 300
daemon = 1
debug = 1
full_scrape = 0
gzip_debug = 0
gzip_scrape = 0
listen_ipa = 192.168.27.242
listen_port = 80
log_access = 0
log_announce = 0
log_scrape = 0
read_config_interval = 60
read_db_interval = 60
redirect_url = http://www.url.ru
scrape_interval = 0
table_announce_log = xbt_announce_log
table_files = xbt_files
table_files_users = xbt_files_users
table_scrape_log = xbt_scrape_log
table_users = xbt_users
write_db_interval = 10





Может я что не так делаю? ну не хочется переезжать обратно на php скрипты
Перейти в начало страницы
 
+Цитировать сообщение
natan
сообщение 6.10.2009, 17:19
Сообщение #2


Новичок
*

Группа: Пользователи
Сообщений: 8
Регистрация: 16.1.2009
Пользователь №: 259



upd:
пока писал пост, пир вычистился(см выше пункт 2)
Код
mysql> select fid,leechers,seeders,completed,flags,from_unixtime(mtime),from_unixtime(ctime) from xbt_files;
+-----+----------+---------+-----------+-------+----------------------+----------------------+
| fid | leechers | seeders | completed | flags | from_unixtime(mtime) | from_unixtime(ctime) |
+-----+----------+---------+-----------+-------+----------------------+----------------------+
|   1 |        1 |       0 |         0 |     0 | 2009-10-06 18:05:00  | 2009-10-06 16:23:41  |
|   2 |        0 |       0 |         0 |     0 | 2009-10-06 17:59:17  | 2009-10-06 16:23:41  |
|   3 |        0 |       0 |         0 |     0 | 2009-10-06 18:09:49  | 2009-10-06 16:23:56  |
+-----+----------+---------+-----------+-------+----------------------+----------------------+
3 rows in set (0.00 sec)

гуд


но другие вопросы остались sad.gif
Перейти в начало страницы
 
+Цитировать сообщение
FreeM@N
сообщение 6.10.2009, 17:45
Сообщение #3


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



Цитата(natan @ 6.10.2009, 18:16) *
1) чистка таблиц тут как-то предусмотрена, или надо прикручивать костыль?

Код
clean_up_interval = 300

Ни о чём не говорит?

Цитата(natan @ 6.10.2009, 18:16) *
для раздачи ID=2 я посылал stop, но ее хеш остался в БД. Для прозрачного публичного трекера это ИМХО недопустимо

2) раздача ID=3 (см таблицу выше)
не посылал stop, а просто прекратил посылать аннонсы(эмуляция потери сети клиента, или аварийный выход)
Уже как 40+ минут у этой раздачи, где я был единственным пиром, висит в статистике сид

Спросите у разработчика, может это тоже как-то настраивается.

Цитата(natan @ 6.10.2009, 18:16) *
3) как я понял, список пиров в памяти висит, а не в БД?
4) понимаю как следствие пункта 3: рестарт xbt влечет к потере информации о пирах

Правильно понимаете, за счёт памяти и достигается такое быстродействие.

Цитата(natan @ 6.10.2009, 18:16) *
Может я что не так делаю? ну не хочется переезжать обратно на php скрипты

Не переезжайте, XBTT лучший smile.gif

P.S.: Уменьшите ваши сообщения по ширине!


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
natan
сообщение 6.10.2009, 18:33
Сообщение #4


Новичок
*

Группа: Пользователи
Сообщений: 8
Регистрация: 16.1.2009
Пользователь №: 259



Цитата(FreeM@N @ 6.10.2009, 18:45) *
Код
clean_up_interval = 300

Ни о чём не говорит?

говорит smile.gif но про 40 минут я не зря писал. Хотя, если это не секунды, то это уже не 5 минут.
И, если есть у кого, подробная расшифровка конфига(например, что подразумевается под clean_up_db, как поведет себя xbtt при mysql_host = - итд итп), поделитесь, если не сложно. Ну уж очень не хочется(скорее некогда) сорцы читать.

Цитата(FreeM@N @ 6.10.2009, 18:45) *
Спросите у разработчика, может это тоже как-то настраивается.

Ну, судя по багтрекеру, спрашивать смысла нет.

придется по крону что-то типа
delete from table where leechers =0 and seeders=0;
или, действительно полистать сорцы, и отключить базу за ненадобностью, если позволяет это функционал

Цитата(FreeM@N @ 6.10.2009, 18:45) *
Правильно понимаете, за счёт памяти и достигается такое быстродействие.

вопрос в оптимальности хранения данных, отсутствии ненужных "ошметков" данных, и утечек памяти.
видел на этом форуме разговоры про то, что xbtt падает периодически.
Перейти в начало страницы
 
+Цитировать сообщение
natan
сообщение 6.10.2009, 18:49
Сообщение #5


Новичок
*

Группа: Пользователи
Сообщений: 8
Регистрация: 16.1.2009
Пользователь №: 259



а если mysql_host=-
то неприятная вещи выскакиевает:
Код
Process 18747 attached - interrupt to quit
gettimeofday({...}, NULL)               = 0
select(6, [?], [?], [?], {...})         = 1 ()
gettimeofday({...}, NULL)               = 0
accept(4, {...}, 0xbfbfdcc8)            = 6
ioctl(6, FIONBIO, 0xbfbfdc74)           = 0
recvfrom(6, "GET /st HTTP/1.1\r\nHost: 192.168."..., 4096, MSG_NOSIGNAL, NULL, NULL) = 425
sendmsg(6, {msg_name(168636980)={...}, msg_iov(1701265709)=0xbfbfdb68, msg_controllen=1769631565, msg_control=0x203a746e, , msg_flags=MSG_DONTROUTE|MSG_CTRUNC|MSG_EOR|MSG_WAITALL|0x2f616c00}, MSG_NOSIGNAL) = 1290
close(6)                                = 0
accept(4, 0xbfbfdca8, 0xbfbfdcc8)       = -1 EAGAIN (Resource temporarily unavailable)
select(6, [?], [?], [?], {...})         = 0 (Timeout)
gettimeofday({...}, NULL)               = 0
select(6, [?], [?], [?], {...})         = 0 (Timeout)
gettimeofday({...}, NULL)               = 0
poll(0xbfbfda94, 1, 0)                  = 0
write(3, "4\0\0\0\3select `uid`, torrent_pass_"..., 56) = 56
read(3, "\1\0\0\1\0021\0\0\2\3def\3xbt\txbt_users\txbt_"..., 16384) = 163
select(6, [0 2 4 5], [], [3 4 5], {1853321060, 1684107116}) = 0 (Timeout)
gettimeofday({1057776741, 5120}, NULL)  = 0
select(6, [], [0 2 4 5], [0 1 2 5], {0, 0}) = 0 (Timeout)
gettimeofday({0, 0}, NULL)              = 0
select(6, [], [], [], {0, 0})           = 0 (Timeout)
gettimeofday({0, 0}, NULL)              = 0
select(6, [], [], [], {0, 0})           = 1 ()

то есть, как я понял, к мускулю xbtt продолжает пытаться биться. или по крайней мере, складировать куда-то запросы, для последующего выполнения
Перейти в начало страницы
 
+Цитировать сообщение
FreeM@N
сообщение 6.10.2009, 19:20
Сообщение #6


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



Цитата(natan @ 6.10.2009, 19:33) *
вопрос в оптимальности хранения данных, отсутствии ненужных "ошметков" данных, и утечек памяти.

Это уже на паранойю похоже...XBTT отличный трекер. Гораздо лучше любых PHP-шных реализаций. Ставьте и пользуйте.
У вас сколько торентов? Миллион хоть есть?

Цитата(natan @ 6.10.2009, 19:33) *
видел на этом форуме разговоры про то, что xbtt падает периодически.

Падает оно если установлено на Windows. Не слышал чтобы падало на *nix системах.



--------------------
Перейти в начало страницы
 
+Цитировать сообщение
natan
сообщение 7.10.2009, 10:27
Сообщение #7


Новичок
*

Группа: Пользователи
Сообщений: 8
Регистрация: 16.1.2009
Пользователь №: 259



ну, как поставлю, на продакшн посмотрю сколько торрентов будет в таблице(хотя крон-чистку все равно буду делать)

обычно в онлайне около 40-50к пиров, аннонсов 100-150 в сек
Аа, ну если под никсами падений не было зарегистрировано, то гуд smile.gif
Перейти в начало страницы
 
+Цитировать сообщение
FreeM@N
сообщение 7.10.2009, 14:25
Сообщение #8


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



40-50к пиров это как семки грызть для XBTT, у меня такое работало на стареньком целероне с 512 метрами оперативы под завязку забитыми всяческими сервисами (нужными).


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
FreeM@N
сообщение 9.10.2009, 11:04
Сообщение #9


Активный участник
***

Группа: Главные Админы
Сообщений: 661
Регистрация: 15.12.2008
Из: Москва
Пользователь №: 15



Цитата(natan @ 6.10.2009, 18:16) *
не посылал stop, а просто прекратил посылать аннонсы(эмуляция потери сети клиента, или аварийный выход)
Уже как 40+ минут у этой раздачи, где я был единственным пиром, висит в статистике сид


Кстате заметил такое же поведение на т.ру - отвалился инет, а раздачи так и висят, хотя уже 2 часа прошло, может просто так и задумано? и таймаут при обрыве гораздо больше времени анонса...


--------------------
Перейти в начало страницы
 
+Цитировать сообщение
natan
сообщение 9.10.2009, 11:16
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 8
Регистрация: 16.1.2009
Пользователь №: 259



Цитата(FreeM@N @ 9.10.2009, 12:04) *
Кстате заметил такое же поведение на т.ру - отвалился инет, а раздачи так и висят, хотя уже 2 часа прошло, может просто так и задумано? и таймаут при обрыве гораздо больше времени анонса...

тут сложно судить - может кешируется выводимая информация по раздачам со стороны тру
Перейти в начало страницы
 
+Цитировать сообщение

Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 1.11.2024, 3:06
Top.Mail.Ru