// codeart.ru / Офтопик / Про конкурс техноманьяков у Тормоза Форум

Про конкурс техноманьяков у Тормоза rss подписка

Автор: Evgeny Sergeev

Тормоз продолжает развитие своего рекламного движка DAOS. Сейчас он занимается тем, что пытается построить сколько-нибудь эффективную защиту от накруток. Все прекрасно понимают, что полностью защититься нельзя, но от совсем простых способов защититься нужно. В связи с этими работами, он решил провести конкурс техноманьяков. Суть этого конкурса сводится к тому, что участники должны попытаться накрутить показы на новой версии DAOS, которая защищена от накруток. Тот кто первым накрутит 1 млн. показов, тот и победил.

Я решил прикинуть сколько времени может занять такого рода накрутка, при условии, что у накрутчика существуют все необходимые для этого ресурсы. Во-первых, DAOS хранит все данные в обычном текстовом файле. Из этого следует последовательная обработка всех запросов (пока файл заблокирован, никто не сможет в него писать, значит до окончания работы скрипта все остальные нервно курят в сторонке), кроме этого каждый сеанс связан с открытием и закрытием файла, а эти операции достаточно дорогие. В свое время, Тормоз проводил оценку производительности алгоритмов чтения и записи в файл. Среднее время выполнения одного конкурентного запроса получалось около 500 мс. Отсюда нетрудно посчитать, что в течение секунды может обрабатываться порядка 2-х запросов. Не густо.

С учетом того, что тестовые данные были получена на слабой машинке, давайте предположим, что в боевой системе скорость будет в два раза больше - четыре запроса в секунду. Тогда простыми вычислениями получается, что для накрутки 1 млн. показов одному человеку необходимо около 70 часов. Не хило правда? В реальности, как я понимаю, будет один общий хостинг на всех. Все участники будут пытаться накрутить DAOS одновременно. А это скорее всего приведет к тому что: либо хостер ляжет в глубокий дауне, либо время, необходимое для накрутки, значительно возрастет.

Вывод: концепция конкурса требует пересмотра, хотя бы в части количества показов. Но это, конечно же, решать не мне, а Тормозу.

  1. Хостинг я предварительно планировал брать в облаке, одинаковые для всех участников установки. И насчёт подсчёта показов тоже думал много ещё. Пока наверно принципиальных изменений не будет, но в Daos 2.0 может радикально поменяю принцип подсчёта. Возможно он будет точный не на 100% (а нафиг?), но гораздо более быстрый.

    А ещё формат вывода ab немножко непонятный. Конкуренция не должна сильно влиять на скорость выполнения отдельного запроса.

  2. Смотри, там уровень конкурентности был равен трём, значит скорей всего считать правильно так: за 500 мс выполнится три конкурентных запроса, итого даже на той слабенькой машинке выходило суммарно 6 запросов в секунду.

    Жаль не сохранил отчеты, так бы можно было и по общему времени выполнения расчитать, сейчас лень заново запускать.

  3. Хотя сейчас всё же запущу.

  4. root > ab -n 1000 -c 3 do/Daos/dist/JSblock.php

    Server Software:
    Server Hostname: do
    Server Port: 80

    Document Path: /Daos/dist/JSblock.php
    Document Length: 553 bytes

    Concurrency Level: 3
    Time taken for tests: 164.813 seconds
    Complete requests: 1000
    Failed requests: 668
    (Connect: 0, Receive: 0, Length: 668, Exceptions: 0)
    Write errors: 0
    Total transferred: 936929 bytes
    HTML transferred: 627929 bytes
    Requests per second: 6.07 [#/sec] (mean)
    Time per request: 494.440 [ms] (mean)
    Time per request: 164.813 [ms] (mean, across all concurrent requests)
    Transfer rate: 5.55 [Kbytes/sec] received

    Connection Times (ms)
    min mean[+/-sd] median max
    Connect: 0 0 0.1 0 2
    Processing: 442 494 52.7 477 757
    Waiting: 442 494 52.7 477 757
    Total: 442 494 52.7 477 757

    Percentage of the requests served within a certain time (ms)
    50% 477
    66% 501
    75% 504
    80% 507
    90% 555
    95% 635
    98% 669
    99% 681
    100% 757 (longest request)

    1000 запросов за 165 секунд. Так что на миллион запросов к старому обработчику Daos (без защиты) ушло бы не более 46 часов даже в случае вот с этой моей маломощной домашней машинкой, ну а реально можно было бы выжать гораздо больше.

    Но в конкурсной игре будет другой код. Во-первых, с защитой, во-вторых, может быть вообще совсем другой.

    Однако, я много обо всём этом думал, может и не стану делать определяющим фактор времени. Тут ещё есть чего обмозговать хорошенько :)

Leave a Reply

« Завтра великий день - моя свадьба Что не так с Яндексом? »

 

модельное агентство | стоматология цены протезирование | автоэмали vika санкт-петербург . | запчасти б у ниссан и запчасти ниссан санкт-петербург и ленинградская область. | магазин автозапчастей.