صفحه اصلی - جوان سرور

حل مشکل افزایش مصرف cpu در سایتهای وردپرسی

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

تمامی مشکلات Cpu و گزارش کامل آن در فایل log موجود در پوشه cpu exceed قرار میگیرد که خود این پوشه درون پوشه tmp در ریشه اصلی می باشد.(البته نه همه سایتها – خصوسا سایتهایی که روی share قرار دارند) پس یادتان باشد هر وقت مشکل Cpu داشتید ابتدا این فایل را چک کنید.درون این فایل اکثرا علت مصرف بالای سی پی یو را میتوانید پیدا کنید.
این که چه صفحاتی و چه فایل هایی باعث exceed شدن ( تجاوز از حد استاندارد ) می شوند.

6دلیل اصلی مصرف بالای Cpu توسط وردپرس :

دلیل اول
مشکلات ناسازگاری افزونه ها که با حذف افزونه مشکل طرف می شود. اگر مشکل Cpu دارید افزونه های خود را چک کنیدتا مطمئن شوید مشکل از کدام افزونه است.
دلیل دوم
دستکاری درون پوسته ها که با برگرداندن پوسته به حالت پیش فرض مشکل حل می شود. اگر کد ها و حلقه ها به صورت اصولی فراخوانی نشوند یک حلقه بی نهایت فراخوانی میشود که کاملا Cpu را دگیر میکند! پس اگر فردی مبتدی هستید از دستکاری پوسته ها پرهیز کنید.(قالب پیش فرض)
دلیل سوم
وجود ایراد دریکی از جدول های دیتا بیس ( post ) می باشد که وردپرس در هر بار خواندن آن جدول فشار زیادی به Cpu می آورد. این مشکل را از داخل 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
در خط دوم این کد ماژول IfModule mod_rewrite.c فراخوانی میشود که این ماژول ظاهرا به دلیل داشتن مشکلات زیاد بر روی سرور نصب نمی شود پس htaccess. حاوی فرامینی است که باعث کراش کردن سرور و مصرف Cpu میشود.
حال چاره چیست ؟
پاسخ ساده است ، شما باید از پیوند یکتا یا همان permalink پیش فرض وردپرس استفاده کنید و اگر در فایل htaccess. خود این کد ها را دارید آنها را حذف کنید.
اما ، یکی دلیل اصلی که بالاترین مصرف Cpu

دلیل ششم
استفاده نا مناسب از برچسب ها یا همان Tag ها می باشد.
استفاده از برچسب ها به مقدار زیاد وردپرس را تبدیل به یک Cpu خور حسابی میکند ! باور نمیکنید ؟ امتحان کنید ! روی لوکال به یک نوشته ۵۰ تا برچسب بزنید و آن را ببینید. آن نوشته خیلی دیر لود می شود و اگر در این هنگام مصرف Cpu توسط mysql را در task manager مشاهده کنید خواهید دید که cpu usage تا ۵۰ % بالا می رود.
پس به اندازه کافی به نوشته های خود برچسب بزنید طوری که تعداد آن ها از ۱۵ تجاوز نکند و از درج برچسب های تکراری خودداری کنید.

اگر اشکال از یک پست خاص بود که بعید بنظر می رسد ؛ به احتمال قوی شما روی تعدادی از پلاگینهای خود مشکل دارید . مثلا پلاگین Rating اغلب مشکل لود روی CPU را در زمانیکه تعداد بازدید از یک پست زیاد شود را ایجاد می نماید .پس بهتر است که از پلاگینهای دردسر ساز صرف نظر نمایید .
اما اگر گزارش حاکی از وجود مصرف بالای CPU بر روی فایل wp-cron.php قرار داشت؛ اینجاست که داستان چیز دیگری است و لازم است که کمی بیشتر توضیح دهم:
زمانیکه شما یک پست جدید ایجاد می نمایید ، موتور وردپرس با استفاده از قابلیت autosave, revisions اقدام به ذخیره خودکار مطلب وارد شده می نماید.
حال اگر ببینید که در پست ایجاد شده غلط یا اشتباهی وجود دارد و اقدام به اصلاح مطلب ذخیره شده نمایید ؛ wp-cron.php که در بار نخست اقدام به ارسال ۲ تقاضا برای ذخیره مطلب به سرور نموده بود ، اینک ۸ تقاضا ارسال می کند و اگر خدای ناکرده شما متوجه شوید که باز باید مطلب یاد شده را اصلاح نمایید ؛ تعداد تقاضاهای شما به بیش از ۲۰ تقاضا می رسد که موجب بالا رفتن لود بیش از حد روی CPU می گردد و البته این باگی است که هنوز در نسخه ۲٫۷٫۱ وردپرس وجود دارد.
و اما راه حل :
بهترین راه حلی که من یافتم ؛ غیر فعال نمودن عمل autosave, revisions در هنگام ایجاد پست می باشد . برای اینکار ، بهترین روش استفاده از پلاگین : WP-CMS Post Control است .
این پلاگین را نصب نموده و قابلیتهای autosave, revisions را غیر فعال نمایید تا مانع از بار گذاری خودکار روی سرور شوید.
استفاده از منابع سنگین بر روی هاست
اکثر کاربران از تصاویر سنگین و یا فایل های دانلود زیاد در سایت خود استفاده می کنند . اگر احساس می کنید سایت شما یک سایت بر مبنای ارائه تصویر و دانلود فایل است همیشه یک هاست برای مطالب سایت و یک هاست جهت آپلود فایل ها و منابع استفاده کنید . این موضوع به مدیریت و سرعت و کیفیت سایت شما کمک خیلی خوبی می نماید.
سایت های پر بازدید و یا پردازشی
ممکن است سایت شما بازدید بالایی داشته باشد و یا اینکه برای اجرای دستورات نیاز به پردازش و عملیات اجرایی زیاد است . در این صورت شما نیاز دارید از سرویس های ویژه استفاده کنید و یا سرور های مجازی و یا نیمه اختصاصی تهیه کنید.
لذا هر چقدر سایت شما سنگین میزان زمان جهت لود سایت برای بازدیدکنندگان بیشتر می شود و بالا بودن پروسه لود پردازش سایت و در نتیجه استفاده از منابع سرور را بالاتر برده و سایت شما با اخطار مصرف بالای سایت رو به رو می شود .

در آینده این مطلب بروز رسانی میشود . . .

حمید محمدی – جوان سرور

سایر آموزش ها
به راهنمایی بیشتری نیاز دارید؟‌ با ما در تماس باشید 66950028-021
logo-enamad