до вчерашнего дня сайт висел на мониторинге у провайдера с целью выяснения причин торможения в его работе или вообще тотальной неработы, что многие могли наблюдать последние 2-3 месяца.
вердикт провайдера, который похож на правду и подкрепляется анализом логов сайта - офигенная нагрузка идет из раздела Download, где у нас лежит NISSAN FAST, различные программы и руководства по ремонту (общий объём раздела более 2Гб). нагрузка объясняется тем, что народ не читает написанное на красном фоне и качает в несколько потоков с одного IP, под каждый из которых создаётся отдельный процесс apache... при достижении некоторого числа процессов (это либо один человек тянет в множество потоков, либо одновременно несколько разных людей качают) происходит то, что мы наблюдали.
на данный момент раздел download тотально отключен, ибо у меня не хватает знаний как с этим бороться (ну, кроме разве что покупки отдельного хостинга под это, что хоть и является решением, но явно запасным). а задача такая - отдавать контент в один момент времени в определённое количество потоков в независимости от количества желающих.
видятся следующие решения:
- отключить раздел нафик и забить (не хочу);
- ввести ограничения на время доступа к разделу (скажем, только ночью);
- ввести ограничения на количество потоков.
очевидно, п.3 самый правильный, но это надо программить или искать какие-то готовые скрипты.
в общем суть данного топика сводится к следующему - как и рыбку съесть (раздел сохранить), и на карусели покататься (не ухудшить работоспособность сайта) ?
предложенное техническое решение, как мне видится, должно обладать следующим функционалом:
- ссылки в явном виде не публикуются, а генерируются на ходу по мере обработки запроса на скачивание (по аналогии с тем, как сейчас файлы с форумов забираются);
- генерируемая ссылка является динамической, т.е. повторно использовать её для закачки нельзя, а значит и на другом сайте опубликовать нельзя, что потребует от людей зайти к нам в раздел;
- желательно иметь возможность настроить скорость отдачи контента и количество одновременных сессий (как к конкретно скачиваемому файлу, так и совокупности файлов - лучше);
- ещё можно, к примеру, заставить пользователя щёлкнуть по нескольким баннерам на специальной странице, прежде чем разрешить скачивать.
есть готовые решения? ведь как-то работают всякие там сервисы типа megaupload.com
если кто-то готов напрограммить сам - готов обсудить вознаграждение