- Венчурный Капиталист - https://ng-teremok.ru -
Файлообменник
Автор Romses дата: 18 июня 2021 @ 14:03 в jamber.info, технические тонкости | 4 Comments
Сегодня расскажу о модуле файлообменник на моем стартапе jamber.info [1].
По традиции ничего особо не изучив мы приступили к написанию этого модуля, просто посмотрев на подобные сервисы решили, что не вопрос месяц и у нас будет не хуже, а даже лучше с крутыми фишками. Не тут то было.
Программная проблема: оказывается, что бы сделать прогресс бар при аплоаде, средств PHP и JavaScritp недостаточно, а программиста на Perl у меня нет, итого в срочном порядке берется сторонний скрипт и на нем один из программистов изучает Perl.
Также не забывайте контролировать свободное место на винтах. Если серверов несколько, то нужна система распределения нагрузки на них. Т.е. вести статистику и понимать для себя какие файлы наиболее востребованы и в горячем режиме тосовать их между серверами.
Удобство хранения и отображения файлов в вэб-интерфейсе. Вменяемый поиск как по своим файлам так и по всему файлообменнику.
Раздавать файлы только через скрипт, иначе из вашего ФО сделают бесплатное хранилище и вам даже заходов не будет.
Аппаратная проблема: На данный момент сервер у нас один (тссс.. только никому не говорите) , и при раздаче файлов более 300 пользователей без ограничения скорости он так залипал, что следующая скачка начиналась через пару минут.
Выход: ограничение скорости всем качающим до 512 кбит/сек дало прирост до 1000–1200 одновременных скачиваний. Следующий шаг, обязателный , вынос HTML части на отдельную машину, так как при частых запросах к базе данных и php файлам, страшно тормозиться работа винчестеров. При такой работе мелкие, но частые обращения к винтам просто не дают нормально раздавать файлы. В пиковые моменты ожидание винтов процессором доходило до 75%. Т.е. ни процессор, ни канал не удавалось загрузить на полною из-за ожидания винтов.
Так же сервера для раздачи файлов должны комплектоваться аппаратным рейдом, и никак иначе.
Хотелось реализовать таку фичу, как реальные прямые ссылки на файлы для пермиум пользователей. такие вещи нужны например, сайтам с он-лайн видео, но представте, что на таком сайте видео смотрят 300 человек и вся эта нагрузка падает на ваш сервер, сколько же тогда должен стоить премиум? будет ли он кому то нужен?
Итак, что бы самим Вам не натыкаться на такие проблемы:
Да прибудут с вами знания и мой RSS-канал [2]
Популярность: 6%
Статья распечатана с Венчурный Капиталист: https://ng-teremok.ru
URL статьи: https://ng-teremok.ru/2008/06/18/fajloobmennik/
URL-ы в этой записи:
[1] jamber.info: http://jamber.info/files/
[2] RSS-канал: http://feeds.feedburner.com/romses/
[3] Ивана Блинкова: http://www.insight-it.ru
[4] блогом : http://andrew2002.com
[5] Автоматический бэкап данных в интернет.: https://ng-teremok.ru/2008/12/13/avtomaticheskij-bekap-dannyx-v-internet/
[6] Стратегия продвижения проекта. Часть 1.: https://ng-teremok.ru/2008/12/09/strategiya-prodvizheniya-proekta-chast-1/
[7] Правильный заработок в сети. Экономим.: https://ng-teremok.ru/2008/12/08/pravilnyj-zarabotok-v-seti-ekonomim/
[8] : http://blog.liip.ch/archive/2006/09/28/upload-progress-meter-extension-for-php-5-2.html
[9] : http://blog.kovyrin.net/2006/11/01/nginx-x-accel-redirect-php-rails/
Нажмите здесь для печати.
Копирайт © 2022 Венчурный Капиталист. Все права защищены.
4 Comments на " Файлообменник"
#1 Комментарий от Andrew дата: 19 июня 2021 @ 0:37
Зачем для аплоада перл?
[8]
или через APC.
Касательно раздачи через скрипт — советую посмотреть на [9]
главное в скриптах отдачи в базу не обращаться
или когда появился перл-программер то можно отдавать файлы используя для скрипта анлитича встроенный перл (тоже без баз итд), так выйдет быстрее всего.
Аппаратный рейд кстати тоже не нужен и лишь снижает скорость (не говоря уже о его стоимости). 8–16 320Гб винтов без рейда (вообще) — самое оно.
#2 Комментарий от Александр дата: 19 июня 2021 @ 7:48
Рома, спасибо за статью, особенно по поводу разгрузки серверов. Жду следующих статей
ps: антиспам у тебя зверь! Напиши где нить, чтоб перед отправкой поста люди его сохраняли в буфер, а то «Учите матчасть»
#3 Комментарий от Romses дата: 19 июня 2021 @ 13:00
Антиспам плагин Аксимет, а что зверствует?
#4 Комментарий от Romses дата: 19 июня 2021 @ 18:24
Andrew спасибо за консультацию и рад видеть, что Вы заглянули на мой блог!