Файлообменник

Файлообменник

Знание сила.

Расскажу о модуле файлообменник на моем стартапе.

По традиции ничего особо не изучив мы приступили к написанию этого модуля, просто посмотрев на подобные сервисы решили, что не вопрос месяц и у нас будет не хуже, а даже лучше с крутыми фишками. Не тут то было.

Программная проблема: оказывается, что бы сделать прогресс бар при аплоаде, средств PHP и JavaScritp недостаточно, а программиста на Perl у меня нет, итого в срочном порядке берется сторонний скрипт и на нем один из программистов изучает Perl.

Также не забывайте контролировать свободное место на винтах. Если серверов несколько, то нужна система распределения нагрузки на них. Т. е. вести статистику и понимать для себя какие файлы наиболее востребованы и в горячем режиме тасовать их между серверами.

Удобство хранения и отображения файлов в веб-интерфейсе. Вменяемый поиск как по своим файлам так и по всему файлообменнику.

Раздавать файлы только через скрипт, иначе из вашего ФО сделают бесплатное хранилище и вам даже заходов не будет.

Аппаратная проблема: На данный момент сервер у нас один, и при раздаче файлов более 300 пользователей без ограничения скорости он так залипал, что следующая скачка начиналась через пару минут.

Выход: ограничение скорости всем качающим до 512 кбит/сек дало прирост до 1000–1200 одновременных скачиваний. Следующий шаг, обязательный, вынос HTML части на отдельную машину, так как при частых запросах к базе данных и php файлам, страшно тормозиться работа винчестеров. При такой работе мелкие, но частые обращения к винтам просто не дают нормально раздавать файлы. В пиковые моменты ожидание винтов процессором доходило до 75%. Т. е. ни процессор, ни канал не удавалось загрузить на полною из-за ожидания винтов.

Так же сервера для раздачи файлов должны комплектоваться аппаратным рейдом, и никак иначе.

Хотелось реализовать таку фичу, как реальные прямые ссылки на файлы для премиум пользователей. такие вещи нужны например, сайтам с он-лайн видео, но представьте, что на таком сайте видео смотрят 300 человек и вся эта нагрузка падает на ваш сервер, сколько же тогда должен стоить премиум? будет ли он кому то нужен?


Карта сайта


Информационный сайт Webavtocat.ru