Добавил еще ведущие нули к миллисекундам, если кому-то еще когда-то этот код понадобится
log = function (text, color, define){ var id, time, thread, logHtml, textLog; define = (typeof define == 'string') ? define.split(/[\s,.|:;]+/g) : define; if(typeof define === 'object' && define !== null){ if(Array.isArray(define)){ id = define.indexOf('id') > -1; time = define.indexOf('time') > -1; thread = define.indexOf('thread') > -1; } else{ id = define.id == true; time = define.time == true; thread = define.thread == true; } } else id = time = thread = true; id = id ? '<a href="action://action' + ScriptWorker.GetCurrentAction() + '" style="color:gray;">[' + ScriptWorker.GetCurrentAction() + ']</a>' : ''; time = time ? ' ' + getTime() : ''; thread = thread ? ' Поток №' + thread_number() : ''; logHtml = (id || time || thread) ? id + '<span style="color: white">' + time + thread + ' : </span>' : ''; logHtml += '<span style="color:' + (color ? color : 'white') + '">' + text + '</span>'; textLog = '[' + ScriptWorker.GetCurrentAction() + ']' + time + thread + ' : ' + text function getTime(){ var checkTime = function(i){ return (i < 10) ? "0" + i : i; }; var checkMilliSeconds = function(ms){ if (ms < 10) { return "00" + ms; } else if (ms < 100) { return "0" + ms; } else { return ms; } }; var d = new Date(); var hh = checkTime(d.getHours()); var mm = checkTime(d.getMinutes()); var ss = checkTime(d.getSeconds()); var ms = checkMilliSeconds(d.getMilliseconds()); return '[' + hh + ':' + mm + ':' + ss + '.' + ms + ']'; }; Logger.WriteHtml(logHtml, textLog); }Как оптимизировать работу в многопотоке?
-
Есть 2 идентичных скрипта, один написан на BAS другой на Zennoposter. Скрипт очень простой.Тупо заходим на один сайт под проксей, двигаем там мышкой и заканчиваем посещение. И это все делаем в многопотоке.
В Зеннопостере стабильно работает на 500 потоках сутками без перезагрузки сервера. Настройки: 10 потоков на процесс (там на 1 процесс base.exe можно задавать несколько потоков). Выходит на потребление оперативы в пределах 30 гиг и в этом диапазоне +/- несколько гиг работает. Проц загружен на 30-50%.
В BAS ставлю 100 потоков. Через несколько часов забил почти всю оперативку и продолжает в том же духе. Проц почти на максимуме. В самом начале ставил 300 потоков (прочитал в документации что БАС максимум это тянет) он буквально за пол часа все ресурсы сожрал и сервер ребутнулся.
Подскажите как оптимизировать работу в многопотоке? Чтоб я на сервере запустил на несколько суток и не парился что оператива кончится. Может есть что-то подобное для настройки нескольких потоков на 1 процесс (в BAS это я так понял Worker.exe).
Заранее благодарю за помощь!
-
стоит галка перезапускать процесс?
картинки отключены? -
@out said in Как оптимизировать работу в многопотоке?:
стоит галка перезапускать процесс?
картинки отключены?-
Нет вродь такой галки не ставил. Подскажите где ее поставить? Я думал когда поток останавливается то и процесс на котором он работает отваливается. Походу процесс всегда висит и забивает память постепенно?
-
Не отключал, там нужно чтоб картинки были включены. Но я не находил этой настройки. Подскажите куда смотреть?
-
-
@Gang said in Как оптимизировать работу в многопотоке?:
Не отключал, там нужно чтоб картинки были включены. Но я не находил этой настройки. Подскажите куда смотреть?
Действие запретить загрузку *.jpg *.png *.gif . Там где надо грузануть картинку, например капчу, отдельно разрешить загрузку с урла капчи. урл можно узнать тыкнув на капчу и нажать исследовать
-
-
@out век живи век учись, и дураком помрешь. Спасибо. :)
-
@out благодарствую!
-
Ребята я в шоке!!! С перезагрузкой процесса БАС лупит как бешеный, производительность в сравнении с Зенкой в разы выше!!! Тот же шаблон запустил на 300 потоков с перезагрузкой процесса в настройках. Жрет всего 10 гигов операивы и 20% проца.
Это капец!!! Я доволен как слон!!!
Но у меня стоит задача максимум. Максимально масштабировать обьемы. Подскажите пожалуйста, если я поставлю например 500 потоков, будут ли они все корректно работать? Так как мощностей сервера вполне хватает.
Да я читал что БАС максимум тянет 300 потоков, но вдруг что поменялось с новыми версиями?
Или, может быть, есть вариант запускать несколько копий БАС параллельно на одном сервере?
Мне бы сервер загрузить минимум 60-70 % мощностей. Оперативы 64 гига, проц 2 ядра по 2.7
-
@Gang said in Как оптимизировать работу в многопотоке?:
Или, может быть, есть вариант запускать несколько копий БАС параллельно на одном сервере?
сделал так, правда 100 лишнимхмегабайт озу за еще одну копию, но это погоду не портит)
-
@artihorror Спасибо попробую! А вы используете 1 файл шаблона на все копии БАСа? Или под каждую делаете свою копию шаблона со всеми привязаными файлами в ресурсах?
Интересует если использовать один и тот же файл шаблона со всеми привязанными ресурсами к нему, не будет ли конфликта в обработке файлов?
-
Поставил 500 потоков. Но визуально наблюдаю только 276. Это только визуально они на главое окно не поместились, или нужно где-то снять ограничения?
-
Но я все же не могу загрузить сервер на полную каушку. Как ставлю больше 300 потоков сервер начинает жестко тупить и все виснет (например на 500 потоках при этом оперативы и проца хватает). Все таки эта инфа http://wiki.bablosoft.com/doku.php?id=ru:what_is_maximum_thread_number походу актуальна.
Такое же происходит если запускаю 2 копии БАС по 300 потоков, даже жеще, приходится сервер сразу же перезагружать, так как не реагирует на команды с интерфейса рабочего стола.
Подскажите куда копать чтоб загрузить сервер на полную катушку?


