PDA

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



rezalaghaian
04-06-2011, 03:09 PM
چکیده

امروزه سرورهای کامپیوتری نقش مهمی در زندگی انسان ایفا می کنند. یکی از مهمترین وظایف مدیران شبکه، بالا بردن قابلیت اطمینان در سرورها می باشد. پایش لحظه به لحظه وضعیت سرور، یکی از کلیدی ترین ابزار برای خطایابی، پیش بینی خطاهای احتمالی و همچنین بهینه کردن عملکرد سرور می باشد. به دلیل وجود پارامترهای بیشمار در سرور، انتخاب پارامتر صحیح برای پایش وضعیت، تجزیه و تحلیل اطلاعات مانیتور شده و نحوه پیش بینی خطاهای احتمالی به مهارت خاصی نیاز دارد. در این مقاله مزایا و نحوه استفاده از پایش سیستم در سرورهای کامپیوتری توضیح داده شده است.

rezalaghaian
04-06-2011, 03:09 PM
مقدمه
در دنیای دیجیتالی امروز، نمی توان نقش کامپیوترها را در زندگی انسان نادیده شمرد. هر چه به جلو پیش می رویم ابعاد وسیعتری از زندگی مان دیجیتالی و الکترونیکی می شود. از بانکداری الکترونیکی و خرید آن لاین گرفته تا سیستم های اداری که در آن ها کاغذها جای خود را به دیتاهای کامپیوتری داده اند.
در این میان نقش سرورهای کامپیوتری بسیار حائز اهمیت می باشد؛ به خصوص در مجموعه هایی که هیچگونه سیستم موازی یا جایگزین برای سیستم کامپیوتری وجود نداشته باشد. (Paperless Systems) در این سیستم ها، در صورت بروز خطا و از کار افتادن یک سرور ممکن است کل مجموعه از کار بیافتد. به عنوان مثال از کار افتادن یک وب سایت خرید و فروش آن لاین به مدت فقط 1 ساعت می تواند هزاران دلار ضرر به صاحبان آن وارد کند. و یا در بیمارستانی که در آن از سیستم HIS استفاده می شود، از کار افتادن سرور HIS یعنی مختل شدن روند پذیرش بیمار، ترخیص بیمار و ... و این یعنی فاجعه!!!
برای upنگه داشتن سرورها عوامل زیادی را باید مد نظر داشت، از جمله عوامل محیطی مانند جریان بدون نوسان برق و دمای اتاق سرور و همچنین عوامل سخت افزاری و نرم افزاری متناسب با سرویسی که توسط سرور ارائه می شود.
یکی از روش های جلوگیری از Downشدن سرورها، پایش لحظه به لحظه سیستم می باشد.
پایش سرور مزایای زیادی دارد که در این مقاله به آن ها اشاره خواهد شد.
در ماشین های صنعتی پایش وضعیت به صورت اندازه گیری مشخصات فیزیکی ماشین و با استفاده از سنسور، تست روغن و روش های خاص خود می باشد، اما در سرورهای کامپیوتری پایش وضعیت به صورت اندازه گیری پارامترهای نرم افزاری و سخت افزاری سیستم و با استفاده از نرم افزارهای خاصی انجام می گیرد.
به علت وجود هزاران پارامتر قابل پایش در سرورها، انتخاب پارامتر مناسب، تجزیه و تحلیل نتایج بدست آمده و در نهایت استفاده از آن به منظور پیش بینی خرابی های احتمالی نیاز به مهارت خاصی دارد.
به طور کلی پارامترهایی که مورد پایش قرار می گیرند به سرویسی که سرور ارائه می کند و نقش آن سرور در شبکه بستگی دارد؛ ولی در این مقاله سعی شده است پارامترهای مهم که در همه ی سرورها اهمیت فراوان دارند و چگونگی پیش بینی خرابی های احتمالی با توجه به نتایج بدست آمده، توضیح داده شود.

rezalaghaian
04-06-2011, 03:10 PM
مزایای پایش سیستم در سرورهای کامپیوتری

1- یکی از عمده ترین کاربردهای پایش سیستم، تهیه Baseline برای سرور می باشد.
Baseline: مشخصات مورد نیاز یک سرور برای اینکه در شرایط نرمال کاری عملکرد قابل قبولی داشته باشد. یا به عبارتی، مقادیر مانیتور شده مربوط به پارامترهای مختلف در شرایط نرمال کاری.
تهیه یک Baseline متناسب با سرویس ارائه شده توسط سرور، این امکان را می دهد تا با مقایسه نتایج بدست آمده از پایش لحظه به لحظه سیستم و مقادیر موجود در Baseline، بتوانیم دید صحیحی از نحوه عملکرد سرور بدست آوریم. همچنین با تعریف Alert های مناسب به هنگام عبور کردن مقدار پارامترهای تعیین شده از مقدار مشخص شده در Baseline با انجام عمل مناسب، نسبت به بررسی و رفع اشکال احتمالی اقدام نماییم.
2- از مزایای دیگر پایش سیستم، خطایابی (و همچنین پیش بینی خطاهای پیش رو) بوسیله تشخیص Bottleneck در سرور می باشد.
Bottleneck به قسمتی از سرور گفته می شود که عملکرد کل سیستم را تحت تاثیر قرار می دهد و باعث می شود سرور عملکرد ضعیفی داشته باشد. این قسمت می تواند CPU، RAM، Hard Disk و یا هر کدام از اجزای سیستم باشد. به طور مثال اگر در سروری CPU و RAM با مشخصات فنی بالاتری از آنچه در Baseline مشخص شده وجود داشته باشند ولی سرعت خواندن و نوشتن هارد دیسک کمتر از مقدار تعیین شده در Baseline باشد، آن سرور عملکرد ضعیفی خواهد داشت. Bottleneck در این سرور، قطعا Hard Disk آن خواهد بود که باید ارتقاء یابد.
3- با استفاده از پایش لحظه به لحظه سیستم می توان این اطمینان را حاصل کرد که اطلاعات مربوط به نحوه عملکرد سیستم در اختیار ماست و می توانیم با استفاده از پیش بینی های موثر و عملیات اصلاحی در زمان های مناسب قابلیت اطمینان سرور را بالا ببریم.
به طور مثال با تشخیص CPU Usage بالا بر روی یک سرور می توان درخواست ها را به صورت اتوماتیک به سرور دیگری فرستاد که این خود باعث تقسیم شدن ترافیک بین سرورهای شبکه و در نتیجه ارائه شدن سرویس به طور مداوم و با سرعت قابل قبول خواهد شد.
4- با شناسایی مشکلی بخصوص بر روی یک سرور می توان از گسترش آن مشکل بر روی شبکه جلوگیری کرد. به طور مثال اگر زمان پاسخگویی یک سرور (مثلا دیتابیس سرور) بالا رود، بقیه سرورهایی که با آن در ارتباط هستند نیز کند خواهند شد که با استفاده از پایش سیستم و انجام عملیات اصلاحی مناسب می توان جلوی این مشکل را گرفت.

rezalaghaian
04-06-2011, 03:10 PM
زار مورد استفاده برای پایش سرور
برای پایش سرور می توان از نرم افزارهای مختلفی استفاده کرد. نحوه کار این نرم افزارها یکسان می باشد. به این صورت که مقادیر مربوط به یک یا چند پارامتر مشخص شده را به صورت لحظه به لحظه و گرافیکی در اختیار کاربر قرار می دهند. علاوه بر آن با استفاده از این نرم افزارها می توان اطلاعات مربوط به وضعیت پارامترهای مختلف را در یک فایل ذخیره کرد و در زمان دیگری مورد تجزیه و تحلیل قرار داد.
در ویندوز Server 2003 نرم افزار Performance Monitor به صورت پیش فرض روی ویندوز نصب شده و به صورت رایگان قابل استفاده می باشد. ولی باید توجه داشت که انتخاب پارامترهای مناسب و تجزیه و تحلیل داده های ذخیره شده توسط Performance Monitor کاری تخصصی و در مواردی دشوار می باشد.

rezalaghaian
04-06-2011, 03:10 PM
پارامترهای مهم در پایش سرور


1- RAM
هر گاه یک سرور عملکرد ضعیفی داشته باشد، اولین چیزی که به عنوان Bottleneck به ذهن می رسد حافظه RAM آن می باشد.
هنگامی که یک سرور با کمبود حافظه RAM مواجه می شود، شروع به Page کردن اطلاعات از روی RAM به Hard Disk می کند که این عمل معمولا با صدای هارددیسک و چراغ چشمک زن قرمز روی کیس همراه است. این عمل به شدت روی عملکرد سرور تاثیر می گذارد.
معمولا دیتابیس سرورها و حتی ایمیل سرورها احتیاج به RAM بالایی دارند و کمبود آن به شدت روی عملکرد سرور تاثیر می گذارد. در مقابل این سرورها به طور مثال Domain Controller ها هستند که احتیاج به RAM بالایی ندارند.
دار رابطه با Memory، پارامترهای زیادی وجود دارد که می توان آنها را مانیتور کرد. در این مقاله فقط به 2 مورد که اهمیت بیشتری دارند اشاره شده است:


1- Memory\Available Bytes (or \Available Kbytes or \Available Mbytes)

هرچه مقدار Available Bytes حافظه بیشتر باشد، عملکرد سرور بهتر و سرعت پاسخگویی آن بیشتر خواهد بود.
وقتی پارامترهای مربوط به حافظه را مانیتور می کنیم، اولین پارامتر Available Bytes می باشد. مادامیکه مقدار آن بالای 10 MB باشد سرور RAM کافی در اختیار دارد. )در حالت کلی این مقدار، %2 حافظه RAM سرور می باشد.)
برای مثال اطلاعات مربوط به پارامترهای حافظه یک سرور که با کمبود RAM مواجه است و توسط نرم افزار Performance Monitor مانیتور شده است، در شکل شماره 1 نمایش داده شده است.
همانطور که در شکل شماره 1 مشاهده می شود، مقدار حافظه آزاد RAM به کمتر از 3 MB کاهش یافته است که به خوبی نشان می دهد این سرور نیاز به میزان RAM بیشتری دارد.

http://pnu-club.com/imported/mising.jpg



شکل شماره 1 – پارامترهای مانیتور شده مربوط به حافظه یک سرور نرم افزاری که با کمبود RAM مواجه است.

rezalaghaian
04-06-2011, 03:10 PM
به طور مثال هنگامی که یک دیتابیس می خواهد عمل مرتب سازی را روی تعدادی زیادی از داده ها انجام دهد احتیاج به حافظه دارد. اگر سیستم عامل این حافظه را از RAM در اختیار نرم افزار قرار دهد سرعت آن 100 برابر بیشتر از هنگامی خواهد بود که سیستم عامل این حافظه را از روی Page File در اختیار نرم افزار قرار دهد. این مثال به خوبی نمایانگر نقش حافظه RAM برای سرورهای نرم افزاریمی باشد.


2- Memory\Pages/sec

این پارامتر تعداد عملیات Page شدن اطلاعات بر روی هارد دیسک را نشان می دهد و مقدار آن به خوبی می تواند نشانگر مشکل RAM باشد. اگر مقدار این پارامتر به صورت متداول بالای 20 باشد، سرعت عملکرد سرور پایین خواهد آمد.
البته باید توجه کرد که در تشخیص RAM به عنوان Bottleneck، هیچ گاه نباید به مانیتور کردن یکی از دو پارامتر اشاره شده، اکتفا کرد. بلکه باید هر دو را به صورت همزمان مانیتور کرده و سپس در مورد نتایج بدست آمده اظهار نظر نمود.
اگر در سرور مشکل از RAM باشد، به راحتی می توان با اضافه کردن RAM جدید مشکل را برطرف کرد. البته باید توجه کرد که RAM جدید سازگار با RAM های قبلی و Motherboard سرور باشند.

2- CPU
هرگاه یک سرور تعداد Process های زیادی را به صورت همزمان انجام دهد، سرعت پاسخگویی به Client ها پایین خواهد آمد و در نتیجه کاربران شبکه ناراضی خواهند بود. یکی از وظایف اصلی مدیران شبکه فراهم کردن رضایت کاربران می باشد.
ساده ترین روش اندازه گیری Busyness یک سرورمانیتور کردن پارامتر Processor(_Total)\%ProcessorTimeمی باشدکه میزان Utilization پردازنده سرور (CPU) را توسط کلیه Process ها نمایش می دهد.
باید توجه داشت که اگر سرور دارای چند پردازنده باشد، آنگاه پارامتر Processor(_Total)\%Processor Timeمیزان میانگین Utilization همه ی پردازنده ها را نمایش خواهد داد.
اگر پس از مانیتور کردن Processor(_Total)\%Processor Time، مشاهده شود که مقدار آن برای مدت زمان طولانی نزدیک به 100% باشد (شکل شماره 2)، مطمئنا CPU به نسبت سرویس های فعال آن سرور ضعیف بوده و باید با مانیتور کردن پارامترهای جزیی تر، Process ای را که میزان Processor Utilization بیشتری را به خود اختصاص می دهد معین نمود.

http://pnu-club.com/imported/mising.jpg

در عین حال میزان بالای Processor Utilization همیشه نمی تواند نشانه ای از ضعیف بودن CPU باشد. به طور مثال هنگامی که سرور در حال Backup گیری از اطلاعات می باشد Processor Utilization بالا یک امر طبیعی است، به خصوص که عمل Encryption و Compression هم روی اطلاعات انجام شود.
در حقیقت اگر میزان Processor Utilization به طور طبیعی حدود 80% باشد، وضعیت طبیعی و خوب است و نشان می دهد که این سرور به صورت موثر در حال انجام دادن وظایف خود می باشد و به اصطلاح Under Utilized (بدون استفاده) نمی باشد.
اگر هم Processor Utilization یک سرور برای مدت زمان طولانی در حدود 20% یا 30% باشد، نشان می دهد که این سرور Under Utilized می باشد و می توان از آن به عنوان یک Virtual Server استفاده کرد.
یک روش دیگر برای مانیتور کردن Utilization پردازنده سرور، مانیتور کردن دو پارامتر جزئی تر می باشد. Processor(_Total)\%Privileged Time و Processor(_Total)\%User Time که به ترتیب Processor توسط هسته ویندوز و توسط نرم افزارهای نصب شده روی ویندوز را نمایش می دهند. اگرProcessor(_Total)\%Privileged Time بالا باشد نشانگر این است که این پردازنده قادر به اجرای سریع خود سیستم عامل نمی باشد چه برسد به اجرای نرم افزار های جانبی. یا به اصطلاح، این CPU توانایی اجرای نرمال این سیستم عامل را ندارد، که در این حالت باید نسبت به تعویض پردازنده یا اضافه کردن پردازنده جدید اقدام کرد. Utilization
اگر Processor(_Total)\%User Time بالا باشد، نشان می دهد که سرویس ها یا نرم افزار های زیادی روی این سرور قرار دارد که می توان با ارتقا دادن سرور و یا منتقل کردن بعضی از سرویس ها به سرور دیگر این مشکل را برطرف کرد.
اگر سرور در شبکه، سرویس های متعددی را ارائه می کند و یا نرم افزارهای زیادی روی آن اجرا می شود، می توان یک پارامتر مهم دیگر را مانیتور کرد: System\Processor Queue Length که نشان دهنده تعداد Thread هایی می باشد که در انتظار اجرا شدن توسط پردازنده هستند. اگر مقدار این پارامتر در هنگامی که CPU Utilization حدود 100% است، بالای 5 باشد، نشان می دهد که پردازنده برای این سرور ضعیف می باشد و احتیاج به ارتقا دارد. ولی اگر در هنگام CPU Utilization بالا این مقدار کمتر از 2 باشد، این حالت طبیعی است و نگرانی در مورد نحوه عملکرد پردازنده وجود نخواهد داشت.