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'><<</a> ",$_SERVER['SCRIPT_NAME'],$q,$page-1); <Elder> }; <Elder> printf ("%u <a href='%s?q=%s&page=%u'>>></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 |
|