برنامه ریزی ظرفیت در لینوکس(capacity planning)

capacity planningجعبه سیاه سرورهای لینوکس است. در این مقاله مواردی که برای شروع کار باید انجام دهید آورده شده است.

بسیاری از مدیران سرورها ازcapacity planning می ترسند و یا آن را کاری غیر ضروری می دانند اول اینکه ترسی برای capacity planning وجود ندارد و دوم اینکه capacity planning یک مورد 100%  ضروری برای هر سرور می باشد.

در گذشته مدیران سیستم برای افزایش ظرفیت و افزایش کارایی سرورها باید تصمیم‌گیری های گسترده ای را انجام می دادند ارتقاء cpu یا RAM و حافظه و یا همه موارد،  معمولاً و نه همیشه  این ارتقاء ها فراتر از یک بروز رسانی و ارتقاء ساده انجام می شدند با این وجود هنوز هم مدیران سرورها تمایلی به capacity planning برای مدیریت صحیح ظرفیت سیستم خود ندارند در این مقاله سعی شده است مواردی که لازم است برای capacity planning  سرورهای لینوکس آورده شود، البته میتوانید از این راهنما در هر محیط دیگری مانند ویندوز، لینوکس ، یونیکس و یا نسخه های ترکیبی از این موارد استفاده کنید.

  • مبانی Capacity planning

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

  • در نظرگرفتن یک پلن پایه:

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

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

مجموعه بعدی از داده هایی که باید در نظر بگیرید ظرفیت فعلی است. شما باید RAM ، CPU ، دیسک و اطلاعات ظرفیت شبکه را ارزیابی کنید. سپس باید بدانید حداکثر ظرفیت شما برای هر سیستم چه میزان است. تفاوت بین ظرفیت فعلی و حداکثر ظرفیت، میزانی که می توانید ارتقاء داشته باشید را  به شما می دهد. به عنوان مثال، سیستمی را در نظر بگیرید که دارای پیکربندی زیر است: دو پردازنده چهار هسته ای ، رم 128 گیگابایتی ، دو دیسک 1TB در RAID 1 (mirrored) و یک رابط شبکه دو گیگابایت اترنت. حداکثر ظرفیت شما برای این سیستم چهار پردازنده چهار هسته ای ، 512 گیگابایت رم ، شش دیسک و دو شکاف باز PCIe برای کارت های توسعه مانند کارت های رابط شبکه Gb Ethernet (NIC) است.

 

ظرفیت فعلی  

بیشترین میزان ظرفیت

CPU

2 – Quad core4 – Quad core

RAM

128 GB

512 GB

Disk

2 Disks – 1 TB – RAID 16 Disks

NIC

2 GbE (Dual)

6 GbE (Dual) – 10 GbE (Quad)

حال ، این دو را مقایسه کنید. این سیستم از ظرفیت بسیار بیشتری برای افزایش توان محاسبه ، شبکه و ذخیره سازی برخوردار است.

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

  • چگونه عملکرد خود را مانیتور کنیم:

برای مانیتور کردن عملکرد سرور خود می توانید از  sysstat کمک بگیرید . با دستور زیر می توانید  این بسته را از طریق ریپوزیتوری بررسی و نصب کنید.

$ rpm -qa |grep sysstat

$ sudo yum -y install sysstat

پس از نصب جهت فعال شدن sysstat دستورات زیر را وارد کنید

$ sudo systemctl enable sysstat sysstat-collect.timer sysstat-summary.timer $ sudo systemctl start sysstat sysstat-collect.timer sysstat-summary.timer

بسته sysstat داری تعداد انگشت شماری از دستورات آماری درباره گزارش از عملکرد سیستم از CIFS/Samba تا کارهای لینوکس و دیسک می باشد.

مفید ترین دستور این بسته sar است این دستور گزارشی از فعالیت های سیستم در اختیار شما قرار می دهد هر کاربرمی تواند دستور sar را اجرا کند و آمار فعالیت های سیستم را بدست آورد .

$ sar
Linux 4.18.0-80.7.1.el8_0.x86_64 (rhel) 04/06/2020
_x86_64_ (1 CPU)

12:00:24 AM CPU %user %nice %system %iowait %steal %idle

12:10:01 AM all 0.22 0.00 0.43 0.01 0.00 99.33

12:20:32 AM all 1.18 0.05 1.24 0.12 0.00 97.41

12:30:01 AM all 0.27 0.00 0.49 0.01 0.00 99.23

12:40:32 AM all 0.20 0.00 0.38 0.00 0.00 99.41

12:50:32 AM all 0.18 0.00 0.36 0.01 0.00 99.46

به طور پیش فرض آمار سیستم هر 10 دقیقه یکبار جمع آوری می شود. سویچ معرف این دستور-A است که گزارش آماری دقیق و کامل تری را در اختیار شما قرار می دهد برای آشنایی با دیگر سویچ های Sar می توانید  از دستورman sar که راهنمای این دستور را در اختیار شما قرار می دهد استفاده کنید.

  • چگونگی تجزیه و تحلیل داده های اماری بدست امده :

Sysstat اطلاعات آماری را جمع آوری و در مسیر var/log/sa قرار می دهد.

در این مسیر فایلها با تاریخ ماه و روز، نامگذاری می شوند. حال شما برای تجزیه و تحلیل این داده ها نیاز به یک نرم افزار تحلیل گر دارید.ما نرم افزار   Orca  را پیشنهاد می دهیم همچنین به شما پیشنهاد می کنیم داده های خود را در یک سیستم به غیر از سیستمی که در حال استفاده از آن هستید تحلیل کنید زیرا تحلیل داده ها ممکن است بر روی عملکرد سیستم شما تاثیر گذار باشد. orca یک نرم افزار کامل می باشد ولی تنظیمات آن کمی پیچیده است.  آموزش کار با نرم افزارorca را میتوانید در اینترنت جستجو کنید.

  • تنظیم یک آستانه عملکرد برای دریافت هشدارها :

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

برای مثال می توانید سیستم را تنظیم کنید که زمانی که میزان مصرف CPU به ۸۰ درصد رسید یک هشدار برای مدیر سرور ارسال کند و در این روش آستانه میزن مصرفcpu سرور  را روی ۸۰ درصد تنظیم کنید. در صورتی که طی دو روز مانیتور سرور،  مدیر سرور هر ۵ دقیقه یک هشدار دریافت کند به این معناست که میزان مصرف ۸۰% برای کاربران سرور کافی نیست و باید میزان آستانه استفاده از cpu را به ۹۰ درصد ارتقا دهید.

آستانه مصرف cpu را تا ۹۵ درصد در سرورها معمولاً می توان ارتقا داد ولی در صورتی که با آستانه ۹۵ درصد، در مانیتور روزانه هر دو ساعت یک بار آلارمی دریافت کنید این نشان دهنده میزان بار زیاد بر روی سرور است که نیاز است منابع ارتقا داده شود یا نرم افزارها بهینه شوند و یا انتخاب کنید که کاربران سرور مدت زمان طولانی تری را منتظر دریافت پاسخ از سمت سرور بمانند. این به این معناست که منابع سرور کافی نیست،  عملکرد پایین است و capacity planningبرای این سرور مناسب نبوده است.

  • خلاصه :

capacity planning و نظارت بر عملکرد با همدیگر کار می‌کنند تا تصویر کاملی از چرخه عمر سخت افزار و نرم افزار به شما ارائه دهند. جهت نظارت، تنظیم هشدارها و تجزیه و تحلیل داده ها وقت بگذارید و تلاش کنید تا این موارد به بهترین شکل انجام شود. اکثر مدیران سرورها راه‌حل‌های خوبی را ارائه می‌دهند ولی در گذر زمان آنها را فراموش می کنند. capacity planning به شما کمک می کند تا با استفاده درست از منابع و یا استفاده مجدد از منابع در هزینه‌های خود صرفه‌جویی کنید و با مشکلات کمتری مواجه باشید . در آینده بسته های نظارتی بیشتری را معرفی خواهیم کرد.

مطالب مرتبط

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.