PDA

بازدید نسخه کامل شده : میزان رم مورد نیاز برای سرور


DarkMan
03-30-2007, 10:43 PM
اقا سلام !! :d

سوالی که همیشه واسه من وجود داشته اینه که چطوری میشه رم مورد نیاز سرور ( LAMP ) رو مشخص کرد.
من اومدم رم مورد نیاز اسکریپتم رو با این فانکشن بدست اوردم :

function getMemUsage()
{
// Windows workaround
$output = array();
exec('tasklist /FI "PID eq ' . getmypid() . '" /FO LIST', $output);
return substr($output[5], strpos($output[5], ':') + 1);
}

یه چیزی در حدود 5 مگ !!
البته این کد فقط رو ویندوز کار میکنه !!
این 5 مگه یعنی چی ؟! یعنی اگه 2 تا درخواست همزمان فرستاده بشه به اسکریپت 10 مگ مموری اشغال میشه ؟!

کلا میشه یه بحثی رو نحوه بدست اوردن رم مورد نیاز واسه پلت فرم ( ؟!) LAMP بشه که من یه مقدار روشن بشم ؟!

[ Apache 1.3.x - Mysql 5 - Php 5.1.2 ]
اساتید امید - علی - ارتین - کل ابراهیم و ... ! راه بندازید منو !! :d

artin
03-30-2007, 11:00 PM
مقدار فضای هر proccess در آپاچی بستگی به خیلی چیزها داره
ورژن آپاچی که 1.3.x 2.0x و یا 2.2.x باشه
نسخه php و نوع و تعداد module های نصب شده و همین طور استفاده از برنامه ها جانبی برای کش کردن و افزایش سرعت php مثل EAccelerator و xcache یا zend
32بیت یا 64بیت بودن لینوکس
و در آخر و شاید هم مهمتر از همه خود اسکریپت

DarkMan
03-30-2007, 11:06 PM
مرسی ارتین !!

اقا منبعی ! راهنمایی !! چیزی نیست بشه یکم مطلع شد در این زمینه !!
خب مثلا شما یه Php 5.1 + mysqli ext رو درنظر بگیر با همون apache 1.3 با zend !! :d ( چی شد ! )

کلا راهی نیست اسکریپت بره زیر فشار ! مثلا زیر 100 تا درخواست همزمان ( به طور مجازی البته !! ) تا میزان منابع مورد نیازش معلوم بشه برای جواب دادن به این درخواست ها ؟

artin
03-30-2007, 11:33 PM
منبع که تا حالا ندیدم
ولی حالا بگو دقیقا چه نوع اسکریپتی هست و در زمان peak چند درخواست همزمان داری
کنترل پنل هم داری ؟ مثل cpanel ؟
ولی حدودی بین 4 تا 10 12 مگ هر پروسس مصرف می کنه

فکر کنم اگه یا اسکریپت ساده باشه حداقل می تونی با 1 گیگ ram شروع کنی

حالا مگه مشکل چیه ؟ یعنی نمی تونی بعدا اضافه کنی ؟

DarkMan
03-31-2007, 12:12 AM
اسکریپت خاصی نیست. Table از دیتابیس خونده میشه و یه template parser ساده ( just replacing ) خروجی رو میفرسته به مرورگر.

کنترل پنل هم Webmin هستش.
فک میکنم تو زمان پیک حدود 20 - 25 درخواست باشه.192 مگ هم dedicated ram هست.
البته ماه اول اینطوریه ، بعد به حدود 100-150 میرسه. واسه همین میخوام ببینم میشه با vps ماه اول رو گذروند یا باید dedicated بگیرم.

DarkMan
03-31-2007, 12:17 AM
البته هدف اصلی من فقط محاسبه واسه این پروژه نبود !!

کلا میخواستم ببینم روشی هست که بشه حدود میزان رم مورد نیاز رو بدست اورد یا نه !

DarkMan
03-31-2007, 12:20 AM
اها !! یه چیز دیگه !! Squid میتونه موثر باشه تو این زمینه ؟!

Shahed
03-31-2007, 12:33 AM
البته در خصوص میزان رم برای اجرای برنامه حتما نباید دنبال حل مشکل باشی ! میتونی صورت مسئله رو پاک کنی خیلی راحت. چجوری؟ مثلا یه راهش میتونه کم کردن تعداد کوئری ها باشه و یک روش برای کم کردن کوئری ها هم میتونه سیستم کش در سطح اون template parser باشه. حالا یا از طریق استفاده از چیزهایی smarty که اوپن سورس هم هستن یا اینکه خودت این رو اضافه کنی. برای شروع هم اون تاپیک برادر NeN در خصوص سیستم کش میتونه خوب باشه.

البته راه های دیگه ای هم هست.

DarkMan
03-31-2007, 12:44 AM
البته در خصوص میزان رم برای اجرای برنامه حتما نباید دنبال حل مشکل باشی ! میتونی صورت مسئله رو پاک کنی خیلی راحت. چجوری؟ مثلا یه راهش میتونه کم کردن تعداد کوئری ها باشه و یک روش برای کم کردن کوئری ها هم میتونه سیستم کش در سطح اون template parser باشه. حالا یا از طریق استفاده از چیزهایی smarty که اوپن سورس هم هستن یا اینکه خودت این رو اضافه کنی. برای شروع هم اون تاپیک برادر NeN در خصوص سیستم کش میتونه خوب باشه.

البته راه های دیگه ای هم هست.
Cache داره ، اما فعال یا فعال نبودن Cache زیاد تاثیری نداره ، در حد 20-30 kb

اسکریپت هم در Optimize ترین حالت خودشه ! درحال حاضر !

artin
03-31-2007, 12:45 AM
اها !! یه چیز دیگه !! Squid میتونه موثر باشه تو این زمینه ؟!

squid که کله صفحه رو کش می کنه ! مگه صفحات زود به زود آپدیت نمی شن ؟
به جای این کار می تونی از روش های دیگه ای که query ها رو کش می کنه استفاده کنی
چون خود squid هم resource مصرف می کنه حالا چه ram و چه cpu !

اگر بتونی کمی بیشتر راجبه اسکریپتت بگی بیشتر میشه کمکت کرد


ولی خوب 192 mb برای 25 درخواست همزمان php کار رو سخت می کنه :adore:

چون حداقل اگه برای پروسس هم 6 مگ در نظر بگیریم میشه در 150 مگ !

به جز این باید برای mysql server و سرویس های دیگه لینوکس که دارن کار می کنن هم فکر کنی !

به جز اینها باید یه حداقل حافظه ای هم خالی بزاری ! دیگه نمی تونی بر فرض بگی 192 مگ ram دارم می تونم از 100 اش استفاده کنم چون مساوی با crash شدن سرور میشه :دی

به نظر حداکثر طوری تنظیم که که در زمان پیک بیشتر از 160 170 مگ استفاده نکنی