مصرف بالای cpu

چگونه مصرف cpu وردپرس را کاهش دهیم؟

وردپرس
بدون دیدگاه
3,265
در این مطلب می خوانید ...

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

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

بیشتر بدانید: دلایل مصرف بالای هاست از منابع سخت افزاری

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

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

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

دلایل مصرف بالای منابع cpu

  • افزونه های نصب شده
  • قالب های وردپرسی
  • وضعیت دیتابیس
  • وضعیت بروزرسانی قالب و افزونه ها
  • پیوندهای یکتا
  • میزان استفاده از برچسب ها
  • رسانه های پر حجم
  • سیستم کش مورد استفاده
  • تعداد سایت های قرار گرفته روی یک هاست
  • میزان استفاده از cron job
  • وضعیت ارسال اسپم در وردپرس
  • ربات های جستجوگر
  • بازدید بالا
  • میزبانی وب

1- بررسی افزونه های وردپرس

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

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

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

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

2- بررسی قالب وردپرس

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

در صورتی که قادر به خطایابی قالب نبودید می توانید از طریق فایل Error Log هاست هم به بررسی دقیق مشکل بپردازید. برای این منظور مراحل زیر را دنبال کنید:

  1. وارد هاست شده و به File Manager هاست مراجعه کنید.
  2. سپس در مسیر Public_html به دنبال فایل Error_log بگردید.
  3. بعد از اینکه فایل را یافتید آن را دانلود کرده و آخرین خط کدهای آن را بررسی کنید و مسیر موجود در آنها را دنبال کنید تا ببینید مشکل مصرف منابع شما در هاست از چه ناحیه ای است.

3- بررسی دیتابیس وردپرس و Repair آن

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

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

4- بروزرسانی قالب و افزونه ها

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

5- استفاده از پیوند یکتا نامناسب

از آنجایی که پیوند یکتا وردپرس بر اساس فایل htaccess. مشخص می شود در بیشتر موارد از ماژول IfModule mod_rewrite.c که در سرور وجود دارد استفاده می شود بنابراین در برخی موارد ممکن است این ماژول اصلا روی سرور نصب نشده باشد و امکان استفاده از آن هم در هاست فراهم نباشد که پیوند یکتا وردپرس شما بخواهد بر این اساس کار کند، بنابراین در هنگام لود صفحات دچار مشکل شده و به دلیل وجود دستوراتی در htaccess. که باعث کراش کردن سرور و مصرف بالای cpu خواهند شد مواجه خواهید شد. پس بررسی پیوندهای یکتا و وضعیت سرورهم می تواند در کاهش مصرف cpu در وردپرس موثر عمل کند.

6- استفاده بیش از حد از برچسب وردپرس

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

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

7- استفاده از رسانه‌هایی با حجم بالا در وردپرس

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

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

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

8- استفاده از سیستم کش مناسب

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

همین امر در کاهش مصرف منابع وردپرس تاثیر بسزایی دارد. در این صورت هم سرعت لود صفحات شما بهبود می‌یابد و هم اینکه مصرف منابع هاست شما کاهش پیدا خواهد کرد. پیشنهاد می کنم از افزونه wp-ffpc یا افزونه Fatest Cache یا افزونه Wp-Rocket برای کاهش مصرف cpu در وردپرس استفاده کنید.

9- وجود چند وبسایت وردپرسی بر روی یک هاست

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

10- برنامه ریزی درست توسط Cron Job وردپرس

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

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

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

11- جلوگیری ارسال اسپم در وردپرس

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

12- ربات های جستجوگر را کنترل کنید

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

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

13- بازدید بالای سایت

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

14- میزبانی هاست خود را تغییر دهید

و در آخر توپ مشکلاتی که باعث مصرف بالای منابع در هاست خواهد بود را می توان به زمین میزبانی پرتاب کرد. شاید پیش خود فکر کنید که چرا میزبانی یک وبسایت باید دلیل مصرف بالای منابع CPU در وردپرس باشد؟

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

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

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

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

یا حتی ممکنه از طرف شرکت میزبانی وب که ازش هاست خریداری کردین، اخطاری مبنی بر مصرف بالای CPU در وردپرس دریافت کرده باشید. دلیل به وجود اومدن خطای مصرف بالای CPU در وردپرس توسط فایل admin-ajax.php بیشتر از سمت افزونه‌های شخص ثالث یا درخواست‌هایی مثل ذخیره خودکار پیش نویس در وردپرس که به صورت مرتب در پیشخوان وردپرس انجام میگیره به وجود میاد. پس مهمه که به این خطاها توجه کنید و هر زمان که با خطای مصرف بالای منابع CPU در هاست توسط وردپرس مواجه شدید و دیدید که این خطا از سمت فایل admin-ajax هست اونو برطرف کنید.

رفع مشکل مصرف بالای CPU در وردپرس توسط فایل admin-ajax

حالا ممکنه این سوال براتون پیش بیاد که اصلا فایل admin-ajax.php چیست؟ فایل admin-ajax.php وردپرس یکی از فایل‌های هسته وردپرس هست که از نسخه 3.6 وردپرس به اون اضافه شده. هدف این فایل ایجاد ارتباط بین مرورگر و سرور هست که با استفاده از ajax این ارتباط برقرار می‌شود. این ارتباط کاری که انجام میده اینه که قابلیت‌های پیشرفته مثل بهبود ذخیره سازی خودکار کارها در وردپرس، ردیابی رونوشت‌ها، زمان تایم اوت ورود به وردپرس، مدیریت نشست‌ها در وردپرس و اطلاعیه‌های یک نوشته مثل زمانی که نوشته قفل شده و توسط فرد دیگر در حال ویرایش هست را به شما خواهد داد. هر کدوم از این ویژگی های ذکر شده برای سایت‌هایی که چندین کاربر در اون فعالیت دارند به امری ضروری تبدیل شده است. به عنوان نمونه اگر همین حالت نمایش کاربران هنگام ویرایش یک نوشته نباشه ممکنه همزمان دو مدیر در حال ویرایش و تغییر روی یک نوشته باشند که باعث ایجاد مشکل در محتوای سایت و محصولات در وردپرس بشه.

ایده انجام این کار به این شکل هست که از هر 15 ثانیه درخواست‌های XHR به سرور ارسال میشن و در نهایت با فرستان پاسخ‌ها به صورت callbacks نتیجه نمایش داده میشه. سپس سایر اجرا با هماهنگ سازی که بینشون ایجاد میشه در مورد فعالیت‌های دیگر کاربران از این طریق اطلاع داده میشه. در نهایت همونطور که در بالا هم اشاره شد این کار باعث میشه تا ضمن اطلاع از اینکه یک کاربر در حال تغییر دادن یک نوشته، ابزارک و… هست قفل گذاری روی اون انجام بگیره و باعث نشه همزمان دو کاربر در حال ایجاد تغییرات باشند.

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

همونطور که در تصویر بالا می‌بینید در ابزار تست سرعت سایت مثل pingdom معمولا دو نتیجه از این سناریو دریافت خواهیم کرد. یکی در بخش جلویی و دیگری در front-end و دیگری در back-end که مربوط به بخش مدیریت و کاربری سایت هستند.

1. مصرف بالای CPU توسط admin-ajax بخاطر افزونه‌ها

اولین و رایج ترین خطا که باعث به وجود اومدن خطای مصرف بالای CPU در وردپرس بخاطر فایل admin-ajax میشه از سمت افزونه‌های شخص ثالث نشات میگیره. این موضوع بیشتر در front-end وردپرس رخ میده که مربوط به همون بخش کاربری سایت هست و در تست سرعت سایت هم میبینیمش. دلیل به وجود اومدن خطا از سمت افزونه‌ها هم بیشتر به این خاطر هست که توسعه دهنده‌های وردپرس از قابلیت ajax یا توسط همین فایل برای افزونه‌های خودشون استفاده می‌کنند تا قابلیت‌هایی رو به کاربران ارائه کنند. اما فقط به این دلیل که شما یک درخواست رو برای admin-ajax.php می‌بینید لزوما به این معنی نیست که سایت شما بخاطر این موضوع کند شده است. بعد از اینکه صفحات لود شدند قابلیت Ajax وردپرس شروع به کار میکنه و درخواست های خاصی رو به صورت ناهماهنگ اجرا و دریافت میکنه. پس اگر به درستی از این قابلیت توسط توسعه دهنده‌های وردپرس استفاده نشه باعث به وجود اومدن کندی در وردپرس میشه که نتیجه اون بالا رفتن مصرف منابع CPU خواهد بود.

در تصویر زیر نمونه‌ای از تشخیص مشکل admin-ajax رو مشاهده می‌کنید که توسط سایت Gtmetrix بررسی شده، بخاطر اینکه بررسی با این سایت اجازه میده که داده‌های حقیقی و واقعی رو به صورت واکنشگرا به دست بیاریم. در صورتی که استفاده از pingdom این قابلیت رو به ما نخواهد داد. پس اگر شما هم قصد تست و بررسی مشکل admin-ajax.php در وردپرس رو دارید بهتره از سایت gtmetrix برای این کار استفاده کنید. البته محدود به این دو سایت هم نیستید و میتونید از Google Chrome Devtools یا WebPageTest هم استفاده کنید.

در اینجا نمونه تستی انجام گرفته که دلیل اون بخاطر استفاده از افزونه ویژوال کامپوزر هست و باعث به وجود اومدن خطای admin-ajax.php در وردپرس شده و همونطور که میبینید بر اساس گزارش Gtmetrix بیشتر از 8 ثانیه در لود این فایل طول میکشه که این زمان برای لود خیلی زیاد هست و باعث کند شدن سایت خواهد شد.

در اینجا اگر شما روی درخواست POST admin-ajax.php کلیک کنید، میتونید سه زبانه مختلف را مشاهده کنید که شامل Headers، Post، و Response هستند. برای این سایت، ما میتونیم سرنخ مشکل را در برگه Response بدست بیاریم. با بررسی بخشی از این درخواست توسط “vc_shortcodes-custom-css” شروع می‌کنیم.

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

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

رفع مشکل admin-ajax.php بخاطر افزونه هشدار وردپرس

مورد بعدی که بیشتر باعث به وجود اومدن خطای admin-ajax در وردپرس میشه مربوط به افزونه‌های ارسال هشدار در وردپرس هست. همونطور که در تصویر زیر میبینید با یک جهش نسبتا بزرگ در admin-ajax وردپرس روبه رو هستیم که در هنگام تست توسط سایت GTmetrix با اون مواجه شدیم.

همونطور که در نمونه قبلی هم انجام دادیم در اینجا هم اگر روی درخواست POST admin-ajax.php کلیک کنید خواهید دید که داده های پست “action = mtsnb_add_impression & bar_id = 88 & ab_variation = none” نمایش داده خواهند شد.

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

پس همونطور که میبینید راه‌های خوبی برای فهمیدن اینکه مشکل admin-ajax.php وردپرس بخاطر چی هست وجود داره که در اینجا ما به استفاده از سایت GTmetrix و جستجوی خطا در گوگل بسنده کردیم. اگر شما یک توسعه دهنده هستید میتونید از راه‌های دیگه هم استفاده کنید.

راه مطمئن برای تعیین منبع مشکل admin-ajax.php در وردپرس

یک راه ساده و پیش پا افتاده هم وجود داره که معمولا برای یافتن خطا در وردپرس از این روش زیاد استفاده کردیم. در این روش کافیه در هر بار یکی از افزونه‌ها را غیرفعال کرده و تست سرعت روی سایتتون رو انجام بدین، در نهایت بعد از غیرفعال کردن افزونه‌ها در جایی با غیرفعال کردن یکی از افزونه‌ها میبینید که خطا برطرف میشه و مشخص میشه که مشکل از این افزونه هست. این خطا معمولا به خوبی جواب میده و در 99 درصد تست‌هایی که با این روش صورت گرفته به نتیجه خواهید رسید. البته میتونید این کار رو به صورت برعکس هم انجام بدین. یعنی همه افزونه‌ها رو غیرفعال کنید و این بار یکی یکی هر افزونه را فعال کرده و در هر بار فعال سازی افزونه یک بار تست سرعت هم انجام بدین، اگر دیدین که خطای admin-ajax با فعال کردن یکی از افزونه‌ها صورت گرفت مشخص خواهد شد که مشکل از اینجاست.

2. مصرف بالای CPU در پیشخوان وردپرس توسط admin-ajax.php

دومین مسئله‌ای که باعث به وجود اومدن این مشکل میشه زمانی هست که Heartbeat API وردپرس برای اینکه بتونه با استفاده از Ajax توسط مرورگر داده‌هایی رو ارسال و دریافت بکنه با این خطا مواجه شده و باعث به وجود اومدن مصرف بیش از حد CPU در پیشخوان وردپرس خواهد شد. هر درخواست آجاکس که در این حالت در وردپرس بارگذاری میشه در حالتی هست که همه داده‌ها به صورت کش شده هم هستند. معمولا این نوع خطاها را در تست سرعت بخاطر اینکه در پیشخوان وردپرس به وجود میاد نمیبینید. این مشکل بیشتر در هاست‌های اشتراکی که چندین وبسایت روی یک سرور قرار دارند به وجود میاد. پیشنهادی که برای کاهش این نوع خطا در پیشخوان وردپرس دارم این هست که:

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

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

حالا این فاجعه زمانی بدتر خواهد شد که در یک سایت بزرگ و  پربازدید که چندین نویسنده در اون فعالیت دارند همزمان در حال نوشتن و تولید محتوا باشند. در این صورت به نظر شما چه اتفاقی خواهد افتاد؟ مشخص است که این درخواست‌ها همینطور در حال تکثیر شدن و بیشتر شدن خواهند بود. طق یک بررسی که روی سایت DARTDrones انجام گرفته در حالتی که در مدت 24 ساعت از یک روز که فقط 2.000 بازدیدکننده یکتا در این سایت بود هنگام کار با سایت بیش از 4.100 درخواست ارسال و دریافت شده بود. این میزان اصلا بهینه نیست.

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

افزونه کاهش تعداد درخواست‌های admin-ajax در وردپرس

افزونه‌ای که برای کاهش میزان درخواست‌های admin-ajax در وردپرس قصد دارم معرفی کنم با عنوان Heartbeat Control در مخزن وردپرس به ثبت رسیده و تاکنون هم موفق شده بیش از 80.000 نصب فعال و کسب امتیاز 4.6 را ازآن خودش بکنه که با استفاده کردن از این افزونه میتونید اقدام به مدیریت درخواست‌ها و وظایفی در وردپرس که باعث کاهش کارهای admin-ajax در وردپرس خواهد شد بکنید. برای استفاده از این افزونه ابتدا روی دکمه زیر کلیک کنید تا به صفحه افزونه در مخزن وردپرس هدایت بشید و سپس با استفاده از راهنمای نصب افزونه در وردپرس اقدام به نصب و فعال سازی افزونه بکنید.

بعد از نصب و فعال سازی این افزونه مشابه تصویر زیر منویی با نام Heartbeat در بخش تنظیمات وردپرس اضافه میشه که با مراجعه به این منو میتونید درخواست‌ها را به صورت زیر مدیریت کنید.

control heartbeat locations: این گزینه را روی حالت Allow only on post edit pages قرار بدین تا این کار صرفا در صفحه ویرایش نوشته و برگه که بیشتر مورد استفاده قرار میگیره انجام بشه.

override heartbeat frequency: این گزینه را هم پیشنهاد می‌کنم روی حالت 60 ثانیه قرار بدین تا درخواست‌های API ارسالی از هر 60 ثانیه انجام بگیرند. دقت کرده باشید در قسمت اول مقاله گفتم که درخواست‌ها در حالت عادی از هر 15 ثانیه بررسی می‌شوند که با افزایش اون به 60 ثانیه میتونید مدت زمان رو بیشتر کرده و مصرف CPU که توسط admin-ajax.php زیاد شده رو مدیریت کرده و کاهش بدین.

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

سوالات متداول

  1. دلایل مصرف بالای منابع cpu چه هستند؟

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

  2. چگونه مصرف cpu در وردپرس را کاهش دهم؟

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

  3. در اولین گام برای کاهش مصرف cpu در وردپرس باید چه کاری انجام داد؟

    در اولین گام برای کاهش مصرف cpu در وردپرس باید دلیل بالا رفتن مصرف منابع را پیدا کرد.

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

    یکی از مهم ترین دلایل بالا رفتن مصرف cpu در وردپرس استفاده از افزونه های ناکار امد است . بنابراین باید دقت کنید که حتما افزونه ها را از مخزن وردپرس دانلود کنید همچنین برخی از آنها را که نیاز ندارید از وردپرس خود غیر فعال و حذف کنید .

جمع بندی

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

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

امیدوارم که این آموزش هم مورد توجه و پسند شما قرار گرفته باشه و با استفاده از اون تونسته باشید که خطای مصرف cpu در وردپرس به دلیل فایل admin-ajax.php رو در وردپرس برطرف کنید. در صورتی که در رابطه با این آموزش سوال یا مشکلی داشتید میتونید در بخش دیدگاه‌ها مطرح کنید تا در کوتاه‌ترین زمان ممکن پاسخگوی شما باشم.

لذت کار با وردپرس پرسرعت و پایدار

با 19 درصد تخفیف ویژه رونمایی سرورهای نسل جدید، هاست وردپرس را خریداری نمایید.

پربازدید ترین مطالب
مطالب مرتبط
این مطلب را می پسندید

5/5 - (1 رای)

نویسنده: محتوای تیمی کار شده

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

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

Fill out this field
Fill out this field
لطفاً یک نشانی ایمیل معتبر بنویسید.

اشتراک گذاری مطلب