۱۳۹۳ فروردین ۹, شنبه

مصرف بالای سی پی یو و رم در وردپرس

معرف ترین و پر استفاده ترین سیستم مدیریت محتوا در جهان سیستم مدیریت محتوای وردپرس است . سئو بودن و توجه موتور جستجوی گوگل به آن از دلایل اصلی این موفقیت سیستم مدیریت محتوای وردپرس در سطح جهانی است .اگر شما هم از سیستم وردپرس استفاده می کنید حتما یکی از مشکلات شما استفاده بیش از حد از منابع است. وردپرس یکی از پرطرفدارترین سیستم های مدیریت محتوا است و کاربران زیادی از این سیستم استفاده می کنند اما از میان استفاده سایت های که بازدید بالایی دارند همیشه هم مشکل سرعت دارند و هم در صورتی که هاست آن سایت ها اشتراکی باشد هاستینگ آن سایت ها به آنها اخطار “استفاده بیش از منابع ” ارسال می کنند و ممکن است سایت را مسدود کنند.آیا از وردپرس استفاده نکنیم ؟ سیستم وردپرس یک سیستم خوب و ساده می باشد. پلاگین های این سیستم بسیار زیاد است شامل بهترین پلاگین های سئو ، امنیت و … می باشد. پس حذف آن برای مدیران سایت ها بسیار سخت است و نمی توانند اینکار را انجام دهند.


دانستنی های اولیه در مورد استفاده از منابع هاست


منظور از منابع سرور چیست؟

منظور از منابع سرور معمصرف Ram و CPU است. هر سایتی تا یک حد مشخصی می تواند از رم و سی پی یو سرور استفاده نماید. مانند فضا و پهنای باند که محدودیت دارند مصرف منابع یعنی رم و سی پی یو هم محدودیت دارد


در صورت مصرف بیش از حد مجاز منابع چه اتفاقی می افتد؟


در صورتیکه از سرور مجازی یا سرور اختصاصی استفاده کنید اگر مصرف منابع سایتتان بالا برود سایتتان قطع می شود و مدیر سرور اصلی یا دیتاسنتر به شما اعلام می کند که سرور را باید ارتقا دهید اما در هاست های اشتراکی اگر هاستی بیش از حد مجاز مصرف کند ممکن است باعث شود کل سرور قطع شود (۹۵% علت قطع شدن سرور ها همین است) و در اینصورت مدیر هاست اشتراکی سایت شما را ساسپند می کند


چرا مصرف منابع سایت من بالا رفته است؟

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


بازدید زیاد در یک بازه زمانی کوتاه یا آنلاین شدن نفرات زیاد در یک لحظه

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


استفاده درست یا نادرست مدیر سایت از امکانات برنامه نویسی

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


حجم اطلاعات موجود در دیتابیس و مخصوصا در جداول خاص

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


بهینه سازی برنامه نویسی سایت

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


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


جهت مرتفع نمودن چنین مشکلی باید یک سرویس اختصاصی یا (VDS) تهیه کنید تا در آن با محدودیتی برای مصرف CPU وجود نداشته باشد که طبعا هزینه بالاتری خواهد داشت و در صورتی که فکر می کنید پرداخت هزینه بالا برای تهیه سرویس های VDS برای شما مقرون به صرفه نیست، باید اقدام به بهینه سازی وب سایت وردپرس خود نمایید تا مقدار مصرف آن از CPU سرور را کاهش دهید.


پس چگونه سیستم وردپرس را بهینه نماییم تا مصرف رم و سی پی یو ( منابع ) کاهش یابد و راه حل این مشکل سرعت و منابع وردپرس چیست؟


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


بهینه سازی دیتابیس


در بسیاری از مواقع دیتابیس های مورد استفاده برای CMS وردپرس بی نظم و تکه تکه (fragmented) می شوند که این موضوع بار اضافی را به سرور ارجاع می دهند. جهت برطرف نمودن چنین مشکلی می توانید از تابع Optimize در PHPMyAdmin برای جداول و Table های خود استفاده نمایید. این روش باعث کاهش اضافه بار در سرور می گردد.


تعداد مطلب در صفحه اصلی 


یکی از اشتباه هایی که مدیران بعضی سایت ها می کنند تنظیم نمایش تعداد بالا مطلب در صفحه اصلی می باشد این کار دو ایراد دارد : ۱٫ مصرف بیشتر منابع ۲٫ افت سرعت سایت ، پس تعداد مطالب در صفحه اصلی را کمتر از ۱۰ یا حتی ۵ تغییر دهید.


حذف یا غیر فعال نمودن افزونه (Plugin) های غیر ضروری


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


افزونه “مقالات مرتبط” (Related Posts):


تجربه نشان داده است که با حذف این افزونه می توان مصرف وب سایت از CPU سرور را تا حد قابل توجهی کاهش داد. طبعا ممکن است این سوال برای شما نیز به وجود بیاید که پلاگین مقالات مرتبط چگونه می تواند چنین مقدار زیادی از منابع سرور را اشغال کند. دلیل آن کاملا مشخص است، زیرا هر بار که یک پست یا مقاله در وب سایت لود می شود، افزونه مقالات مرتبط در بین تمامی برچسب ها (Tag) و دسته بندی ها  (Category) برای یافتن مقالات مرتبط به پست لود شده، جستجو می کند که این پروسه بار زیادی را روی سرور می گذارد. حالا تصور کنید که وب سایت شما تنها ۱۰ بازدید کننده داشته باشد و هر یک از آن ها نیز در حال خواندن یک مقاله باشند، بنابراین عملیات یافتن مقالات مرتبط برای ۱۰ مقاله به صورت همزمان باید تکرار شوند. لذا با صرف نظر از تاثیر مفید افزونه Related post بر روی SEO، ناچاریم برای در دسترس بودن همیشگی وب سایت خود در میزبانی های اشتراکی، آن را حذف نماییم. همچنین می توان از برخی از افزونه های ثالث مانند Dhiti و LinkWithin نیز به عنوان جایگزین استفاده نمایید.


افزونه های آمار بازدید


افزونه هایی مانند Statpress مقدار زیادی از منابع از سرور را مصرف می نمایند. این افزونه های باید تک تک بازدیدکنندگان را ردیابی کرده و برای هریک از آن ها جداولی را در دیتابیس ایجاد کنند. برای مثال زمانی که یک بازدیدکننده با وب سایت می آید، افزونه مذکور اطلاعات مختلفی مانند موقعیت جغرافیایی، آدرس ارجاع دهنده او به سایت، کلمات کلیدی جستجو شده توسط او صفحات بازدید شده توسط وی را ردیابی و ذخیره می نمایند.


به عنوان جایگزین چنین افزونه هایی می توانید از ابزارهای قدرتمند دیگری مانند Google Analytic یا پلاگین WordPress Jetpack  استفاده نمایید که مصرف زیادی از منابع سرور ندارند.


به جز پلاگین های مذکور باید توجه کنید که آیا به تمام افزونه هایی که هم اکنون نصب شده اند احتیاج دارید ؟


برای مثال :


-  در صورتی که Theme مورد استفاده شما قابلیت های مناسب برای بهینه سازی موتورهای جستجو (SEO) دارد، در آن صورت دیگر نیازی به افزونه های این چنینی (مخصوصا افزونه All-In-One-SEO Pack که مصرف فوق العاده زیادی از CPU دارد) نخواهید داشت.


-  در صورتی که Permalink یا آدرس اصلی خود را تغییر نداده اید دیگر نیازی به افزونه permalink redirect  نیز نخواهید داشت.


-  در صورتی که برنامه زمان بندی برای بک آپ گرفتن از وب سایت خود ندارید ضرورتی برای استفاده از افزونه های تهیه بک آپ وردپرس وجود ندارد.


به یاد داشته باشید که با حذف هر افزونه در واقع از تعداد درخواست های PHP یا MySQL وب سایت خود نیز می کاهید


استفاده بیش از حد از برچسب ها 


برچسب ها و یا همان کلمات کلیدی (tag) مطلب کاهش دهید اینکار برای افرایش سرعت سایت شما توصیه می شود. یکی از مشکلات مدیران سایت ها استفاده بیش از حد از برچسب ها است اینکار باعث افت شدید سرعت سایت شما می شود.


بروز رسانی مداوم وردپرس، افزونه ها و قالب مورد استفاده


وردپرس، افزونه ها و Theme مورد استفاده همواره در هر آپدیت مقادیری از حفره های امنیتی، مشکلات منطقی ، محاسباتی و Bug های نسخه های قبلی را برطرف می نمایند. پس هیچ گاه برای بروزرسانی آن ها معطل نکنید !


استفاده از W3 Total Cache


با توجه به تجربیات مرتبط در این زمینه، ثابت شده که هیچ یک از افزونه های دیگر در زمینه Caching به خوبی W3 Total Cache کار نمی کنند. شما به سادگی می توانید مسئولیت فشرده سازی CSS ها و کش نمودن سایر المان ها را بدون هیچ زحمتی به W3 total Cache بسپارید.


توجه نمایید که در صورت عدم اطلاع از چگونگی انجام تنظیمات این افزونه، آن ها را به هم نزنید. جهت مشاهده راهنمای تنظیمات پلاگین W3 Total Cache به این آدرس مراجعه نمایید.


استفاده از Theme مناسب


توجه نمایید که Theme  مورد استفاده شما در صورت بهینه نبودن نیز می تواند بار اضافی بر CPU یا RAM سرور تحمیل نماید، بنابراین قبل از انتخاب هر Theme سعی کنید در اینترنت در مورد آن جستجو کرده و نظر مصرف کنندگان آن را در مورد نحوه استفاده آن از منابع سرور جویا شوید.


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


کاهش حجم عکس های قالب و مطالب 


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


تصاویر وب سایت خود را برون سپاری ((Outsource)) نمایید.


بهترین روش برای محاسبه تصاویر در وب سایت های میزبانی شده در سرور های اشتراکی خارج نمودن تصاویر از سرور مربوطه و آپلود آن ها در یکی از سرورهای ابری رایگان مانند Amazon S3 یا CDN می باشد و تنظیم URL آن ها برای لود شدن در وب سایت می باشد. این کار باعث می شود تا مقدار بار مصرفی CPU برای محاسبه و نمایش تصاویر به مقدار چشم گیری کاهش یابد.


کاهش حجم دیتابیس وردپرس با تغییر زمان ذخیره خودکار وردپرس


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


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


برای جلوگیری از بالا رفتن حجم دیتابیس یا پایگاه داده وردپرس خود می توانید زمان پیش فرض ذخیره ی خودکار وردپرس را تغییر داده و آن را به مقدار معقول و مورد نیاز خود تغییر دهید ، برای تغییر زمان ذخیره ی پیش نویس وردپرس می بایست در محلی که وردپرس را نصب کرده اید فایل wp-config.php را برای ویرایش باز کرده و دستور زیر را در جای مناسبی از این فایل قرار بدهید لازم به ذکر است که در کد زیر قابلیت رونوشت وردپرس نیز غیر فعال خواهد شد که تاثیر به سزایی بر حجم پایگاه داده ی شما خواهد گذاشت .


define('AUTOSAVE_INTERVAL', 300 ); // seconds


define('WP_POST_REVISIONS', false );


مناسب ترین قسمت برای قرار دادن کد بالا خط زیر است  :


/* That's all, stop editing! Happy blogging. */


که شما باید کد را بعد از خط بالا قرار دهید همچنین شما می توانید مقدار ۳۰۰ را که بر حسب ثانیه می باشد به مقدار بیشتر و مورد نظر خود تغییر دهید ، تا به اینجا توانستیم قابلیت رونوشت را غیرفعال و زمان ذخیره ی خودکار و نوشته های وردپرس را به بیشترین زمان ممکن برای پایین آوردن حجم دیتابیس وردپرس تغییر دهیم ، اما در این بین کاربرانی هستند که به قابلیت ذخیره خودکار وردپرس نیازی نداشته و به دلیل محدود بودن فضای دیتابیس خود این قابلیت را غیر ضروری و بیهوده می دانند که میتوانند به سادگی با اضافه کردن هک زیر به فایل functions.php پوسته وردپرس خود امکان ذخیره کردن خودکار را در وردپرس بصورت کلی غیر فعال سازند ( لطفا” قبل از ایجاد هر تغییری در فایل فانکشن از آن نسخه ی پشتیبان تهیه نمایید تا در صورت بروز خطا آنرا به حالت اول بازگردانید ):


function disableAutoSave()
wp_deregister_script('autosave');

add_action( 'wp_print_scripts', 'disableAutoSave' );

جلوگیری از ذخیره پیش نویس و حجیم شدن دیتابیس


جهت جلوگیری از ذخیره پیش نویس و حجیم شدن دیتابیس از دستور


define('WP_POST_REVISIONS', false);


در wp-config.php  هم استفاده  کنید


wp clean up – افزونه کاهش حجم دیتابیس در وردپرس


کاهش حجم دیتابیس در وردپرس و در نتیجه کم کردن فشار بر cpu  و Ram  هاست مشکل بسیاری از مدیران سایت های وردپرسی است .


شاید شما هم با افزایش روزانه حجم دیتابیس خود مواجه شده اید به طوری که حتی منجر به دریافت اخطار از مدیریت هاست وغیرفعال شدن آن شده باشد. به پیشنهاد دوستان خود از افزونه هایی مثل WP Optimize  یا Wp CleanFix استفاده ولی باز هم شاهد کاهش چشمگیری در اندازه دیتابیس وردپرستان نبوده اید، اگر به جداول دیتابیس خود مراجعه کرده باشید حتماً حجم بالای جدول wp_commentmeta و رشد روزانه آن توجه شما را جلب کرده است. علت چیست؟


wp clean up


 


وجود اطلاعاتی اضافی و بدون کاربرد مثل موارد زیر در پایگاه داده های وردپرس شما باعث این افزایش اندازه گردیده است :


Auto Draft


Revision


Spam Comments


Trash Comments


Orphan Postmeta


Orphan Commentmeta


Orphan Relationships


Dashboard Transient Feed


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


دو افزونه ای که در بالا نام بردم قادر به حذف این مقادیر از wp_commentmeta نبوده بنابراین تاثیر چندانی در کاهش حجم دیتابیس ندارند .


برای حل این مشکل و کاهش حجم واقعی دیتابیس به صورت قابل توجه به شما افزونه قدرتمند wp clean up  را معرفی می کنم که به راحتی و با یک کلیک جداول دیتابیس شما را بهینه سازی کرده و اطلاعات اضافی و بدون کاربرد موجود در دیتابیس وردپرس را حذف می کند.


این افزونه حجم جدول wp_commentmeta  که سنگین ترین جدول دیتابیس شما می باشد را تا ۹۰ درصد کاهش می دهد.


افزونه wp clean up  را شخصاً  ترجمه کرده و نسخه فارسی شده را برای دانلود شما عزیزان قرار می دهم. حجم این افزونه  بسیار کم در حدود ۵۰ کیلوبایت می باشد.


WP Clean Up1



استفاده از cloudflare برای هاستتان


cloudflare  می تواند پهنای باند شما را بهینه نماید و سرعت سایتتان را افزایش دهد برای استفاده از cloudflare مقاله کاملی که توسط سایت اهوراوب نوشته شده است را مطالعه نمایید



آموزش و آشنایی کامل با CloudFlare به صورت حرفه ای


 


حرف آخر – سایت بزرگ در هاست اشتراکی نمی تواند بماند

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


منبع : اهوراوب


 


 


 


 





مصرف بالای سی پی یو و رم در وردپرس

هیچ نظری موجود نیست:

ارسال یک نظر