alex545

Рейтинг
37
Регистрация
11.05.2009

да, у гугла есть, но 5 баксов с 1000 сёрчей - это жесть конечно..

Подскажите, пожалуйста, партнёрки, платящие за инсталы софта, который можно встроить в инсталятор своего софта (типа тулбаров и прочего). Нашёл несколько таких

http://www.installmonetizer.com/

http://www.pinballpublishernetwork.com/

http://www.amonetize.com/

http://www.betterinstaller.com/

http://www.solimba.com/

но отзывов особо и нет. Если кто работает, порекомендуйте плиз - буду рефом. Аудитория - в основном штаты и европа.

>site.com/download.php?id=fgh239h9hd&name=/real-name.exe

так а при такой ссылке (и когда content disposition нет), браузер всегда предложит сохранить файл с именем, начинающимся с последнего слэша в запросе (то есть real-name.exe) ?

. разговор ни о чем, число рассуждения, может так ... а может так...

где вы это видите вобще? у меня вполне обычная задача - реализовать скачку файлов - что тут ещё нужно сказать. стандартное железо, ось centos, использовать нестандартные решения желания нет. кол-во качающих будет таким на сколько возможно будет загрузить сервер(чтоб он не помирал). когда 1-го сервера будет не хватать, будет второй, третий.. в вопросе я чётко дал понять, что хочу загрузить сервер по полной (то есть оптимально расходуя его ресурсы) - по моему все возможные ИКСы известны.. и меня интересует как лучше это реализовать, используя более-менее станартное ПО.

а без знания ваших запросов

запросы также все есть. он один этот запрос: как оптимально реализовать скачку файлов на одном сервере. что ещё то нужно?

Я думаю что первым на очереди будет I/O к винту

Вобще как-то странно, в первом сообщении вы утвержаете что на 1000 одноврвеменных скачиваний(хоть и по 50кбит/сек на каждую скачку) и 10 серверов не хватит, а тут уже лишь предполагаете что первой проблемой станет ошибка ввода/вывода..

а сама ОС такие моменты не контролирует (не ставит считывания с жёсткого в очередь и прочее)? То есть если начать качать 1000 файлов, то какие-то процессы чтения попросту убьются и сервер просто отдаст какую то ошибку(например 500) по всем неудавшимся запроса, я правильно вас понимаю?

а на каком кол-ве качающих это предположительно случиться, на 100, на 200? (на обычных сата2 винтах). Исходя из этой информации я смогу выставить какие-то ограничения.. Я конечно же понимаю, что это и опытным путём всё проверить можно, но надеялся что кто-то и так сможет подсказать

Начните изучать книгу типа IBM PC для чайников. Откроете для себя такие вещи как random seek или ограничение шины.

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

>или вы планируете завести ресурс и не знаете посещаемости? Во втором случае нужна приблизительная посещаемость

верно и на счёт приблизительной посещаемости сложно сказать. да и зачем она нужна в данном теоретичесом вопросе? Я же не привожу конфига и не привожу ширины канала. Я предполагаю выбрать наиболее оптимальный способ отдачи с одного сервера. Когда этот сервер будет подавать признаки чрезмерной нагрузки, то добавить второй сервер, потом третий и т.д. - кол-во, так сказать, физических узлов не принципиально в данном вопросе.

допустим , если у вас за сутки будет 1000 скачиваний, вы отдадите ~20 GB за сутки. Получаем 20Gb / 24 / 60 / 60 = 231 килобайта в секунду, это приблизительно равно скорости 1.8 Мегабита в секунду (Mb/s).

Т.е если у вас 10k скачиваний это 18 Mb/s , а если 100k то это 180 Mb/s.

честно говоря, я знаком с основами арифметики )

я и так понимаю сколько трафика уйдёт в зависимости от объёма файла и кол-ва качающих..

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

конечно же это всё я понимаю. я не вижу проблемы в масштабировании, я вижу проблему лишь в реализации - "каким путём стоит пойти"

вот вы написали "Блин вы опять о вечном" - на мой взгляд, всё таки это вы о вечном в данном сообщении )

В случае именно голой отдачи статики я бы вообще рекомендовал обойтись без веб сервера, напишите апликуху которая на 80м пору будет выстреливать нужные заголовки и тулить клиенту файл

что касается этого - я конечно же согласен, но это немного сложновато для меня на данный момент - хотелось бы чего нибудь более стандартного..

паралельно несколько тысяч... вы смеетесь? по 20MB-XGB каждый ??? 20GB одновременно ? Для такого объема отдачи может и 10 серверов не хватить.

вот очень хорошее замечание. проясните, пожалуйста, в чём проблема тысяч одновременных скачиваний? то есть это процессор/файловая система среднего сервера не выдержит или те же апач/nginx? (вопрос скорости опустим, пусть она будет хоть 50кбит/сек на одну скачку)

zexis, iHead - благодарю за ответы, уже смотрю

Romka_Kharkov,

>так как будет юзаться тот же апач

там ещё дописано "(если использовать php)"

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

> А еще интересует ряд сетевых параметров, какой объем отдается например в сутки?

ну мне желательно бы максимально возможный (то есть до 100 мбит/с в моём случае). что касается параллельных скачиваний, то я думаю что несколько тысяч вполне могут быть

а START только два раза может появляться? Если да, то просто впишите два их в регулярку и всё.

может и больше

Попробуй вот это /\sSTART{1} (.*?) END/
вот он пример http://regexr.com?2tla1

Тут все, скажем так, пляшет от того, что до START должен быть какой нибудь пробельный символ (\s). Но дело в том что строка может быть и такой

"START START START text11 END START text12 END END START text2 END END"

и результат будет некорректен

Если убрать изврат и перевести задачу в более классический вид (заменой "START " на "{" и "END" на "}"), то работать со строкой проще: "{ { text1 } { text2 } }"
Ваша регулярка: /({[^{}]*})/

в приципе то конечно можно, но весь текст который есть внутри придётся проверять на наличие таких же скобок и заменять/экранировать их в нём, потом после всех операций приводить его к первозданному виду. Так что хз где будет больший изврат ) .. Как бы вариант то рабочий, но я просто надеялся найти решение в одну строку..

>P.P.S. а вообще строка напоминает изобретение своего JSON)

Это что то вроде обработки вложенного списка.. Типа рекурсивно разбить всё дерево на ветви.. Пользоваться какими то библиотеками ради такой мелкой задачки не хочется..

вот такую мне подсказали на одном форуме

preg_match_all("/START(?!\s*START\s*)((?:.|\s)+?)END/", $text, $matches);

вроде всё как надо

спасибо.

просто анкор ссылки может находится на нескольких строках (и как раз хотелось бы как то ограничить это кол-во строк). соответственно придётся что-нибудь придумывать с высотой..

может ещё какие-нибудь способы есть?

12
Всего: 13