بهبود عملکرد سرور لینوکسی

بهبود عملکرد سرور لینوکسی
بهبود عملکرد سرور لینوکسی
9 ماه پیش

پسرور (Server) به‌طور ساده، یک سیستم کامپیوتری است که وظیفه ارائه خدمات به سایر سیستم‌های کامپیوتری را بر عهده دارد. این سیستم همیشه به یک شبکه اینترنت متصل است و همه خدمات آن بر اساس اتصال به این شبکه سرویس‌دهی می‌شود.

سرورها بیشتر درزمینهٔ وب هاستینگ (Web Hosting) مطرح هستند و بیشتر بر پایه ارائه خدمت به کاربران سایت مشهورند. در حقیقت سرور در این حوزه، یک سیستم کامپیوتری بسیار قدرتمند است که از داده‌های یک سایت میزبانی می‌کند و کاربران آن سایت از این سیستم کامپیوتری خدمات می‌گیرند.

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

این سرورها بر اساس امکانات و ویژگی‌هایی که ارائه می‌دهند بسیار متفاوت هستند اما درنهایت، تفاوت اصلی در سیستم‌عامل‌هایی است که استفاده می‌کنند.

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

در حوزه سرورها و هاست ها نیز سیستم‌عامل لینوکس (Linux) و سیستم‌عامل ویندوز  (Windows) بسیار محبوب هستند و اکثراً این دو، بیشتر سهم سیستم‌عامل‌ها را به خود اختصاص می‌دهند.

هردو سیستم‌عامل، ویژگی‌ها، امکانات، مزایا و معایب متفاوتی نسبت به هم دارند و این اصلی‌ترین دلیلی است که سرورها از یک سیستم‌عامل واحد بهره نمی‌برند.

  • لینوکس یک سیستم‌عامل متن‌باز Open Source)) و عمومی است که به‌نوعی جانشین رایگان سیستم‌عامل یونیکس Unix)) محسوب می‌شود. لینوکس در حقیقت هسته و کرنل (Kernel) یک کامپیوتر محسوب می‌شود که رابط اصلی نرم‌افزار با سخت‌افزار است و هرگونه تغییر در این قسمت منجر به تغییر عملکرد در سایر بخش‌ها می‌شود. انواع سیستم‌عامل لینوکس یا توزیع‌های مختلف آن، سیستم‌عامل جدا و مجموعه نرم‌افزارهایی بر پایه هسته لینوکس محسوب می‌شوند که بیشتر کاربران با این توزیع‌ها لینوکس را می‌شناسند و استفاده می‌کنند.
  • در مقابل ویندوز از طرف شرکت مایکروسافت معرفی ارائه‌شده، متن‌باز نیست و برای استفاده از این سیستم‌عامل باید هزینه پرداخت کرد. ویندوز برخلاف لینوکس و توزیع‌های آن، از انعطاف کمتری برخوردار است و در ابتدای کار بیشتر مناسب امور خانگی و اداری بود. زیبایی گرافیک ویندوز و سادگی و روان بودن در حین استفاده معمولی، آن را میان کاربران بسیار محبوب کرد. ویندوز نیز نسخه‌های مختلفی دارد بر اساس ویژگی‌ها و پیش‌نیازهای سخت‌افزاری متفاوت می‌توان از آن استفاده کرد.

به دلیل انعطاف بالا و متن‌باز بودن و رایگان بودن لینوکس، این سیستم‌عامل را برای استفاده در وب سرور (Web Server) ها بسیار ایده آل کرده است و اکثر سرورهای دنیا از این نوع سرور بهره می‌گیرند.

روش‌های مشابه و مشترکی در هر دو سیستم‌عامل لینوکس و ویندوز برای بهینه‌سازی سرور وجود دارد و در مواردی تفاوت‌هایی در نرم‌افزارهای مخصوص هر سیستم‌عامل و نحوه استفاده از آن‌ها نیز وجود دارد.

در ادامه به بررسی روش‌های بهینه‌سازی سرور لینوکسی می‌پردازیم.

بهینه‌سازی چیست؟

بهینه‌سازی سرور یک فرایند فنی و خاص است که باعث می‌شود از تمام قدرت سخت‌افزاری در پردازش‌ها استفاده شود. به‌طورکلی این بهینه‌سازی شامل بهینه‌سازی در سمت سخت‌افزار و بهینه‌سازی در سمت نرم‌افزار می‌شود.

بهینه‌سازی سخت‌افزار

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

بهینه‌سازی نرم‌افزار

بخش نرم‌افزار نیز خود به سیستم‌عامل و نرم‌افزارهای نصب‌شده بر روی آن تقسیم می‌شود. بهبود عملکرد بخش نرم‌افزاری به همان اندازه که بهبود سخت‌افزار اهمیت دارد، لازم است.

در سرورهایی که برای میزبانی وب‌سایت تهیه می‌شود همان‌طور که اشاره شد، عملاً امکان بهبود سخت‌افزار از طرف مشتری وجود ندارد و تنها کاری که مشتری ازلحاظ سخت‌افزاری می‌تواند انجام دهد، پرداخت هزینه بیشتر و خرید یک پلن قوی‌تر است؛ اما در بحث نرم‌افزاری در شرایطی می‌توان عملکرد سیستم‌عامل و نرم‌افزارها را تا حد قابل قبولی بهبود بخشید.

در ادامه به نحوه بهبود عملکرد سیستم‌عامل لینوکس و نرم‌افزارهای آن در سرور خواهیم پرداخت.

  • مهم‌ترین موردی که تأثیر کلی و جامعی بر عملکرد یک سرور می‌گذارد، نسخه جدیدتر یک سیستم‌عامل است. آپدیت بودن سیستم‌عامل از مهم‌ترین علت‌های افزایش سرعت و پایداری سرور است و در استفاده از منابع و قدرت سرور برای افزایش سرعت و عملکرد بیشترین سهم را دارد.

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

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

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

ازجمله نرم‌افزارهایی که به‌روزرسانی آن برای یک سرور میزبان سایت بسیار مهم است، آپدیت نرم‌افزارهای وب سرور و کتابخانه داده‌ها است. سرعت و عملکرد بالا در همه حوزه‌ها به‌خصوص حوزه ارائه خدمات در وب‌سایت‌ها بسیار حیاتی و حائز اهمیت است. در یک سرور با سیستم‌عامل لینوکسی همخوانی بالا با نرم‌افزارها به‌خصوص نرم‌افزارهای مهم مثل موارد فوق تأثیر بسیار زیادی بر سرعت و عملکرد ارائه سرویس دارد.

در بحث هاست اشتراکی، به‌عنوان ادمین یک سرور، وب سرور آپاچی (Apache) محبوب‌ترین وب سرور برای استفاده در سرورهایی با سیستم‌عامل لینوکس محسوب می‌شود. این وب سرور بر پایه لینوکس طراحی‌شده است اما برای سایر سیستم‌عامل‌ها مثل ویندوز نیز در دسترس است. به‌روزرسانی این وب سرور ازجمله آپدیت‌های مهمی بود که قبلاً شاره شد؛ اما تنظیمات متفاوت و مختلف آن نیز بر سرعت و عملکرد تأثیرگذار است. تنظیمات و پیکربندی نامناسب در آپاچی باعث می‌شود که منابع و سخت‌افزار زیادی بی‌رویه مصرف شود که نکته منفی برای عملکرد و سرعت به حساب می‌آید. متناسب با فرایندهای مختلف که در سایت صورت می‌گیرد تنظیمات این برنامه نیز باید همگام با آن انجام شود.

Max clients

تعداد درخواست‌های هم‌زمان از سرور برای بارگذاری سایت را در این قسمت می‌توان تنظیم کرد. تعداد اضافه در صف انتظار قرار خواهند گرفت.

Keep Alive

این گزینه همیشه باید فعال باشد و مگر در شرایطی که سرور درخواست‌های با تعداد زیاد از آی‌پی‌ها مختلف داشته باشد. برای سرورهای بزرگ توصیه می‌شود که این گزینه غیرفعال باشد.

Max Request Works

کنترل میزان رم اختصاصی به‌صورت کلی برای هیچ سیستم‌عاملی میسر نیست ولی تا حدودی می‌توان با ترفندهایی این فرایند را برای وب سرور آپاچی اجرا کرد. در این روش می‌توان تعداد Process های Child را از طریق بخش مکس ریکوئست ورکز محدود کرد که به میزان قابل‌توجهی بر میزان رم مورداستفاده در ارائه سرویس تأثیر دارد

اپلیکیشن‌های اضافی

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

این چند مورد نمونه‌هایی از تنظیمات حیاتی این نرم‌افزار است که در وب سرور باید توجه ویژه‌ای به آن داشته باشید.

  • دفرگ (Defragment) کردن پایگاه داده برای بهینه‌سازی سرور

پایگاه داده علاوه بر به‌روزرسانی باید مدام در حال بهینه‌سازی باشد تا در فرایند پردازش داده‌های وب‌سایت کمترین تأخیر را داشته باشد. در وب‌سایت‌های مختلف امکان دارد که قسمتی از داده‌ها دیگر موردنیاز نباشد و یا باید اصلاح شوند؛ بنابراین باید از پایگاه داده حذف شوند و فضای اشغالی را برای سایر داده‌ها آزاد کنند.

این داده‌ها از پایگاه داده خارج می‌شوند اما مشکل اصلی اینجاست که فرایند پاک‌سازی داده‌های سوخته، سبب تکه‌تکه شدن فایل‌های اصلی پایگاه داده می‌شود و در درازمدت برای بارگذاری داده‌ها باعث کندی می‌شود و عملکرد سرور را کاهش می‌دهد. شما برای این (Fragmentation) باید در یک مدت دوره‌ای منظم این تکه‌ها را بررسی و دف رگ کنید تا از این کندی جلوگیری نمایید.

  • Caching و مدیریت Cache

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

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

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

  • ترمینال (Terminal) لینوکس

ویژگی دیگر سیستم‌عامل لینوکس وجود فضای کنترل جامع و کارآمد ویژه‌ای به نام ترمینال (Terminal) است. ترمینال یه بستر اسکریپت نویسی و دستور به هسته لینوکس است که تقریباً هر کاری می‌توان با آن انجام داد. تنظیم‌های مختلفی که در سیستم می‌توان اعمال کرد؛ ازجمله تنظیمات سخت‌افزارها، تنظیمات شبکه، تنظیمات بهینه‌سازی و... همه و همه به‌وسیله ترمینال قابل پیاده‌سازی است، فقط کافی است دستور مخصوص هر یک را در ترمینال وارد و اجرا شود و بلافاصله انجام گردد.

به‌عنوان‌مثال با استفاده از ترمینال می‌توان برای پردازش‌های مختلف در لینوکس اولویت‌بندی خاصی مطرح کرد و تعریف کرد که کدام برنامه‌ها و یا پردازش‌ها نسبت به بقیه ارجحیت دارند.

اطلاعات بیشتر : خرید سرور

دریا بهرامی- نویسنده

922
A
A