-
February 27th, 2015, 20:51
#1
چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
سلام
چطور گوگل و یوتیوب که روزانه میلیون ها نفر مراجعه کننده دارند (به صورت همزمان) و میتونند پاسخگوی این حجم عظیم باشند؟ پهنای باند چجوری تامین میشه؟ چگونه میتونن امنیت سایت خود و سرورهاشون رو تامین کنن؟ آیا گوگل اطلاعاتی درباره این سوال ها به بیرون میده؟
-
تعداد تشکر ها از saeedgoogle به دلیل پست مفید
-
February 27th, 2015 20:51
# ADS
-
February 27th, 2015, 21:17
#2
عضو جدید
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
چیزی که من میدونم این هستش که از پایتون خیلی جاها استفاده میکنند برای اینکار
حالا چطور اینکارو میکنند رو اطلاعاتی ندارم راجبش ولی فکر کنم به مباحثی مانند big data و data mining مرتبط باشد.
-
-
February 27th, 2015, 21:49
#3
عضو انجمن
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
دقیقا همین سوال برای منم پیش اومده بود
اما هنوز به پاسخ اون نرسیدم!
یه جورایی تصمیم گرفتم در آینده از سرور ها و دیتاسنتر های خارج از کشور دیدن کنم...
گوگل اجازه میده کسی از دیتا سنتر اونا دیدن کنه؟
-
تعداد تشکر ها از سیدرضا بازیار به دلیل پست مفید
-
February 27th, 2015, 21:53
#4
عضو دائم
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
باسلام
بدون شک با تکنولوژِی کلود کامپیوتینگ
با سرور های معمول حتی با 4 سی پی یو 12 هسته (24 تا مجازی ) یعنی 96 هسته مجازی پردازنده هم نمیشود
موفق باشید
-
تعداد تشکر ها از jahromweb به دلیل پست مفید
-
February 27th, 2015, 22:14
#5
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
عزیز اینطور نیست شرکت گوگل بیشترین دستگاهای سرور رو داره در کشور امریکای شمالی گفته شده اگر دستگاه های سرور گوگل قطع بشه 6 درجه دمای اب و هوای اونجا پایین میاد ببینید چقدر دستگاه های قدرت مندی دارن که رو دما هم تاثییر به سزایی داره پس بنابر این یوتوب و ... سایت های معروف از این قبیل سرور های زیادی دارند آن هم ابر سرور
-
تعداد تشکر ها ازkiarash-khatib به دلیل پست مفید
!MihanIt!, Cyrus.The.Great, downloaddl, dsamyes, mehrania, morteza1200, omid3963, secureconfig, shahab-f, takpar7, سیدرضا بازیار
-
February 28th, 2015, 23:19
#6
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
سلام
نمی دونم تو این سایت بود یا سایت دیگر یک بار کامل توضیح دادم چطوری گوگل و فیسبوک این همه پردازش را انجام می دهد.
-
-
February 28th, 2015, 23:34
#7
عضو انجمن
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
خب نیومدن روی یک سرور همه اینکارا رو بکنن که
دیتاسنتر های اختصاصی دارند حتی شنیدم یوتیوب داره تو اکثر کشور ها دیتاسنتر خودش رو برپا میکنه تا مثلا منی که از ایران میخوام یک ویدئو ببینم از دیتاسنتری ویدئو رو ببینم که داخل افغانستانه و به من نزدیکه.نه از امریکا!
و حالا زیر ساخت های با کیفیتی که دارند،سخت افزار ها،سرمایه های کلان،تیم های بزرگ،بررسی و مانیتورینگ های دائمی ،و...و....و....
-
تعداد تشکر ها ازtaksis به دلیل پست مفید
-
February 28th, 2015, 23:37
#8
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
نوشته اصلی توسط
pejman_view
سلام
نمی دونم تو این سایت بود یا سایت دیگر یک بار کامل توضیح دادم چطوری گوگل و فیسبوک این همه پردازش را انجام می دهد.
سلام
خب اگر یکبار دیگه توضیح بدید ممنو.ن میشم
-
-
March 1st, 2015, 02:23
#9
عضو جدید
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
شرکت هایی مثل گوگل دیتاسنتر های اختصاصی خودشون رو دارن که فقط سایت های مربوط به شرکت خودشون رو میزبانی می کنن. هزاران سرور پیشرفته وظیفه نگهداری و پردازش اطلاعات این شرکت ها رو به عهده دارن. + اینکه هزارن نفر مهندس و برنامه نویس هم شبانه روز این سرورها رو مدیریت می کنن.
-
-
March 1st, 2015, 08:55
#10
پاسخ : چطور گوگل و یوتیوب توانایی پردازش این حجم پهنای باید رو دارن؟
سلام
این یه پستی بود یکی از دوستان تو یه انجمن دیگر برای بازی های رایانه ای پرسید به نحوه پردازش اطلاعات سایت های بزرگ از قبیل فیسبوک اشاره داشتم دیگه من تغییرات رو ندادم و کپی و پیست کردم به بزرگواری خودتان ببخشید:
بحث ها بسیار طولانی و فنی بودن با توجه به وقتی که داشتم شاید 4 5 پست اول را خواندم و از بقیه پوزش می طلبمم ممکن است مطالبمم توسط دوستان گفته شده باشد.اما باتوجه به اینکه من پیش زمینه ای در بازی های اجتماعی آنلاین تحت وب دارم مایل دونستم که با شما به این مطلب را به اشتراک بذارم. این گونه بازی ها به دو عنوان خوانده می شوند (MMO) یا (Social Games). این دو عنوان تفاوت آنچنانی ندارند فقط Social Games ها در پلتفرمهایی مانند فیس بوک، تویتر و .. اجرا می شود. بازی های MMO مانند تراوین و جنگ خان ها و Social Games ها مانند Zynga Poker بازی هایی در سایت های اجتماعی. هر دوی این بازی ها دارای کاربران زیادی هستند که همزمان با هم آنلاین هستند و بصورت RealTime در حال کار هستند. در اینگونه بازی ها تحلیلگران و برنامه نویسان سعی می کنند بهینه ترین روش های برنامه نویسی، کوئری ها و ساختار دیتابیس را در نظر بگیرند.
اما مسئله مهم این است آیا با روش های بهینه می شود با یک سرور معمولی بازی راه اندازی کرد؟
با توجه به نظر کارشناسان متخصص و تجربه شخصی بنده خیر. چون هر چقدر هم سیستم بهینه و قوی باشد فشار روی سرورها نبایستی از حدی بیشتر شود. و بازی های امروزی پارامترهای بسیاری را سنجش و پردازش می کنند که همه آن وابسته به دیتابیس هستند بنابراین فشار روی دیتابیس سرور زیاد هستند. بنده با تجربه ای که داشتم متوجه شدم نبایستی سرورها بیش از 60% منابع آن پر شود چون باعث افزایش زمان پردازش می شود.
مثلاً ما در بازی که تست کردیم با 150 کاربر آنلاین سروری با مشخصات قوی ذیل:
CPU: Dual E5-2680v2
RAM: 64GB DDR3
HDD: 120 SSD
سرعت پردازش کلی یک فرآیند بازی از 0.01 ثانیه برای یک بازیکن به 1.9 ثانیه افزایش یافت. این یعنی اینکه کاربری که مثلاً می خواست عملیاتی در بازی انجام دهد بایستی 1.9 ثانیه صبر می کرد این یعنی اگر شما سایت خبری دارید و هر صفحه زیر یک ثانیه بازمی شد حالا بالای 2 یا 3 ثانیه طول می کشد تا باز شود. این یعنی اینکه بازی شما بسیار کند و خسته کننده برای بازیکن ها می شود و مرگ زود رسی برای بازی خود بایستی در نظر بگیرید.
حال دیدم یکی از دوستان گفتند سرورهای 10 12 میلیونی را با سرورها و دیتاسنتر فیس بوک مقایسه می کنید؟ این سوال و مقایسه درست نیست چون در نظر بگیرید اگر بازی های آنلاین به اندازه فیسبوک آنلاین کاربر آنلاین داشته باشند شاید دیتاسنتری چند برابر قوی تر از دیتاسنتر موجود فیس بوک نیازمند بود. چه بسا سیستمی که من در بالا ذکر کردم قیمتی معادل 40 میلیون تومان در ایران دارد و جزء قویترین سیستم های موجود در بازار است.
بگذارید قبل از اینکه به بحث بازی برگردم توضیحاتی در مورد اقدامات فیس بوک در زمینه دیتابیس و وب سرور بپردازیم تا پیش زمینه ای مناسب داشته باشیم. ترجیح می دهم در زمینه فیسبوک با سند بجای حدس و گمان صحبت کنم طبق گفته سخنگوی فیسبوک که در کنفرانسی که چند وقت پیش داشت اعدادی فاش کرد که جای بسی تامل است:
- فیسبوک 800 میلیون یوزر دارد که 500 میلیون آن روزانه فیسبوک خود را چک می کنند.
- 300 میلیون کاربر موبایلی دارند که دائماً در حال دریافت و ارسال اطلاعات است.
- 7 میلیون اپلیکیشن دارد
فیس بوک در هر ثانیه 60 میلیون کوئری را انجام می دهد، 4 میلیون row در هر ثانیه تغییر می کند. اما فیسبوک چگونه این کار را انجام می دهد!!!
دیتابیس فیسبوک چیزی نیست جزء همین MySQL که ما استفاده می کنیم. اما Scale Up شده. Scaling در واژه یعنی بزرگ کردن مقیاس. با دیتابیس بر روی کامپیوتر های مختلف تقسیم شده است.
دیتابیس فیسبوک از 3 لایه: کش ، مدیران دیتابیس ، ذخیره سازها تشکیل شده است. طبق گفته فیسبوک بیش از 90% کوئری ها در لایه کش انجام می شود یعنی اینکه این کوئری ها به لایه استفاده از ذخیره سازها نمی رسند.
فیسبوک از پلاگین نام آشنا Memcache استفاده می کند که سیستم متن-باز برای کش کردن در MySQL استفاده می شود و در کنار آن از ماژول خود ساخته ای با نام FlashCache استفاده می کند تا روی هاردهای SSD کش شوند. که این پلاگین هم فیسبوک بصورت رایگان در github منتشر کرده است.
در مورد لایه های ذخیره ساز هم اگر بخوام توضیح بدهم لایه های ذخیره ساز به دو صورت عمودی و افقی هستند. لایه های عمودی شامل کامپیوترهایی هستند که اطلاعات مشابه به هم در آن ذخیره می شود تا با نابودی هر لایه عمودی ، لایه عمودی دیگر کمک رسانی کند و از دست رفتن اطلاعات جلوگیری شود. چون دیتابیس فیس بوک اینقدر بزرگ است که یک کامپیوتر بعنوان Data Node در زیر مجموعه لایه عمودی توانایی ذخیره این حجم اطلاعات را نداشته باشد. آن ها را با تکنیک Sharding تقسیم می کنند (البته این تکنیک در خود MySQL موجود است فقط بایستی از آن بهره جست). و در هر کامپیوتر مقداری از دیتابیس ذخیره می شود که این روش Horizontal Scaling یا بزرگ کردن افقی دیتابیس گفته می شود.
در کل چند کپی از دیتابیس ذخیره شده و هر کپی هم بخاطر بزرگی آن روی چندین کامپیوتر دیگر ذخیره می شود. با این سبک می توان مطمئن بود که اگر شما کامپیوتری را از مدار خارج کردید سایت شما بدون هیچ مشکل به کار خود ادامه می دهد.
و لایه مدیران هم که توضیح دادم کار آن رسیدگی و پردازش Data Node هاست.
وب سرور فیسبوک هم Tornado نام دارد که در کنار nginx نصب می شود. که توانایی nginx را تا چند برابر افزایش می دهد. ساز و کار وب سرور nginx هم مانند دیتابیس است و قابلیت scaling دارد بگونه ای که 10 ها کامپیوتر بعنوان webserver به کاربران پاسخ می دهند و فشار آن ها را روی هم تقسیم می کنند.
خوب حالا رسیدیم به بحث شیرین بازی. من خودم تا اینجا ذهنم خسته شده اما می خواستم توی یک پست جمعش کنم.
برای یک بازی تحت وب - به وب سرور نیاز دارید و بایستی بدانید یک وب سرور برای فرضاً 3000 بازیکن پاسخگو نخواهد بود.
برای یک بازی تحت وب - به دیتابیس نیاز دارید که شما برای دیتابیس توجه داشته باشید لاگ ها ، جداول و ... همه در آن ذخیره می شوند. و با هر بار لود صفحه چند صد کوئری به سمت دیتابیس سرازیر می شود که اگر می خواهید سرعت پردازش شما که در اول به آن اشاره کردم بالا نرود نیاز به لایه های کش ، مدیریت و ذخیره ساز دارید. البته این لایه ها همگی می توانند روی یک کامپیوتر باشند اما تجربه ما ثابت کرده یک کامپیوتر نمی تواند همه این ها را ساپورت کند. بعد جالبی قضیه این است که دیگر تراوین لازم ندارد برای سرورهای خود سرورهای جداگانه راه اندازی کند فقط کافی است تمامی دنیاهای خود را روی یک دیتابیس با این آرشیتکت نگه دارد. هم تا حتی 40% سیستم کمتر نیاز دارد یعنی فرضاً اگر برای هر دنیا نیاز به 5 تا سرور داشته باشد. حال اگر 3 دنیا را در کنار هم روی یک دیتابیس نصب کند ممکن است بجای 15 سرور بتواند از 12 سرور استفاده کند.
بالتبع برنامه نویسی و تحلیل های خودتان هم برای ساخت شروع بازی باید روی این آرشیتکت های دیتابیس متوجه شده باشد تا بعد از راه اندازی به این تکاپو نیفتید که کد خود را تغییر دهید چون آن موقع برای تجارت شما خیلی دیر است.
ببخشید سرتان را درد آوردم مطلب خیلی گسترده بود سعی کردم خلاصه اش کنم.
در مقاله بالا فکر نکنم به این دو مورد اشاره کرده باشم:
1- هر لایه مانند وب سرور ، کش سرور ، دیتا استور و ... بصورت Cluster کار می کند. یعنی دخیره اطلاعات و پردازش ها از طریق چند صد رایانه انجام می شود.
چینش آرایه ای این نوع کامپیوترها به دو گونه است افقی و عمودی. افقی ها بصورت موازی کار میکنند و عمودی ها برای لایه هاست. موازی ها پردازش یک لایه را بصورت موازی انجام می دهند.
2- Failover این یعنی اینکه هر کامپیوتری از شما از رده لایه های افقی خارج شود کامپیوترهای موجود دیگر فشار این کامپیوتر را به دوش می گیرند. این یعنی اینکه شما هر وقت خواستی برو چندتا کامپیوتر رو از شبکه خارج کنید و باز سایت شما هیچ خدشه ای در عملکردش نداشته باشد.
متاسفانه این بحثی که ارائه دادم همه ساز کار را ارائه نمی دهد و گراف های زیادی نیاز دارد که در دسترس نداشتم. البته اگر این مطلب را خیلی دقیق پیگیری کنید می توانید پایان نامه ای برای ارشد خود ارائه دهید. مطلب بسیار جالب و خیلی خوبی است.
لینک مقاله:
http://barnamenevis.org/showthread.p...=1#post2048931
با تشکر از توجهتون
پژمان
-
تعداد تشکر ها ازpejman_view به دلیل پست مفید