Всем доброго дня, мне в очередной раз пытаются доказать, что стата в моем мс считается неправильно и не так, поэтому я решил разобрать все по полочкам, и так начнем: 1) Откуда у меня столько запросов, такого не может быть! Вот пару скринов: на первом видим стату в 3 ляма запросов при 300 униках(за час), вторая стата при 197 униках тоже 3 ляма(за сутки). Разбираем как такое получается: 1) Стоит режим noping, т.е. клиенту игры не отдается конец списка серверов и он шлет N запросов в секунду к мс! 2) Количество запросов в секунду зависит от настроек клиента игры и включенной или отключенной вертикальной синхронизации. Как известно игроки любят себе прописать fps_max 500 или 1000, чтобы в клиенте было 100500 фпс в секунду, получаем и количество запросов N в секунду при режиме noping. Т.е. 1 клиент с прописанными fps_max 100 создаст ~ 100 запросов, а с fps_max 1000 и отключенной вертикальной синхронизацией ~ 1000. Я написал генератор логов, в который можно подставить значения для проверки как же считается стата в мс у меня. Качаем:http://non-steam.ru/forum/index.php...9/&temp_hash=b1697b1e7c983042acd73f38c7d0d2ea Задаем параметры в log_gen.cfg UNICS_COUNT = 300 уников, минимальное количество от 1 уника выставляем в MIN_QUERY = 500 по формуле 100 fps ждал 5 секунд вывода до конца сипска серверов не дождался тыркнул по de_dust_2x2 и максимальное MAX_QUERY = 60000 игрок с 1000 fps ждал минуту когда же ему все выведут, оставляем RANDOM_HOUR = 0 это сгенерирует лог для текущего часа. Генератор логов создает лог файл ~ на 6-7 мб что в диапазоне 200-300к запросов, генератор выдает по 666-1000 запросов на 300 уников, а у нас 3.000.000 запросов при 300 униках, а это по 10к запросов с каждого, в генераторе не учтено кол-во игроков с 1000 fps, и количество раз использования игроком поиска, может ему сервер не понравился и он искал еще N раз подходящий из чего получается что на 3 ляма 300 уников генерирует в среднем по 10к запросов каждый. 3) Если такие цифры смущают специально сделал Simple dos protection (SDP в ms.cfg) при значение 2 (блокировка по IP+port) 1 игрок за 10 секунд создаст в логе всего 3-4 запроса. И самое главное почему так мало уников не может быть, опять же через генератор проверяется сколько было задано, столько мастер сервер и посчитал, но на всякий случай я приложу сюда код подсчета чтобы все сомнения развеялись в пух и прах: Код: print "Start parsing standart log ..." # для каждой строчки лога персер выглядит так: for line in f.readlines(): try: try: # разбираем строку на час, игру и ip и другие составляющие h,m,s, ip, port,game = line.strip('\n\r').split(' ') except Exception, e: if 'too many values' in str(e): try: msport,h,m,s, ip, port,game = line.strip('\n\r').split(' ') except Exception, e: print "msstats error = "+str(e) # добавляем в почасовой(+уникальный) словарь игру и какой час если нету в словаре if (game,h) not in hourdict: hourdict[game,h] = 0 uhourdict[game,h] = set() # добавляем в суточный(+уникальный) словарь игру если нету if game not in daydict: daydict[game] = 0 udaydict[game] = set() # проверяем есть ли в почасовом уникальном словаре уникальный ip адрес, если нет то добавляем if str(ip) not in uhourdict[game,h]: uhourdict[game,h].add(ip) # проверяем есть ли в суточном уникальном словаре уникальный ip адрес, если нет то добавляем if str(ip) not in udaydict[game]: udaydict[game].add(ip) # добавляем по 1 запросу за час и за сутки, для игры в почасовой и суточный словарь hourdict[game,h] += 1 daydict[game] += 1