PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : میزان پاسخگویی سرور به درخواست ها و کوئری های بانک اطلاعاتی



محمد1369
August 9th, 2017, 09:21
با سلام و عرض خسته نباشید

یه نرم افزار اندروید طراحی کرده ام که اطلاعات خودش رو در بانک اطلاعاتی mysql ذخیره می کند می خواستمبدونم به چه وسیله ایی بفههمم که هر سرور به چند هزار درخواست پاسخ می دهد.
اطلاعاتی که نرم افزار به سمت سرور می فرستد همگی در بانک ذخیره می شوند و یا کوئری در بانک هستند
طبق پیش بینی ها اگر فقط 300 هزار نفر اپلیکشن رو نصب کنند ماهی 9 میلیون رکورد در یک جدول دیتابیس ذخیره می شوند و دوباره اگر درخواستی از سمت نرم افزار فرستاده شود باید به نحوی دائما این 9 میلیون رکورد پرزداش وند و جواب آنها فرستاده شود البته جداول دیگری هم هستند که تعداد رکورد هایی مشابه دارند

حالا به نظرتون به چه صورتی باید عمل کنم
لازم به ذکره که سرور مورد نظر بع غیر اون 3000 هزار کاربر باید آماده پاسخگویی و فرستادن جواب به 50000 هزار نفر دیگر هم باشد
خود من به نظر خودم باید به جای یک سرور باید 4 سرور در نظر بگیریم با محتوای یکسان که یک الگوریتم هم وجود داشته باشد که درخواست ها را مدیریت کند


حالا منتظر نظرات شما می باشم
با تشکر

isoroush
August 11th, 2017, 01:46
با سلام و عرض خسته نباشید

یه نرم افزار اندروید طراحی کرده ام که اطلاعات خودش رو در بانک اطلاعاتی mysql ذخیره می کند می خواستمبدونم به چه وسیله ایی بفههمم که هر سرور به چند هزار درخواست پاسخ می دهد.
اطلاعاتی که نرم افزار به سمت سرور می فرستد همگی در بانک ذخیره می شوند و یا کوئری در بانک هستند
طبق پیش بینی ها اگر فقط 300 هزار نفر اپلیکشن رو نصب کنند ماهی 9 میلیون رکورد در یک جدول دیتابیس ذخیره می شوند و دوباره اگر درخواستی از سمت نرم افزار فرستاده شود باید به نحوی دائما این 9 میلیون رکورد پرزداش وند و جواب آنها فرستاده شود البته جداول دیگری هم هستند که تعداد رکورد هایی مشابه دارند

حالا به نظرتون به چه صورتی باید عمل کنم
لازم به ذکره که سرور مورد نظر بع غیر اون 3000 هزار کاربر باید آماده پاسخگویی و فرستادن جواب به 50000 هزار نفر دیگر هم باشد
خود من به نظر خودم باید به جای یک سرور باید 4 سرور در نظر بگیریم با محتوای یکسان که یک الگوریتم هم وجود داشته باشد که درخواست ها را مدیریت کند


حالا منتظر نظرات شما می باشم
با تشکر

متاسفانه نمی شود دقیق گفت ،

یک مثال قابل لمس ، شما نرم افزار فوتوشاپ را باز کنید
زمانیکه هیچ تب فعالی نداشته باشد مصرف cpu و رم آن قابل قیاس با وقتی ده تب با پروژه های نسبتا حجیم باز کرده اید نیست.

در پردازش درخواست های mysql نیز به همین منوال است.

برای شما بزرگوار به صورت خلاصه سروری که مورد نیازتان است باید CPU قوی تری داشته باشد ( سری core i رو فراموش کنید ، E52620 V4 ( اگر دوال بزارید که :113: ) )

رم سرور 64 گیگ و هارد SSD طبیعتا + یک کانفیگ مناسب mysql متناسب با نوع درخواست ، مشخصات سخت افزاری سرور

navid2zp
August 11th, 2017, 02:03
در مورد این که دقیقا شرایط به چه شکل خواهد بود خوب نمیشه نظر داد
کلا به خیلی موارد بر می گرده که خوب یک مورد مشخص پیچیدگی کوئری ها هست. به عنوان مثال چندین هزار درخواست برای یک ردیف که با کلید اصلی مشخص شده خوب منابع چندانی استفاده نمیشه و خیلی راحت هم پردازش میشه ولی خوب حالا کافیه یک سری شرط اضافه بشه، در این حالت شرایط خیلی متفاوت هست
ولی توصیه بنده به شما این هست که حتما سروری رو مخصوص دیتابیس تهیه کنید
و می تونید از قابلیت کش شدن دیتابیس روی رم استفاده کنید
سرعت رم خیلی بیشتر هست و طبیعتا نتیجه بهتری رو خواهید گرفت

jalal7h
August 21st, 2017, 06:41
مسئله شما بیشتر نرم افزاری هست.
شما میتونید بواسطه ترفند هایی فشار رو کم کنید.
برای مثال اطلاعات رو با یک پارامتر مشخص به چند جدول مجزا تقسیم کنید، یه کوئری ها رو در فواصل زمانی مشخص کش کنید، کوئری ها رو بهیده کنید، از این ۹ میلیون اطلاعاتی که ثبت میشه جدولی با اطلاعات کلی‌تر تهیه کنید و در برخی کوئری ها از این جدول کلی استفاده کنید و از این جور روش ها.