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

دلیل اول

مشکلات ناسازگاری افزونه ها که با حذف افزونه مشکل طرف می شود. اگر مشکل سی پی یو دارید افزونه های خود را چک کنیدتا مطمئن شوید مشکل از کدام افزونه است.


دلیل دوم

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


دلیل سوم

وجود ایراد دریکی از جدول های دیتا بیس(post)می باشد که وردپرس در هر بار خواندن آن جدول فشار زیادی به سی پی یو می آورد. این مشکل را از داخل PHPMyAdmin توسطrepairکردن کلیه جدول ها بر طرف نمایید. در اکثر موارد توسط همین روش مشکل حل می شود و اگر حل نشود تقریبا باید تمامی جدول ها را بررسی نمایید.


دلیل چهارم

اشکال در فایل های اصلی وردپرس مانندindex.phpو … همیشه از آخرین نسخه وردپرس استفاده نمایید و اگر با فایل های اصلی مشکلی داریدبا جایگزین کردن آن فایل مشکل را حل کنید.


دلیل پنجم

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

BEGIN WordPress
rewrite.c>
RewriteEngine On RewriteBase /
RewriteCond %{REQUESTFILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . / index.php [L] END WordPress
در خط دوم این کد ماژولIfModulemod_rewrite.cفراخوانی میشود که این ماژول ظاهرا به دلیل داشتن مشکلات زیاد بر روی سرور نصب نمی شود پس htaccess.حاوی فرامینی است که باعث کراش کردن سرور و مصرف سی پی یو میشود.


حال چاره چیست ؟

پاسخ ساده است ، شما باید از پیوند یکتا یا همانpermalinkپیش فرض وردپرس استفاده کنید و اگر در فایلhtaccess. خود این کد ها را دارید آنها را حذف کنید.

اما میرسیم به یک دلیل اصلی که بالاترین مصرف سی پی یو را شامل می شود …


دلیل ششم

استفاده نا مناسب از برچسب ها یا همانTagها می باشد.

استفاده از برچسب ها به مقدار زیاد وردپرس را تبدیل به یک سی پی یو خور حسابی میکند ! باور نمیکنید ؟ امتحان کنید ! روی لوکال به یک نوشته ۵۰ تا برچسب بزنید و آن را ببینید. آن نوشته خیلی دیر لود می شود و اگر در این هنگام مصرف سی پی یو توسطmysqlرا درtaskmanagerمشاهده کنید خواهید دید کهcpuusage تا ۵۰ % بالا می رود.

پس به اندازه کافی به نوشته های خود برچسب بزنید طوری که تعداد آن ها از ۱۵ تجاوز نکند و از درج برچسب های تکراری خود داری کنید.

در نهایت به اینجا رسیدم که قبل از هر اقدامی باید ابتدا از هاست خود تقاضای یکlogفایل بنمایید (همانگونه که در بالا اشاره شد) تا مشخص کند که واقعا اشکال از کجاست.

اگر اشکال از یک پست خاص بود که بعید بنظر می رسد ؛ به احتمال قوی شما روی تعدادی از پلاگینهای خود مشکل دارید . مثلا پلاگینRatingاغلب مشکل لود رویCPUرا در زمانیکه تعداد بازدید از یک پست زیاد شود را ایجاد می نماید .پس بهتر است که از پلاگینهای دردسر ساز صرف نظر نمایید.

اما اگر گزارش حاکی از وجود مصرف بالایCPUبر روی فایلwp-cron.phpقرار داشت؛ اینجاست که داستان چیز دیگری است و لازم است که کمی بیشتر توضیح دهم:

زمانیکه شما یک پست جدید ایجاد می نمایید ، موتور وردپرس با استفاده از قابلیتautosave,revisionsاقدام به ذخیره خودکار مطلب وارد شده می نماید.

حال اگر ببینید که در پست ایجاد شده غلط یا اشتباهی وجود دارد و اقدام به اصلاح مطلب ذخیره شده نمایید ؛ wp-cron.php که در بار نخست اقدام به ارسال ۲ تقاضا برای ذخیره مطلب به سرور نموده بود ، اینک ۸ تقاضا ارسال می کند و اگر خدای ناکرده شما متوجه شوید که باز باید مطلب یاد شده را اصلاح نمایید ؛ تعداد تقاضاهای شما به بیش از ۲۰ تقاضا می رسد که موجب بالا رفتن لود بیش از حد رویCPUمی گردد و البته این باگی است که هنوز در نسخه ۲٫۷٫۱ وردپرس وجود دارد.
و اما راه چاره:

بهترین راه حلی که من یافتم ؛ غیر فعال نمودن عملautosave,revisionsدر هنگام ایجاد پست می باشد .

برای اینکار ،بهترین روش استفاده از پلاگین: WP-CMS Post Controlاست .

این پلاگین را نصب نموده و قابلیتهایautosave,revisionsرا غیر فعال نمایید تا مانع از بار گذاری خودکار روی سرور شوید.

نویسنده : امیرعلی نیک آیین

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

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

فهرست