Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Общие » Флейм » Как один "тех. админ" на трекере работал...

Модерирует : 3xp0, TechSup

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

cybpsy

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

<xxx> не думал что нужен ещё один тех.админ  
<Elder> нужен даже не тех. админ а программер
<Elder> одному хреново все успевать  
<xxx> программер для чего?
<Elder> php
<xxx> что именно интересует?
<xxx> регулярки\массивы и т.д...
<Elder> ретрекеры, не просто добавление, а с кешированием и подобным+ поиск+XBTT (но это уже не только пхп а С++)
<xxx> поиск = сфинкс?
<Elder> ага
<xxx>  
<Elder> у меня как у тех. админа дел много и все сразу быстро не сделаешь, а многие это понимают как ничего неумение
<xxx> 2х1, тех.админ и сис.админ  
<xxx> многие просто невидят разницы)  
<Elder> ага
<Elder> я как раз всегда говорил то я не программер, а сис. админ
<xxx> а система ретрекеров я так понимаю соит заюзанный код от димки?  
<xxx> *стоит
<Elder> но те кого выгнали, перевернули все слова  
<xxx> забей
<Elder> пока ничего не установил, а перерабатываю чтоюы не нагружало, а код то что каспер кидал и прочее из кусков
<xxx> угу
<xxx> кеширование какое стоит?
<xxx> memcache\apc\eaccelerator?
<xxx> или sqlite?  
<Elder> memcache+eaccelerator+кеш статики на веб сервере
<xxx> ухты, сурово  
<xxx> акселератор в самый раз
<Elder> зато держит такую нагрузку что не снилось  
<xxx> ога
<xxx> я так понимаю, проблема закешить функцию?  
<Elder> проблема в том чтобы не было ошибок в некторых клиентах
<xxx> азереус?  
<Elder> экзотика пишет что торрент битый
<xxx> хм, ну, есть пару идей  
<Elder> и я заколебся с выбором как оптимально и с нименьшей нагрузкой все сделать
<xxx> 1) отключить в аннонсере т.е. забанить клиенте кроме юторрента, азереуса, бикомета
<xxx> 2)выпросить у димки функцию с торрентс.нет.юа  
<Elder> это не выход у нас и так много побанено
<xxx> на т.нет.юа доработано полностью этот код
<xxx> даже лучше
<Elder> да врятли мне что-то аддут, я уже давно один раз как-то просил помочь с проблемой и... с тех пор сам все делаю медленно, но постепенно получается
<xxx> посмотрим, я с димкой в хороших отношениях, может поделится кодом
<xxx> проблемой будет больше - если проблема не в функции))  
<Elder> просто на ФТО столько сделать надо, а я мечусь между делами  
<xxx> туду лист есть?
<Elder> ага, разделить статику с динамикой на 2-а сервера, базу оставить на первом где будет статика, поиск, ретрекеры, полно небольших функуций+скрпты для ловли читеров+ много еще чего
<xxx> bt1,bt2?
<xxx> сфинкс пандора чтото там крутит, даже конфиг какойто есть исходники нонейма просматривали?
<xxx> отослал ПМ димке о просьюа поделится функцией  
<Elder> это тоже в планах, а на первое: static файлы на первом а вся динамика на втором, дальше на втором XBTT
<xxx> XBTT будет сложно поднять  
<xxx> я если с php маленько имею опыт то с xbtt = 0
<xxx> но ничё, роман на тапках както же освоих его  
<xxx> вобщем нету ничего не возможного главное желание
<xxx> всё есть впринципе для сфинкса и хбтт
<xxx> просто нада подогнать код под 775  
<xxx> какая здесь РЦ стоит? 7 ?
<Elder> так XBTT есть готовое решение как раз пхп часть надо утрясти
<xxx> заменить аннонсер? или разделить на пхп и ХБТТ?
<Elder> 775 RC4 с дофига изменений
<Elder> заменить аннонсер
<xxx> а в чём тогда проблема?  
<xxx> в админке прописать адрес аннонсера, а осталньным написать шоб сменити адрес трекера в торрентах
<xxx> в новых торрентах он сменится автоматом
<Elder> сфинкс настроен+ есть порма поиска, это осталсь прикрутить к движку
<Elder> так с адресом проще rewrite или редирект, надо чтобы все полностью пахало
<xxx> нада переделать search.php и tracker.php и всё  
<xxx> со сфинксом больше намутов маленько)))  
<xxx> кстати, есть у юзеров какието привелегии?
<xxx> типа "без рекламы" и т.д.
<Elder> как раз в них все изменить и осталось
<xxx> ээ, в юзерах или в поиске?  
<Elder> seacher+tracker
<Elder> привилегии будут у админстрации и групп
<xxx> на этом можна поднять доход  
<Elder> а насчет юзеров врятли, потеряем много показов
<xxx> и потерять..))
<Elder> как раз чем больше видят рекламу тем лучше
<xxx> ща подумаю насчёт поиска
<xxx> хм, нада сравнить нонеймовские исходники
<Elder> сейчас покажу что уже есть
<xxx> угу
<Elder> ?php
<Elder> require ( "sphinxapi.php" );
<Elder> $q=$_GET['q'];
<Elder> $pageisset($_GET['page'])?$_GET['page']:1);
<Elder> $res_on_page=30;
<Elder> $mode = SPH_MATCH_ALL;
<Elder> $host = "localhost";
<Elder> $port = 3312;
<Elder> $index = "topics";
<Elder> $groupby = "";
<Elder> $groupsort = "@group desc";
<Elder> $filter = "group_id";
<Elder> $filtervals = array();
<Elder> $distinct = "";
<Elder> $sortby = "";
<Elder> $limit = 50;
<Elder> $ranker = SPH_RANK_PROXIMITY_BM25;
<Elder> $sort_mode=SPH_MATCH_ALL;
<Elder> $cl = new SphinxClient ();
<Elder> $cl->SetServer ( $host, $port );
<Elder> $cl->SetConnectTimeout ( 1 );
<Elder> $cl->SetWeights ( array ( 100, 1 ) );
<Elder> $cl->SetMatchMode ( $mode );
<Elder> $cl->SetSortMode ($sort_mode);
<Elder> $cl->SetLimits (($page-1)*$res_on_page,$res_on_page);
<Elder> $res = $cl->Query ( $q, $index );
<Elder> ?>
<Elder> <html>
<Elder> <body>
<Elder> <pre>
<Elder> <?php
<xxx> конфиг можна вынести в отедльный файл
<Elder> if ( $res===false )
<Elder> {
<Elder> print "Query failed: " . $cl->GetLastError() . ".\n";
<Elder> } else
<Elder> {
<Elder> if ( $cl->GetLastWarning() )
<Elder> print "WARNING: " . $cl->GetLastWarning() . "\n\n";
<Elder> print "Query '$q' retrieved $res[total] of $res[total_found] matches in $res[time] sec.\n";
<Elder> print "Query stats:\n";
<Elder> if ( is_array($res["words"]) )
<Elder> foreach ( $res["words"] as $word => $info )
<Elder> print " '$word' found $info[hits] times in $info[docs] documents\n";
<Elder> print "\nPage:\n";
<Elder> if ($page>1) {
<Elder> printf ("<a href='%s?q=%s&page=%u'>&lt;&lt;</a> ",$_SERVER['SCRIPT_NAME'],$q,$page-1);
<Elder> };
<Elder> printf ("%u <a href='%s?q=%s&page=%u'>&gt;&gt;</a>\n\n",$page,$_SERVER['SCRIPT_NAME'],$q,$page+1);
<Elder> if ( is_array($res["matches"]) )
<Elder> {
<Elder> $ids=implode(',',array_keys($res['matches']));
<Elder> require ('config.php');
<Elder> $link = mysqli_connect($host, $user, $pass, $dbname);
<Elder> if (mysqli_connect_errno()) {
<Elder> printf("Connect failed: %s\n", mysqli_connect_error());
<Elder> exit();
<Elder> };
<Elder> mysqli_set_charset($link, "cp1251";
<Elder> $query="SELECT `topic_id`,`topic_title` FROM `bb_topics` WHERE `topic_id` IN ($ids)";
<Elder>  
<Elder> $result = mysqli_query($link, $query);
<Elder> while ($row = mysqli_fetch_assoc($result)) {
<Elder> printf ("<a href='http://free-torrents.org/forum/viewtopic.php?t=%u'>%s</a><br>",$row['topic_id'],$row['topic_title']);
<Elder> };
<Elder> }
<Elder> }
<Elder> ?>
<Elder> </pre>
<Elder> </body>
<Elder> </html>
<Elder> ад можно
<Elder> у нас база в innoDB вот и остуствие поиска, расплата за производительность
<xxx> хм
<xxx> InnoDB?
<xxx> она в несколько раз хуже чем простой MYSQL если непокрутить конфиги
<xxx> ты крутил конфиги?
<xxx> $query="SELECT `topic_id`,`topic_title` FROM `bb_topics` WHERE `topic_id` IN ($ids)"; < - поиск по айди? можна выбросить  
<Elder> так все подкручено, плюс одновременное выполнение 100 запросов+ не блокаются таблицы, а только строки  
<Elder> myisam блокает таблицы целиком и не может много апросов за один раз
<xxx> deadlocko'ом нету?
<Elder> неа
<xxx> гуд  
<xxx> на этот скрипт можна както визуально посмотреть?
<Elder> конфиг сейас покажу
<xxx> хм, делать практически малость  
<xxx> кстати, что за ОС?
<Elder> fedora 10
<Elder> key_buffer = 64M
<Elder> join_buffer_size = 1024M
<Elder> key_buffer_size=384M
<Elder> max_allowed_packet=1000M
<Elder> table_cache = 384000
<Elder> sort_buffer_size=64M
<Elder> net_buffer_length=16
<Elder> read_buffer_size= 8M
<Elder> read_rnd_buffer_size= 64M
<Elder> myisam_sort_buffer_size= 64M
<Elder> thread_cache_size = 100
<Elder> query_cache_size = 384M
<Elder> query_cache_limit = 128M
<Elder> collation_server = utf8_unicode_ci
<Elder> character_set_server = utf8
<Elder> low_priority_updates = 1
<Elder> concurrent_insert = 2
<Elder> concurrent_insert = 2
<Elder> max_connections= 300
<Elder> query_cache_type=1
<Elder> max_heap_table_size = 256M
<Elder> thread_concurrency = 24
<Elder> innodb-thread-concurrency = 24
<Elder> innodb_buffer_pool_size = 2048M
<Elder> tmp_table_size = 256M
<Elder> table_definition_cache = 512
<xxx> хм
<Elder> innodb_data_home_dir = /opt/DB_ROOT
<Elder> innodb_data_file_path = ibdata1:10M:autoextend
<Elder> innodb_buffer_pool_size = 2048M
<Elder> innodb_additional_mem_pool_size = 64M
<xxx> tmp_table_size = 256M < а не дофига ли?
<Elder> неа, я же не один месяц менял и перенастараивал
<xxx>  
<xxx> с свна апдейтил последний конфиг сфинкса?
<xxx> там запросы подравлены
<Elder> так ставил его бывший помошник перед уходом, но все пашет норм
<xxx> осталось лиш прикрутить?
<Elder> ага
<Elder> я отойду ненадолго мне главный звонит
<xxx> ок
<xxx> вот так вот внедрён в tracker.php в нонейме сфинкс
(вырезан не имеющий значения код из выложенного на публику движка nnm-club)

Всего записей: 102 | Зарегистр. 23-05-2009 | Отправлено: 04:44 23-12-2009 | Исправлено: cybpsy, 06:23 23-12-2009
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Общие » Флейм » Как один "тех. админ" на трекере работал...


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru