محسن بستان
5 سال پیش توسط محسن بستان مطرح شد
7 پاسخ

بهینه سازی سرور و سایت

سلام دوستان.
بنده درحال توسعه یک سیستم اشتراک ویدیو هستم و چند سوال خیلی مهم داشتم.
بنده قراره که سایتی تقریبا شبیه به مثلا یوتیوب داشته باشم اما در ابعادی کوچکتر. اصل موضوع مربوط به FFMpeg هستش که قراره ویدیو های بنده رو به کیفیت های مختلف تبدیل کنه. از اونجایی که این کتبخانه پردازش زیادی رو از سی پی یو میکشه ، اگر ترافیک سایت هم کمی بالا باشه امکان داره که سرور داون بشه. از طرفی هم بحث ذخیره سازی هستش که چون تعداد ویدو زیاد میشه باید یک سرور فایل وجود داشته باشه.
یک نقشه کلی بهتون بگم به این صورته:
1- یک سرور برای پروژه که فقط سایت ( کلیه صفحات ) رو نشون بده
2- یک سرور برای مدیریت سایت
3 - یک سرور برای ذخیره ویدیو ها

اما نکاتی که هست ، شاید این سوال پیش بیاد که چرا نوشتم یک سرور برای مدیریت ؟ خوب باید بگم من خودم جهت بهینه سازی این فکر به ذهنم خورد که کاربر ویدو رو آپلود کنه اما در اون مرحله پردازش انجام نشه بلکه بعد از تایید مدیر پردازش ( تبدیل اون ویدیو به چند کیفیت ) انجام بشه. ( ویدیو ها تا توسط مدیر تایید نشن، نمایش داده نمیشن)

سوالات

1 - آیا به نظرتون این کار کلا منطقی و بهینه هستش ؟
2 - به نظر شما چه طوری میتونم که مصرف رو کنترل کنم ؟ برای مثال اگر همزمان 10 تا ویدیو وارد پردازش شد سرور داون نشه.
3 - چه طوری میتونم سرعت FFMpeg رو بالا ببرم؟ درحالت عادی اگر هر ویدیو 1080 رو بخوام به سه کیفیت 1080 و 720 و 480 تبدیل کنم ، اگر حجم ویدیو چیزی در حدود 30 مگ باشه نزدیکه 15 دقیقه وقت میبره :(
4 - پیشنهاد شما چیه؟


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

@ali.bayat @hesammousavi @Alimotreb
دوستان با توجه به اینکه نزدیک به یک روز از پرسش بنده میگذره ولی پاسخی ثبت نشد. شما نظری ندارید ؟


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

درود

راه کارتون که اومدید سرور هارو جدا کردید درسته چون در سطحی که استفاده از سرور ها بالا باشه کاملا لازم میشه.

اما در مورد سرور FFmpeg .این سرور باید پردازش بسیار سنگینی رو انجام بده. بهتره یه Dedicated Server به مشخصات سخت افزاری خیلی خوب برای این مورد استفاده بشه که وقفه رو به حداقل برسونه

از طرف دیگه در لاراول باید کارهای تبدیل رو از طریق Job ها انجام بدید و جاب هارو هم Queue کنید که قرار نباشه سرور بخواهد ۱۰۰ تا فایل رو با هم تبدیل کنه.


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
2

در ادامه توضیح @ali.bayat باید بگم که زمان اپلود شدن فقط ffmpeg رو برای ایجاد سایزهای مختلف استفاده کنید اینکار رو حتما با queue انجام بدید و هر زمان هم کامل شد درخواستش رو در پلیر بزارید یعنی تا کامل نشده برای یک ویدیو اپلود شده توانایی سازیهای مختلف نباشه .

سرور قطعا باید مشخصات خوبی داشته باشه حتما از ssd استفاده بشه و به هیچ وجه از هاردهای hdd استفاده نکنید.


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
2

سلام
@mohsenbostan

برای این کار از سرور های زیر رم 8 و سرور مجازی استفاده نکنید!

شما با یه سرور اختصاصی خوب ، رم 64 یا بالاتر و هارد SSD NVME و یه سی پی یو بسیار عالی intel xeon میتونید تمامی کارهارو در یه سرور انجام بدید تحت سیستم عامل کلود لینوکس!
حتما لازم نیست 3 تا سرور داشته باشید
یه سرور قدرتمند با یه کنترل پنل خوب میتونه این ماجرا رو برای شما هندل کنه!


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 5 سال پیش مطرح شد
0

@Alimotreb
خیلی ممنون از وقتی که گذاشتید. اون کار هم خیلی میتونه خوب باشه ولی هزینه ها خیلی بالا میره و برای پروژه ای که هنوز ترافیک نداره، هزینش سنگینه.


حسام موسوی
تخصص : طراح و برنامه نویس
@hesammousavi 5 سال پیش مطرح شد
3

@mohsenbostan
میتونید برای اینکه هزینه بالای نداشته باشه از وبسایت‌های که سرویس ویدیویی میدن استفاده کنید
مثلا وبسایت https://kavimo.com
بعد که پروژه‌اتون بزرگ شد میتونید بیارید سمت خودتون


XDA Developer
@XDA 5 سال پیش مطرح شد
0

سلام وقتت بخیر
اگر میخوای همچین دیتایی در این سطح پردازش کنی من بودم این کارو میکردم

اول از همه استفاده از 1-2 تا VPS رو فراموش کن اصلا VPS رو فراموش کن و VDS بگیر

1 اینکه شما برای نگهداری فایل هات یه فضای خوب نیاز داری مثل هاست دانلود که هم ارزونه و هم کار پردازشی نیازی نیست داخلش انجام بشه و فقط آی دی و مسیر فایل هات رو بعد از پردازش و انتقال به اون هاست دانلود ذخیره میکنی

بعد میای روی VDS حدودا 4 - 5 تا مجازی بالا میاری که این مجازی ها کارشون فقط پردازشه که میتونی از Virtualizor استفاده کنی و کاملا منابع و.. رو مشخص کنی توصیه ام میکنم از سروری با هارد NVME استفاده کنی چون سرعتش بالاتره و توی مدیریت فایل های حجیم راحت تری ولی برای نگهداری جهت استریم و... همون HDD کافیه ( برای شروع کار )

بعدش سیستمی که برای تبدیل ویدئو ها مینویسی به صورتی باشه که شما یه صف پردازش ایجاد میکنی ( روی یکی سرور که پنل روش سرو میشه ) بعدش این صف پردازش پاس داده میشه به VPS ها ( همونایی که کار پردازش رو میکنن ) هر کدوم که آزاد بود شروع میکنه صف پردازش رو کاراشو انجام دادن در اصل شما 4-5 تا یونیت برای تبدیل داری که همشون روی اون VPS با منابع مشخص پیاده شدن و بعد از تبدیل فایل هارو انتقال میدن به هاست دانلود و مسیرشون توی پنلت ثبت میشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام