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

- 3 روز پیش
توسط Bl4Ck P4nD4 آپدیت شد
محسن بستان ( 19305 تجربه )
7 روز پیش
تخصص : توسعه دهنده وب

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

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

سوالات

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

محسن بستان ( 19305 تجربه )
6 روز پیش
تخصص : توسعه دهنده وب

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

علی بیات ( 191997 تجربه )
6 روز پیش
تخصص : توسعه دهنده ارشد وب

درود

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

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

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

حسام موسوی ( 204834 تجربه )
6 روز پیش
تخصص : طراح و برنامه نویس

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

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

Alimotreb ( 167092 تجربه )
6 روز پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام
@mohsenbostan

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

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

محسن بستان ( 19305 تجربه )
5 روز پیش
تخصص : توسعه دهنده وب

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

حسام موسوی ( 204834 تجربه )
5 روز پیش
تخصص : طراح و برنامه نویس

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

Bl4Ck P4nD4 ( 2385 تجربه )
3 روز پیش

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

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

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

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

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

برای ارسال پاسخ باید وارد سایت شوید