Показать сообщение отдельно
Старый 20.09.2009, 14:48   #2
Аватар для Skald
Skald Skald вне форума
Администратор
  1. Таблица пиров разбита на две: активные пиры и архив пиров. Что дало возможность отойти от ограничения идущего еще от xbtt - один пользователь/один торрент. Как следствие размер таблицы с постоянным доступом (теперь это активные пиры) стал значительно меньше, что в свою очередь значительно ускорило работу с этой таблицей.
  2. Все критические настройки используемые и в аннонсере и в фронтэнде вынесены в файл конфига булки - config.php. Я понимаю что это не совсем удобно, но всетаки этот файл не изменяется при обновлении Vb на новые версии и основные настройки vbtt, такие как время аннонса и т.п. меняются очень редко. А вынесение этих настроек в файл конфига уменьшает количество запросов в момент аннонса на 1.
  3. Полностью изменена логика расчета текущей статистики - теперь все тяжелые запросы делаются по крону, такие как обновление таблиц user и attachment. Убрана вся логика из php кода и перенесена в sql запрос.
  4. Write-cache включен по умолчанию - из аннонса убраны все update таблиц - остались 1 insert и 1 replace (к тому же replace-а не будет если не использовать лимиты для личеров), значительно уменьшено количество select-ов.
  5. Для каждого отдельного пхп кеша будет отдельный файл оптимизированный специально для него (на данный момент только xcache т.к. могу нормально протестировать только на нем). Соответственно при использовании кеша количество запросов к БД при аннонсе можно свести к 0.
  6. Проверка порта на открытость вынесена в крон из аннонса, что тоже значительно повысило производительность. К тому же теперь пара IP/порт проверяется только 1 раз, что хорощо сказалось на суммарной производительности. А именно раньше в момент аннонса при попытке открытия порта стоял таймаут в 5 сек, что могло сильно увеличить время отклика сайта если одновременно приходило много аннонсов с недоступных портов. Теперь же (при переносе в крон) сделал таймаут настраиваемым. При проверке оказалось что при таймауте в 2 сек, в момент теста портов в один поток за 30 сек крон может проверить от 200 до 15 портов. Это хоть и не очень много но задача отрабатывается каждую минуту поэтому без проблем может проверять более 10К активных пар ip/порт
Ответить с цитированием